- 23 Sep, 2013 3 commits
-
-
Bruce Momjian authored
-
Stephen Frost authored
In libpq, we set up and pass to OpenSSL callback routines to handle locking. When we run out of SSL connections, we try to clean things up by de-registering the hooks. Unfortunately, we had a few calls into the OpenSSL library after these hooks were de-registered during SSL cleanup which lead to deadlocking. This moves the thread callback cleanup to be after all SSL-cleanup related OpenSSL library calls. I've been unable to reproduce the deadlock with this fix. In passing, also move the close_SSL call to be after unlocking our ssl_config mutex when in a failure state. While it looks pretty unlikely to be an issue, it could have resulted in deadlocks if we ended up in this code path due to something other than SSL_new failing. Thanks to Heikki for pointing this out. Back-patch to all supported versions; note that the close_SSL issue only goes back to 9.0, so that hunk isn't included in the 8.4 patch. Initially found and reported by Vesa-Matti J Kari; many thanks to both Heikki and Andres for their help running down the specific issue and reviewing the patch.
-
Heikki Linnakangas authored
When a timeline history file is fetched from server, it is initially created with a temporary file name, and renamed to place. However, the temporary file name was constructed using an uninitialized buffer. Usually that meant that the file was created in current directory instead of the target, which usually goes unnoticed, but if the target is on a different filesystem than the current dir, the rename() would fail. Fix that. The second issue is that pg_receivexlog would not take .partial files into account when determining when scanning the target directory for existing WAL files. If the timeline has switched in the server several times in the last WAL segment, and pg_receivexlog is restarted, it would choose a too old starting point. That's not a problem as long as the old WAL segment exists in the server and can be streamed over, but will cause a failure if it's not. Backpatch to 9.3, where this timeline handling code was written. Analysed by Andrew Gierth, bug #8453, based on a bug report on IRC.
-
- 19 Sep, 2013 1 commit
-
-
Robert Haas authored
Per complaint from Andrew Gierth.
-
- 18 Sep, 2013 3 commits
-
-
Fujii Masao authored
Ian Lawrence Barwick
-
Robert Haas authored
Etsuro Fujita
-
Robert Haas authored
Etsuro Fujita
-
- 17 Sep, 2013 1 commit
-
-
Alvaro Herrera authored
This has been unused since commit 8563ccae. Noted by Antonin Houska
-
- 16 Sep, 2013 2 commits
-
-
Alvaro Herrera authored
It seems to make more sense to use "cutoff multixact" terminology throughout the backend code; "freeze" is associated with replacing of an Xid with FrozenTransactionId, which is not what we do for MultiXactIds. Andres Freund Some adjustments by Álvaro Herrera
-
Heikki Linnakangas authored
Bernd Helmle
-
- 15 Sep, 2013 1 commit
-
-
Peter Eisentraut authored
-
- 12 Sep, 2013 1 commit
-
-
Noah Misch authored
Once the administrator has called for an immediate shutdown or a backend crash has triggered a reinitialization, no mere SIGINT or SIGTERM should change that course. Such derailment remains possible when the signal arrives before quickdie() blocks signals. That being a narrow race affecting most PostgreSQL signal handlers in some way, leave it for another patch. Back-patch this to all supported versions.
-
- 11 Sep, 2013 4 commits
-
-
Kevin Grittner authored
Comments and the tests make clear that the intent is to test with and without an index, but there was no index.
-
Bruce Momjian authored
Albe Laurenz
-
Bruce Momjian authored
Josh Kupershmidt
-
Bruce Momjian authored
Gurjeet Singh
-
- 10 Sep, 2013 4 commits
-
-
Bruce Momjian authored
Previously a trailing space was required for \copy ... stdin: copy foo from stdin ; Etsuro Fujita
-
Bruce Momjian authored
"No rows" previously only honored the tuples-only option. Per report from Eli Mesika
-
Fujii Masao authored
The prototype for inval_twophase_postcommit wasn't removed when it's definition was removed in efc16ea5 / the initial HS commit. Andres Freund
-
Peter Eisentraut authored
Before, it would only show schemas that the current user owns. Per discussion, the new behavior is more useful and consistent for PostgreSQL.
-
- 09 Sep, 2013 1 commit
-
-
Robert Haas authored
This allows a 32-bit field to represent an *optional* command ID without a separate flag bit. Andres Freund
-
- 08 Sep, 2013 2 commits
-
-
Michael Meskes authored
Found by Coverity.
-
Michael Meskes authored
-
- 07 Sep, 2013 1 commit
-
-
Bruce Momjian authored
Previously a one-dimensional empty array was returned, but its text representation matched a zero-dimensional array, and there is no way to dump/reload a one-dimensional empty array. BACKWARD INCOMPATIBILITY Per report from elein
-
- 06 Sep, 2013 1 commit
-
-
Noah Misch authored
Doing so was helpful for some Valgrind usage and distracting for other usage. One can achieve the same effect by changing log_statement and pointing both PostgreSQL and Valgrind logging to stderr. Per gripe from Andres Freund.
-
- 05 Sep, 2013 4 commits
-
-
Kevin Grittner authored
Commit 95ef6a34 removed the ability to create rules on an individual column as of 7.3, but left some residual code which has since been useless. This cleans up that dead code without any change in behavior other than dropping the useless column from the catalog.
-
Heikki Linnakangas authored
If the hash table backing a catalog cache becomes too full (fillfactor > 2), enlarge it. A new buckets array, double the size of the old, is allocated, and all entries in the old hash are moved to the right bucket in the new hash. This has two benefits. First, cache lookups don't get so expensive when there are lots of entries in a cache, like if you access hundreds of thousands of tables. Second, we can make the (initial) sizes of the caches much smaller, which saves memory. This patch dials down the initial sizes of the catcaches. The new sizes are chosen so that a backend that only runs a few basic queries still won't need to enlarge any of them.
-
Jeff Davis authored
This reverts commit 269e7808 and commit 5b571bb8. Unfortunately, the initial patch had insufficient performance testing, and resulted in a regression. Per report by Thom Brown.
-
Jeff Davis authored
Make the examples self-contained to avoid confusion. Per bug report 8367 from KOIZUMI Satoru.
-
- 04 Sep, 2013 4 commits
-
-
Bruce Momjian authored
Previous text was "No description available". Tianyin Xu
-
Bruce Momjian authored
Backpatch to 9.3. Per suggestion from Gavan Schneider
-
Heikki Linnakangas authored
Performance testing shows that if the insertpos_lck spinlock and the fields that it protects are on the same cache line with other variables that are frequently accessed, the false sharing can hurt performance a lot. Keep them apart by adding some padding.
-
Robert Haas authored
Andres Freund
-
- 03 Sep, 2013 7 commits
-
-
Tom Lane authored
This GUC context value was once only used by ALTER DATABASE SET and ALTER USER SET. That's not true anymore, though, so rewrite the comments to be a bit more general. Patch in HEAD only, since this is just an internal documentation issue.
-
Tom Lane authored
The previous coding attempted to activate all the GUC settings specified in SET clauses, so that the function validator could operate in the GUC environment expected by the function body. However, this is problematic when restoring a dump, since the SET clauses might refer to database objects that don't exist yet. We already have the parameter check_function_bodies that's meant to prevent forward references in function definitions from breaking dumps, so let's change CREATE FUNCTION to not install the SET values if check_function_bodies is off. Authors of function validators were already advised not to make any "context sensitive" checks when check_function_bodies is off, if indeed they're checking anything at all in that mode. But extend the documentation to point out the GUC issue in particular. (Note that we still check the SET clauses to some extent; the behavior with !check_function_bodies is now approximately equivalent to what ALTER DATABASE/ROLE have been doing for awhile with context-dependent GUCs.) This problem can be demonstrated in all active branches, so back-patch all the way.
-
Tom Lane authored
There's no inherent reason why an aggregate function can't be variadic (even VARIADIC ANY) if its transition function can handle the case. Indeed, this patch to add the feature touches none of the planner or executor, and little of the parser; the main missing stuff was DDL and pg_dump support. It is true that variadic aggregates can create the same sort of ambiguity about parameters versus ORDER BY keys that was complained of when we (briefly) had both one- and two-argument forms of string_agg(). However, the policy formed in response to that discussion only said that we'd not create any built-in aggregates with varying numbers of arguments, not that we shouldn't allow users to do it. So the logical extension of that is we can allow users to make variadic aggregates as long as we're wary about shipping any such in core. In passing, this patch allows aggregate function arguments to be named, to the extent of remembering the names in pg_proc and dumping them in pg_dump. You can't yet call an aggregate using named-parameter notation. That seems like a likely future extension, but it'll take some work, and it's not what this patch is really about. Likewise, there's still some work needed to make window functions handle VARIADIC fully, but I left that for another day. initdb forced because of new aggvariadic field in Aggref parse nodes.
-
Alvaro Herrera authored
-
Bruce Momjian authored
-
Bruce Momjian authored
per suggestion from Francisco Olart
-