- 10 Nov, 2011 5 commits
-
-
Robert Haas authored
This reverts commit 0180bd61. contrib/userlock is gone, but user-level locking still exists, and is exposed via the pg_advisory* family of functions.
-
Tom Lane authored
If malloc(0) returns NULL, the binary search in findSecLabels() will probably go into an infinite loop when there are no security labels, because NULL-1 is greater than NULL after wraparound. (We've seen this pathology before ... I wonder whether there's a way to detect the class of bugs automatically?) Diagnosis and patch by Steve Singer, cosmetic adjustments by me
-
Peter Eisentraut authored
Several server header files would not be installed in vpath builds because they live in the build directory.
-
Bruce Momjian authored
Backpatch to 9.1. Mark Hills
-
Heikki Linnakangas authored
I got alignment wrong in the redo routine. Spotted by redoing the log genereated by copy regression test.
-
- 09 Nov, 2011 8 commits
-
-
Peter Eisentraut authored
-
Heikki Linnakangas authored
Forgot to call RestoreBkpBlocks() in the redo-function, as pointed out by Simon Riggs. In redo of a regular heap insert, it's taken care of in heap_redo(), but this new record type uses the heap2 RM, and heap2_redo() does not take care of that for you. Also, failed to reset the vmbuffer and all_visibile_cleared local variables after switching to a new buffer.
-
Peter Eisentraut authored
It used to be cleaned in maintainer-clean, but that is inconsistent with other cleaning of NLS files in nls-global.mk, and it's also wrong overall, because it's not part of the distribution tarball, which is the base definition of the maintainer-clean target.
-
Robert Haas authored
-
Heikki Linnakangas authored
This greatly reduces the WAL volume, especially when the table is narrow. The overhead of locking the heap page is also reduced. Reduced WAL traffic also makes it scale a lot better, if you run multiple COPY processes at the same time.
-
Tom Lane authored
Ensure that same index gets selected on 32-bit and 64-bit machines. Per buildfarm results.
-
Tom Lane authored
In particular, my previous patch expected the create_index test to run before the inherit test; but this was only true in the serial schedule. Rearrange this portion of the schedules to be more consistent. Per buildfarm results.
-
Tom Lane authored
Add PlaceHolderVar wrappers as needed to make UNION ALL sub-select output expressions appear non-constant and distinct from each other. This makes the world safe for add_child_rel_equivalences to do what it does. Before, it was possible for that function to add identical expressions to different EquivalenceClasses, which logically should imply merging such ECs, which would be wrong; or to improperly add a constant to an EquivalenceClass, drastically changing its behavior. Per report from Teodor Sigaev. The only currently known consequence of this bug is "MergeAppend child's targetlist doesn't match MergeAppend" planner failures in 9.1 and later. I am suspicious that there may be other failure modes that could affect older release branches; but in the absence of any hard evidence, I'll refrain from back-patching further than 9.1.
-
- 08 Nov, 2011 7 commits
-
-
Heikki Linnakangas authored
a new macro, DatumGetInetPP(), that does not. This brings these macros in line with other DatumGet*P() macros. Backpatch to 8.3, where 1-byte header varlenas were introduced.
-
Robert Haas authored
Per an observation from Thom Brown that the old version contained a typo.
-
Robert Haas authored
This was an oversight in commit b60653bc. Also, fix a typo spotted by Thom Brown.
-
Heikki Linnakangas authored
non_empty(anyrange) function was removed, empty(anyrange) was renamed to isempty(anyrange), and !? operators were removed.
-
Peter Eisentraut authored
-
Robert Haas authored
Since PostgreSQL 9.0, we've emitted a warning message when an operator named => is created, because the SQL standard now reserves that token for another use. But we've also shipped such an operator with hstore. Use of the function hstore(text, text) has been recommended in preference to =>(text, text). Per discussion, it's now time to take the next step and stop shipping the operator. This will allow us to prohibit the use of => as an operator name in a future release if and when we wish to support the SQL standard use of this token. The release notes should mention this incompatibility. Patch by me, reviewed by David Wheeler, Dimitri Fontaine and Tom Lane.
-
Robert Haas authored
In a regular VACUUM, it's OK to skip pages for which a cleanup lock isn't immediately available; the next VACUUM will deal with them. If we're scanning the entire relation to advance relfrozenxid, we might need to wait, but only if there are tuples on the page that actually require freezing. These changes should greatly reduce the incidence of of vacuum processes getting "stuck". Simon Riggs and Robert Haas
-
- 07 Nov, 2011 4 commits
-
-
Robert Haas authored
-
Tom Lane authored
Make it use t_isspace() to identify whitespace, rather than relying on sscanf which is known to get it wrong on some platform/locale combinations. Get rid of fixed-size buffers. Make it actually continue to parse the file after ignoring a line with untranslatable characters, as was obviously intended. The first of these issues is per gripe from J Smith, though not exactly either of his proposed patches.
-
Heikki Linnakangas authored
-
Tom Lane authored
Further experimentation reveals that my previous change didn't fix the issue entirely: these tests would still fail at the spring-forward DST transition. There doesn't seem to be any great value in testing this specific issue for both timestamp and timestamptz, so just lose the latter tests.
-
- 06 Nov, 2011 2 commits
-
-
Heikki Linnakangas authored
It was inadvertently changed to 201111111, which is a wrong date. Change it to current date, and remove the comment that was supposed to remind me to fix it before committing.
- 05 Nov, 2011 4 commits
-
-
Magnus Hagander authored
Noted by Tom
-
Magnus Hagander authored
-
Magnus Hagander authored
-
Tom Lane authored
This assumption can be wrong when the toaster is passed a raw on-disk tuple, because the tuple might pre-date an ALTER TABLE ADD COLUMN operation that added columns without rewriting the table. In such a case the tuple's natts value is smaller than what we expect from the tuple descriptor, and so its t_hoff value could be smaller too. In fact, the tuple might not have a null bitmap at all, and yet our current opinion of it is that it contains some trailing nulls. In such a situation, toast_insert_or_update did the wrong thing, because to save a few lines of code it would use the old t_hoff value as the offset where heap_fill_tuple should start filling data. This did not leave enough room for the new nulls bitmap, with the result that the first few bytes of data could be overwritten with null flag bits, as in a recent report from Hubert Depesz Lubaczewski. The particular case reported requires ALTER TABLE ADD COLUMN followed by CREATE TABLE AS SELECT * FROM ... or INSERT ... SELECT * FROM ..., and further requires that there be some out-of-line toasted fields in one of the tuples to be copied; else we'll not reach the troublesome code. The problem can only manifest in this form in 8.4 and later, because before commit a77eaa6a, CREATE TABLE AS or INSERT/SELECT wouldn't result in raw disk tuples getting passed directly to heap_insert --- there would always have been at least a junkfilter in between, and that would reconstitute the tuple header with an up-to-date t_natts and hence t_hoff. But I'm backpatching the tuptoaster change all the way anyway, because I'm not convinced there are no older code paths that present a similar risk.
-
- 04 Nov, 2011 7 commits
-
-
Peter Eisentraut authored
The given archive_command example didn't use %p or %f, which wouldn't really work in practice.
-
Peter Eisentraut authored
-
Magnus Hagander authored
-
Robert Haas authored
-
Robert Haas authored
Kevin Grittner
-
Simon Riggs authored
-
Alvaro Herrera authored
I broke it in a previous commit because I neglected to install the necessary incantations to have getopt() work on Windows. Per red blots in buildfarm.
-
- 03 Nov, 2011 3 commits
-
-
Tom Lane authored
Both dict_int and dict_xsyn were blithely assuming that whatever memory palloc gives back will be pre-zeroed. This would typically work for just about long enough to run their regression tests, and no longer :-(. The pre-9.0 code in dict_xsyn was even lamer than that, as it would happily give back a pointer to the result of palloc(0), encouraging its caller to access off the end of memory. Again, this would just barely fail to fail as long as memory contained nothing but zeroes. Per a report from Rodrigo Hjort that code based on these examples didn't work reliably.
-
Tom Lane authored
Mostly, clean up long-ago pgindent damage.
-
Tom Lane authored
inline_set_returning_function failed to distinguish functions returning generic RECORD (which require a column list in the RTE, as well as run-time type checking) from those with multiple OUT parameters (which do not). This prevented inlining from happening. Per complaint from Jay Levitt. Back-patch to 8.4 where this capability was introduced.
-