aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Add some environment checks prior to sepgsql regression testing.Robert Haas2011-07-25
| | | | | | This probably needs more work, but it's a start. KaiGai Kohei
* Improvements to SQL/MED documentation.Robert Haas2011-07-25
| | | | Laurenz Albe, somewhat modified by me.
* Add new pgbench options, --tablespace and --index-tablespace.Robert Haas2011-07-25
| | | | Per a request from Greg Smith.
* Add new pgbench switch, --unlogged-tables.Robert Haas2011-07-25
| | | | | This entails adjusting pgbench to use getopt_long() rather than getopt().
* Fix previous patch so it also works if not USE_SSL (mea culpa).Tom Lane2011-07-24
| | | | | | On balance, the need to cover this case changes my mind in favor of pushing all error-message generation duties into the two fe-secure.c routines. So do it that way.
* Improve libpq's error reporting for SSL failures.Tom Lane2011-07-24
| | | | | | | | | | In many cases, pqsecure_read/pqsecure_write set up useful error messages, which were then overwritten with useless ones by their callers. Fix this by defining the responsibility to set an error message to be entirely that of the lower-level function when using SSL. Back-patch to 8.3; the code is too different in 8.2 to be worth the trouble.
* Use OpenSSL's SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag.Tom Lane2011-07-24
| | | | | | | | | | | | | | | This disables an entirely unnecessary "sanity check" that causes failures in nonblocking mode, because OpenSSL complains if we move or compact the write buffer. The only actual requirement is that we not modify pending data once we've attempted to send it, which we don't. Per testing and research by Martin Pihlak, though this fix is a lot simpler than his patch. I put the same change into the backend, although it's less clear whether it's necessary there. We do use nonblock mode in some situations in streaming replication, so seems best to keep the same behavior in the backend as in libpq. Back-patch to all supported releases.
* In pg_upgrade on Windows, check if the directory is writable by actuallyBruce Momjian2011-07-24
| | | | | | | creating and removing a file because access() doesn't work on that platform. Backpatch to 9.1 where this check was added.
* Unbreak Windows builds broken by EDITOR_LINENUMBER_ARG change.Andrew Dunstan2011-07-23
|
* Change EDITOR_LINENUMBER_SWITCH to an environment variablePeter Eisentraut2011-07-24
| | | | | | | | | | | Also change "switch" to "arg" because "switch" is a bit of a sloppy term. So the environment variable is called PSQL_EDITOR_LINENUMBER_ARG. Set "+" as hardcoded default value on Unix (since "vi" is the hardcoded default editor), so many users won't have to configure this at all. Move the documentation around a bit to centralize the editor configuration under environment variables, rather than repeating bits of it under every backslash command that invokes an editor.
* Rethink behavior of CREATE OR REPLACE during CREATE EXTENSION.Tom Lane2011-07-23
| | | | | | | | | The original implementation simply did nothing when replacing an existing object during CREATE EXTENSION. The folly of this was exposed by a report from Marc Munro: if the existing object belongs to another extension, we are left in an inconsistent state. We should insist that the object does not belong to another extension, and then add it to the current extension if not already a member.
* Unbreak unlogged tables.Robert Haas2011-07-22
| | | | | | I broke this in commit 5da79169d3e9f0fab47da03318c44075b3f824c5, which was obviously insufficiently well tested. Add some regression tests in the hope of making future slip-ups more likely to be noticed.
* In pg_upgrade, add C comment about why we don't try to do shared fileBruce Momjian2011-07-21
| | | | writes for logging.
* Fix PQsetvalue() to avoid possible crash when adding a new tuple.Tom Lane2011-07-21
| | | | | | | | | | | | | | | PQsetvalue unnecessarily duplicated the logic in pqAddTuple, and didn't duplicate it exactly either --- pqAddTuple does not care what is in the tuple-pointer array positions beyond the last valid entry, whereas the code in PQsetvalue assumed such positions would contain NULL. This led to possible crashes if PQsetvalue was applied to a PGresult that had previously been enlarged with pqAddTuple, for instance one built from a server query. Fix by relying on pqAddTuple instead of duplicating logic, and not assuming anything about the contents of res->tuples[res->ntups]. Back-patch to 8.4, where PQsetvalue was introduced. Andrew Chernow
* Make xpath() do something useful with XPath expressions that return scalars.Tom Lane2011-07-21
| | | | | | | | | | | | | Previously, xpath() simply returned an empty array if the expression did not yield a node set. This is useless for expressions that return scalars, such as one with name() at the top level. Arrange to return the scalar value as a single-element xml array, instead. (String values will be suitably escaped.) This change will also cause xpath_exists() to return true, not false, for such expressions. Florian Pflug, reviewed by Radoslaw Smogura
* Ensure that xpath() escapes special characters in string values.Tom Lane2011-07-20
| | | | | | | | | | | Without this it's possible for the output to not be legal XML, as illustrated by the added regression test cases. NB: this change will need to be called out as an incompatibility in the 9.2 release notes, since it's possible somebody was relying on the old behavior, even though it's clearly wrong. Florian Pflug, reviewed by Radoslaw Smogura
* In pg_upgrade, fix the -l/log option to work on Windows.Bruce Momjian2011-07-20
| | | | | | | Also, double-quote the log file name in all places, to allow (on all platforms) log file names with spaces. Back patch to 9.0 and 9.1.
* In pg_upgrade, use pg_strudup(), for consistency.Bruce Momjian2011-07-20
|
* Support SECURITY LABEL on databases, tablespaces, and roles.Robert Haas2011-07-20
| | | | | | | | | | | This requires a new shared catalog, pg_shseclabel. Along the way, fix the security_label regression tests so that they don't monkey with the labels of any pre-existing objects. This is unlikely to matter in practice, since only the label for the "dummy" provider was being manipulated. But this way still seems cleaner. KaiGai Kohei, with fairly extensive hacking by me.
* Rewrite libxml error handling to be more robust.Tom Lane2011-07-20
| | | | | | | | | | | | | | | | | | | | | libxml reports some errors (like invalid xmlns attributes) via the error handler hook, but still returns a success indicator to the library caller. This causes us to miss some errors that are important to report. Since the "generic" error handler hook doesn't know whether the message it's getting is for an error, warning, or notice, stop using that and instead start using the "structured" error handler hook, which gets enough information to be useful. While at it, arrange to save and restore the error handler hook setting in each libxml-using function, rather than assuming we can set and forget the hook. This should improve the odds of working nicely with third-party libraries that also use libxml. In passing, volatile-ize some local variables that get modified within PG_TRY blocks. I noticed this while testing with an older gcc version than I'd previously tried to compile xml.c with. Florian Pflug and Tom Lane, with extensive review/testing by Noah Misch
* Improve sepgsql and SECURITY LABEL documentation.Robert Haas2011-07-20
| | | | | KaiGai Kohei, based on feedback from Yeb Havinga, with some corrections by me.
* Minor improvement to pg_seclabel documentation.Robert Haas2011-07-20
| | | | | This is a bit more consistent with the way pg_description is documented, and also include a useful cross-link.
* Make isolationtester more robust on locked commandsAlvaro Herrera2011-07-19
| | | | | | | | | | | | | | | | Noah Misch diagnosed the buildfarm problems in the isolation tests partly as failure to differentiate backends properly; the old code was using backend IDs, which is not good enough because a new backend might use an already used ID. Use PIDs instead. Also, the code was purposely careless about other concurrent activity, because it isn't expected; and in fact, it doesn't affect the vast majority of the time. However, it can be observed that autovacuum can block tables for long enough to cause sporadic failures. The new code accounts for that by ignoring locks held by processes not explicitly declared in our spec file. Author: Noah Misch
* Increase deadlock_timeout to 100ms in FK isolation testsAlvaro Herrera2011-07-19
| | | | | | | | | | | The previous value of 20ms is dangerously close to the time actually spent just waiting for the deadlock to happen, so on occasion it causes the test to fail simply because the other session didn't get to run early enough, not managing to cause the deadlock that needs to be detected. With this new value, it's expected that most machines on normal load will be able to pass the test. Author: Noah Misch
* Add expected regress output on stricter isolation levelsAlvaro Herrera2011-07-19
| | | | | | | | | These new files allow the new FK tests on isolationtester to pass on the serializable and repeatable read isolation levels (which are untested by the buildfarm). Author: Kevin Grittner Reviewed by Noah Misch
* Remove O(N^2) performance issue with multiple SAVEPOINTs.Simon Riggs2011-07-19
| | | | | | | | | Subtransaction locks now released en masse at main commit, rather than repeatedly re-scanning for locks as we ascend the nested transaction tree. Split transaction state TBLOCK_SUBEND into two states, TBLOCK_SUBCOMMIT and TBLOCK_SUBRELEASE to allow the commit path to be optimised using the existing code in ResourceOwnerRelease() which appears to have been intended for this usage, judging from comments therein.
* Some refinement for the "fast path" lock patch.Robert Haas2011-07-19
| | | | | | | | | | | | | | 1. In GetLockStatusData, avoid initializing instance before we've ensured that the array is large enough. Otherwise, if repalloc moves the block around, we're hosed. 2. Add the word "Relation" to the name of some identifiers, to avoid assuming that the fast-path mechanism will only ever apply to relations (though these particular parts certainly will). Some of the macros could possibly use similar treatment, but the names are getting awfully long already. 3. Add a missing word to comment in AtPrepare_Locks().
* Remove superfluous variable.Robert Haas2011-07-19
| | | | Reported by Peter Eisentraut.
* Minor doc additions for cascading replication.Simon Riggs2011-07-19
|
* Introduce sending servers as new category for replication paramsSimon Riggs2011-07-19
| | | | Fujii Masao
* Fix typoPeter Eisentraut2011-07-19
|
* Put inline declaration before return typePeter Eisentraut2011-07-19
| | | | | gcc -Wextra complains that the other way around is obsolescent, and this was the only place where it was written in this order.
* Change debug message from ereport to elogPeter Eisentraut2011-07-19
|
* Cascading replication feature for streaming log-based replication.Simon Riggs2011-07-19
| | | | | | | | | Standby servers can now have WALSender processes, which can work with either WALReceiver or archive_commands to pass data. Fully updated docs, including new conceptual terms of sending server, upstream and downstream servers. WALSenders terminated when promote to master. Fujii Masao, review, rework and doc rewrite by Simon Riggs
* Add GET STACKED DIAGNOSTICS plpgsql command to retrieve exception info.Tom Lane2011-07-18
| | | | | | | This is more SQL-spec-compliant, more easily extensible, and better performing than the old method of inventing special variables. Pavel Stehule, reviewed by Shigeru Hanada and David Wheeler
* Adapted expected result for latest change to ecpglib.Michael Meskes2011-07-18
|
* Avoid index rebuild for no-rewrite ALTER TABLE .. ALTER TYPE.Robert Haas2011-07-18
| | | | Noah Misch. Review and minor cosmetic changes by me.
* Made ecpglib write double with a precision of 15 digits.Michael Meskes2011-07-18
| | | | Patch originally by Akira Kurosawa <kurosawa-akira@mxc.nes.nec.co.jp>.
* Create a "fast path" for acquiring weak relation locks.Robert Haas2011-07-18
| | | | | | | | | | | | | | | | | When an AccessShareLock, RowShareLock, or RowExclusiveLock is requested on an unshared database relation, and we can verify that no conflicting locks can possibly be present, record the lock in a per-backend queue, stored within the PGPROC, rather than in the primary lock table. This eliminates a great deal of contention on the lock manager LWLocks. This patch also refactors the interface between GetLockStatusData() and pg_lock_status() to be a bit more abstract, so that we don't rely so heavily on the lock manager's internal representation details. The new fast path lock structures don't have a LOCK or PROCLOCK structure to return, so we mustn't depend on that for purposes of listing outstanding locks. Review by Jeff Davis.
* Remove claim that the project is not represented in the SQL working groupPeter Eisentraut2011-07-18
| | | | We have a few people involved there now.
* Note that information_schema.sql_languages was removed in SQL:2008Peter Eisentraut2011-07-18
|
* Add pg_opfamily_is_visible.Robert Haas2011-07-17
| | | | | | | We already have similar functions for many other object types, including operator classes, so it seems like we should have this one, too. Extracted from a larger patch by Josh Kupershmidt
* Further thoughts about temp_file_limit patch.Tom Lane2011-07-17
| | | | | | | | | | | | Move FileClose's decrement of temporary_files_size up, so that it will be executed even if elog() throws an error. This is reasonable since if the unlink() fails, the fact the file is still there is not our fault, and we are going to forget about it anyhow. So we won't count it against temp_file_limit anymore. Update fileSize and temporary_files_size correctly in FileTruncate. We probably don't have any places that truncate temp files, but fd.c surely should not assume that.
* Add temp_file_limit GUC parameter to constrain temporary file space usage.Tom Lane2011-07-17
| | | | | | | The limit is enforced against the total amount of temp file space used by each session. Mark Kirkwood, reviewed by Cédric Villemain and Tatsuo Ishii
* Improve make_subplanTargetList to avoid including Vars unnecessarily.Tom Lane2011-07-16
| | | | | | | | | | | If a Var was used only in a GROUP BY expression, the previous implementation would include the Var by itself (as well as the expression) in the generated targetlist. This wouldn't affect the efficiency of the scan/join part of the plan at all, but it could result in passing unnecessarily-wide rows through sorting and grouping steps. It turns out to take only a little more code, and not noticeably more time, to generate a tlist without such redundancy, so let's do that. Per a recent gripe from HarmeekSingh Bedi.
* Replace errdetail("%s", ...) with errdetail_internal("%s", ...).Tom Lane2011-07-16
| | | | | | There may be some other places where we should use errdetail_internal, but they'll have to be evaluated case-by-case. This commit just hits a bunch of places where invoking gettext is obviously a waste of cycles.
* Use errdetail_internal() for SSI transaction cancellation details.Tom Lane2011-07-16
| | | | | | Per discussion, these seem too technical to be worth translating. Kevin Grittner
* Add an errdetail_internal() ereport auxiliary routine.Tom Lane2011-07-16
| | | | | | | | | This function supports untranslated detail messages, in the same way that errmsg_internal supports untranslated primary messages. We've needed this for some time IMO, but discussion of some cases in the SSI code provided the impetus to actually add it. Kevin Grittner, with minor adjustments by me
* Fix SSPI login when multiple roundtrips are requiredMagnus Hagander2011-07-16
| | | | | | | | | | This fixes SSPI login failures showing "The function requested is not supported", often showing up when connecting to localhost. The reason was not properly updating the SSPI handle when multiple roundtrips were required to complete the authentication sequence. Report and analysis by Ahmed Shinwari, patch by Magnus Hagander
* Set different deadlock_timeout on each session in new isolation testsAlvaro Herrera2011-07-15
| | | | | | | This provides deterministic deadlock-detection ordering for new isolation tests, fixing the sporadic failures in them. Author: Noah Misch