- 31 Jul, 2011 1 commit
-
-
Peter Eisentraut authored
This is to be able to analyze issues with host names in pg_hba.conf.
-
- 30 Jul, 2011 1 commit
-
-
Bruce Momjian authored
Win32. Backpatch to 9.1.
-
- 29 Jul, 2011 2 commits
-
-
Robert Haas authored
Testing shows that the overhead of acquiring and releasing SInvalReadLock and msgNumLock on high-core count boxes can waste a lot of CPU time and hurt performance. This patch adds a per-backend flag that allows us to skip all that locking in most cases. Further testing shows that this improves performance even when sinval traffic is very high. Patch by me. Review and testing by Noah Misch.
-
Robert Haas authored
-
- 28 Jul, 2011 1 commit
-
-
Tom Lane authored
pg_backup_db.c contained a mini SQL lexer with which it tried to identify boundaries between SQL commands, but that code was not designed to cope with standard_conforming_strings, and would get the wrong answer if a backslash immediately precedes a closing single quote in such a string, as per report from Julian Mehnle. The bug only affects direct-to-database restores from archive files made with standard_conforming_strings = on. Rather than complicating the code some more to try to fix that, let's just rip it all out. The only reason it was needed was to cope with COPY data embedded into ordinary archive entries, which was a layout that was used only for about the first three weeks of the archive format's existence, and never in any production release of pg_dump. Instead, just rely on the archive file layout to tell us whether we're printing COPY data or not. This bug represents a data corruption hazard in all releases in which standard_conforming_strings can be turned on, ie 8.2 and later, so back-patch to all supported branches.
-
- 27 Jul, 2011 2 commits
-
-
Peter Eisentraut authored
-
Robert Haas authored
Noted by Josh Kupershmidt.
-
- 26 Jul, 2011 6 commits
-
-
Tom Lane authored
It turns out to be possible to link against a libxml2.so that does this differently than the version we configured and built against, so we need a runtime check to avoid bizarre behavior. Per report from Bernd Helmle. Patch by Florian Pflug.
-
Peter Eisentraut authored
-
Peter Eisentraut authored
They are identical, but the overwhelming majority of the code uses %d, so standardize on that.
-
Robert Haas authored
Josh Kupershmidt, with minor modifications by me.
-
Robert Haas authored
Per discussion with Josh Kupershmidt.
-
Andrew Dunstan authored
Windows doesn't have Unix sockets, so it's not needed, and moreover causes compile warnings.
-
- 25 Jul, 2011 6 commits
-
-
Andrew Dunstan authored
It is set correctly on the only path that uses it, but the compiler can't know that.
-
Robert Haas authored
This probably needs more work, but it's a start. KaiGai Kohei
-
Robert Haas authored
Laurenz Albe, somewhat modified by me.
-
Robert Haas authored
Per a request from Greg Smith.
-
Robert Haas authored
This entails adjusting pgbench to use getopt_long() rather than getopt().
-
Tom Lane authored
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.
-
- 24 Jul, 2011 3 commits
-
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
Bruce Momjian authored
creating and removing a file because access() doesn't work on that platform. Backpatch to 9.1 where this check was added.
-
- 23 Jul, 2011 3 commits
-
-
Andrew Dunstan authored
-
Peter Eisentraut authored
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.
-
Tom Lane authored
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.
-
- 22 Jul, 2011 1 commit
-
-
Robert Haas authored
I broke this in commit 5da79169, which was obviously insufficiently well tested. Add some regression tests in the hope of making future slip-ups more likely to be noticed.
-
- 21 Jul, 2011 3 commits
-
-
Bruce Momjian authored
writes for logging.
-
Tom Lane authored
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
-
Tom Lane authored
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
-
- 20 Jul, 2011 7 commits
-
-
Tom Lane authored
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
-
Bruce Momjian authored
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.
-
Bruce Momjian authored
-
Robert Haas authored
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.
-
Tom Lane authored
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
-
Robert Haas authored
KaiGai Kohei, based on feedback from Yeb Havinga, with some corrections by me.
-
Robert Haas authored
This is a bit more consistent with the way pg_description is documented, and also include a useful cross-link.
-
- 19 Jul, 2011 4 commits
-
-
Alvaro Herrera authored
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
-
Alvaro Herrera authored
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
-
Alvaro Herrera authored
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
-
Simon Riggs authored
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.
-