- 10 Dec, 2011 3 commits
-
-
Andrew Dunstan authored
Remove some dead code, conditionally declare some items or call some code, and fix one or two declarations.
-
Andrew Dunstan authored
-
Andrew Dunstan authored
Original patch by Lars Kanis, reviewed by Nishiyama Tomoaki and tweaked some by me. This compiler, or at least the latest version of it, is currently broken, and only passes the regression tests if built with -O0.
-
- 09 Dec, 2011 4 commits
-
-
Robert Haas authored
Marti Raudsepp, with additional paranoia by me.
-
Peter Eisentraut authored
-
Heikki Linnakangas authored
we don't reach consistency before replaying all of the WAL. Rename the variable to reachedConsistency, to make its intention clearer. In master, that was an active bug because of the recent patch to immediately PANIC if a reference to a missing page is found in WAL after reaching consistency, as Tom Lane's test case demonstrated. In 9.1 and 9.0, the only consequence was a misleading "consistent recovery state reached at %X/%X" message in the log at the beginning of crash recovery (the database is not consistent at that point yet). In 8.4, the log message was not printed in crash recovery, even though there was a similar reachedMinRecoveryPoint local variable that was also set early. So, backpatch to 9.1 and 9.0.
-
Heikki Linnakangas authored
lost. The only way we detect that at the moment is when write() fails when we try to write to the socket. Florian Pflug with small changes by me, reviewed by Greg Jaskiewicz.
-
- 07 Dec, 2011 6 commits
-
-
Peter Eisentraut authored
Thomas Munro
-
Tom Lane authored
Make sure all calls are protected by HAVE_READLINK, and get the buffer overflow tests right. Be a bit more paranoid about string length in _tarWriteHeader(), too.
-
Magnus Hagander authored
This situation won't set errno, so using %m will give an incorrect error message.
-
Magnus Hagander authored
We don't have any such platforms now, but might in the future. Also, detect cases when a tablespace symlink points to a path that is longer than we can handle, and give a warning.
-
Magnus Hagander authored
Instead, add a function pg_tablespace_location(oid) used to return the same information, and do this by reading the symbolic link. Doing it this way makes it possible to relocate a tablespace when the database is down by simply changing the symbolic link.
-
Tom Lane authored
This patch creates an API whereby a btree index opclass can optionally provide non-SQL-callable support functions for sorting. In the initial patch, we only use this to provide a directly-callable comparator function, which can be invoked with a bit less overhead than the traditional SQL-callable comparator. While that should be of value in itself, the real reason for doing this is to provide a datatype-extensible framework for more aggressive optimizations, as in Peter Geoghegan's recent work. Robert Haas and Tom Lane
-
- 06 Dec, 2011 3 commits
-
-
Robert Haas authored
Noted during post-commit review by by Noah Misch.
-
Robert Haas authored
If unable to connect to "postgres", try "template1". This allows things to work more smoothly in the case where the postgres database has been dropped. And just in case that's not good enough, also allow the user to specify a maintenance database to be used for the initial connection, to cover the case where neither postgres nor template1 is suitable.
-
Magnus Hagander authored
Euler Taveira de Oliveira
-
- 05 Dec, 2011 3 commits
-
-
Bruce Momjian authored
preserve pg_class oids since PG 9.0.
-
Tom Lane authored
While logically correct, these two Asserts could fail depending on the vagaries of floating-point arithmetic. In particular, on machines with floating-point registers wider than standard "double" values, it was possible for the compiler to compare a rounded-to-double value already stored in memory with an unrounded long double value still in a register. Given the preceding checks, these assertions aren't adding much, so let's just get rid of them rather than try to find a compiler-proof fix. Per report from Pavel Stehule. Given the lack of previous complaints, and the fact that only developers would be likely to trip over it, I'm only going to change this in HEAD, even though the code has been like this for a long time.
-
Peter Eisentraut authored
Add a function plpy.cursor that is similar to plpy.execute but uses an SPI cursor to avoid fetching the entire result set into memory. Jan Urbański, reviewed by Steve Singer
-
- 04 Dec, 2011 3 commits
-
-
Andrew Dunstan authored
This can be used to set (or unset) environment variables that will affect programs called by psql (such as the PAGER), probably most usefully in a .psqlrc file. Andrew Dunstan, reviewed by Josh Kupershmidt.
-
Magnus Hagander authored
The CREATE EXTENSION step does this automatically. Doing it again will cause an error.
-
Michael Meskes authored
code.
-
- 03 Dec, 2011 1 commit
-
-
Magnus Hagander authored
This makes it possible to use a libpq app with home directory set to /dev/null, for example - treating it the same as if the file doesn't exist (which it doesn't). Per bug #6302, reported by Diego Elio Petteno
-
- 02 Dec, 2011 4 commits
-
-
Bruce Momjian authored
Tom Lane, with minor adjustments by me.
-
Peter Eisentraut authored
This gives editors a better chance to treat these files as the SQL files that they are.
-
Tom Lane authored
PGresults used to be read-only from the application's viewpoint, but now that we've exposed various functions that allow modification of a PGresult, that sweeping statement is no longer accurate. Noted by Dmitriy Igrishin.
-
Heikki Linnakangas authored
invalid-page hash table, PANIC immediately. Immediate PANIC is much better than waiting for end-of-recovery, which is what we did before, because the end-of-recovery might not come until months later if this is a standby server. Also refrain from creating a restartpoint if there are invalid-page entries in the hash table. Restarting recovery from such a restartpoint would not see the invalid references, and wouldn't be able to cross-check them when consistency is reached. That wouldn't matter when things are going smoothly, but the more sanity checks you have the better. Fujii Masao
-
- 01 Dec, 2011 7 commits
-
-
Tom Lane authored
The point that you need parentheses for non-constant expressions apparently needs to be brought out a bit more clearly, per bug #6315.
-
Robert Haas authored
Not everyone has /pg linked to the src subdirectory of their PostgreSQL tree. Also, cc isn't the way to invoke the compiler everywhere.
-
Tom Lane authored
Since record[] uses array_in, it needs to have its element type passed as typioparam. In HEAD and 9.1, this fix essentially reverts commit 9bc933b2, which was a hack that is no longer needed since domains don't set their typelem anymore. Before that, adjust the logic so that only domains are excluded from being treated like arrays, rather than assuming that only base types should be included. Add a regression test to demonstrate the need for this. Per report from Maxim Boguk. Back-patch to 8.4, where type record[] was added.
-
Bruce Momjian authored
Josh Berkus
-
Bruce Momjian authored
-
Tom Lane authored
Per Emmanuel Kasper, sysctl works fine as of NetBSD 5.0.
-
Tom Lane authored
-
- 30 Nov, 2011 6 commits
-
-
Tom Lane authored
DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, Samoa. Historical corrections for Alaska and British East Africa.
-
Robert Haas authored
In the previous coding, callers were faced with an awkward choice: look up the name, do permissions checks, and then lock the table; or look up the name, lock the table, and then do permissions checks. The first choice was wrong because the results of the name lookup and permissions checks might be out-of-date by the time the table lock was acquired, while the second allowed a user with no privileges to interfere with access to a table by users who do have privileges (e.g. if a malicious backend queues up for an AccessExclusiveLock on a table on which AccessShareLock is already held, further attempts to access the table will be blocked until the AccessExclusiveLock is obtained and the malicious backend's transaction rolls back). To fix, allow callers of RangeVarGetRelid() to pass a callback which gets executed after performing the name lookup but before acquiring the relation lock. If the name lookup is retried (because invalidation messages are received), the callback will be re-executed as well, so we get the best of both worlds. RangeVarGetRelid() is renamed to RangeVarGetRelidExtended(); callers not wishing to supply a callback can continue to invoke it as RangeVarGetRelid(), which is now a macro. Since the only one caller that uses nowait = true now passes a callback anyway, the RangeVarGetRelid() macro defaults nowait as well. The callback can also be used for supplemental locking - for example, REINDEX INDEX needs to acquire the table lock before the index lock to reduce deadlock possibilities. There's a lot more work to be done here to fix all the cases where this can be a problem, but this commit provides the general infrastructure and fixes the following specific cases: REINDEX INDEX, REINDEX TABLE, LOCK TABLE, and and DROP TABLE/INDEX/SEQUENCE/VIEW/FOREIGN TABLE. Per discussion with Noah Misch and Alvaro Herrera.
-
Tom Lane authored
On a platform that isn't supplying __FILE__, previous coding would either crash or give a stale result for the filename string. Not sure how likely that is, but the original code catered for it, so let's keep doing so.
-
Peter Eisentraut authored
In vpath builds, the __FILE__ macro that is used in verbose error reports contains the full absolute file name, which makes the error messages excessively verbose. So keep only the base name, thus matching the behavior of non-vpath builds.
-
Tom Lane authored
Per buildfarm.
-
Tom Lane authored
-