1. Andrew Dunstan
  2. pgdevel

Commits

Show all
Author Commit Message Date Builds
Peter Eisentraut
Add pg_upgrade test suite It runs the regression tests, runs pg_upgrade on the populated database, and compares the before and after dumps. While not actually a cross-version upgrade, this does detect omissions and bugs in the involved tools from time to time. It's also possible to do a cross-version upgrade by manually supplying parameters.
Tom Lane
Use the proper macro to convert a bool to a Datum. The original coding was var->value = (Datum) state; which is bogus, and then in commit 2f0f7b4bce13e68394543728801ef011fd82fac6 it was "corrected" to var->value = PointerGetDatum(state); which is a faithful translation but still wrong. This seems purely cosmetic, though, so no need for a back-patch. Pavel Stehule
Andrew Dunstan
Fix MSVC builds broken by xsubpp change
Bruce Momjian
Move pg_dump memory routines into pg_dumpmem.c/h and restore common.c with its original functions. The previous function migration would cause too many difficulties in back-patching.
Andrew Dunstan
Use the right interpreter for encoding test.
Andrew Dunstan
Use the preferred version of xsubpp, not necessarily the one that came with the distro version of perl. David Wheeler and Alex Hunsaker. Backpatch to 9.1 where it applies cleanly. A simple workaround is available for earlier branches, and further effort doesn't seem warranted.
Tom Lane
Make GiST index searches smarter about queries against empty ranges. In the cases where the result of the called proc is negated, we should explicitly test both inputs for empty, to ensure we'll never return "true" for an unsatisfiable query. In other cases we can rely on the called proc to say the right thing.
Tom Lane
Fix overly-aggressive and inconsistent quoting in OS X start script. Sidar Lopez, per bug #6310, with some additional improvements by me. Back-patch to 9.0, where the issue was introduced.
Andrew Dunstan
Ensure plperl strings are always correctly UTF8 encoded. Amit Khandekar and Alex Hunsaker. Backpatched to 9.1 where the problem first occurred.
Bruce Momjian
Fix join_path_components() to not add a leading slash when joining to an initial null string. Per report from Robert Haas in testing psql \ir.
Heikki Linnakangas
Take fillfactor into account in the new COPY bulk heap insert code. Jeff Janes
Bruce Momjian
Remove ENABLE_SAME_CATVERSION_UPGRADES as unnecessary.
Alvaro Herrera
Fix unvalidated check constraints on domains, too Same bug as reported by Thom Brown for check constraints on tables: the constraint must be dumped separately from the domain, otherwise it is restored before the data and thus prevents potentially-violating data from being loaded in the first place. Per Dean Rasheed
Bruce Momjian
Modify pg_dump to use error-free memory allocation macros. This avoids ignoring errors and call-site error checking.
Bruce Momjian
Allow pg_upgrade to upgrade clusters that use exclusion contraints by fixing pg_dump to properly preserve such indexes. Backpatch to 9.1 and 9.0 (where the bug was introduced).
Alvaro Herrera
Improve logging of autovacuum I/O activity This adds some I/O stats to the logging of autovacuum (when the operation takes long enough that log_autovacuum_min_duration causes it to be logged), so that it is easier to tune. Notably, it adds buffer I/O counts (hits, misses, dirtied) and read and write rate. Authors: Greg Smith and Noah Misch
Tom Lane
Fix erroneous replay of GIN_UPDATE_META_PAGE WAL records. A simple thinko in ginRedoUpdateMetapage, namely failing to increment a loop counter, led to inserting records into the last pending-list page in the wrong order (the opposite of that intended). So far as I can tell, this would not upset the code that eventually flushes pending items into the main part of the GIN index. But it did break the code that searched the pending list for matches, result…
Robert Haas
Move "hot" members of PGPROC into a separate PGXACT array. This speeds up snapshot-taking and reduces ProcArrayLock contention. Also, the PGPROC (and PGXACT) structures used by two-phase commit are now allocated as part of the main array, rather than in a separate array, and we keep ProcArray sorted in pointer order. These changes are intended to minimize the number of cache lines that must be pulled in to take a snapshot, and testing shows a substantial…
Tom Lane
Fix unsupported options in CREATE TABLE ... AS EXECUTE. The WITH [NO] DATA option was not supported, nor the ability to specify replacement column names; the former limitation wasn't even documented, as per recent complaint from Naoya Anzai. Fix by moving the responsibility for supporting these options into the executor. It actually takes less code this way ... catversion bump due to change in representation of IntoClause, which might affect stored …
Alvaro Herrera
Dump an unvalidated constraint separately from its table This allows possibly violating data to be imported before the constraint is installed. Bug reported by Thom Brown
Heikki Linnakangas
Preserve SQLSTATE when an SPI error is propagated through PL/python exception handler. This was a regression in 9.1, when the capability to catch specific SPI errors was added, so backpatch to 9.1. Mika Eloranta, with some editing by Jan Urbański.
Bruce Momjian
Add pg_upgrade ENABLE_SAME_CATVERSION_UPGRADES macro for testing to allow upgrades of the same catalog version. (Doesn't work for tablespaces, as indicated by C comment.)
Tom Lane
Some more editing of the range-types documentation. Be more thorough about specifying the expectations for canonical and subtype_diff functions, and move that info to the same place.
Tom Lane
Adjust range_adjacent to support different canonicalization rules. The original coding would not work for discrete ranges in which the canonicalization rule is to produce symmetric boundaries (either [] or () style), as noted by Jeff Davis. Florian Pflug pointed out that we could fix that by invoking the canonicalization function to see if the range "between" the two given ranges normalizes to empty. This implementation of Florian's idea is a tad slower than th…
Tom Lane
Creator of a range type must have permission to call support functions. Since range types can be created by non-superusers, we need to consider their permissions. Ideally we'd check this when the type is used, not when it's created, but that seems like much more trouble than it's worth. The existing restriction that the support functions be immutable already prevents most cases where an unauthorized call to a function might be thought a security issue, and the fact t…
Tom Lane
Remove user-selectable ANALYZE option for range types. It's not clear that a per-datatype typanalyze function would be any more useful than a generic typanalyze for ranges. What *is* clear is that letting unprivileged users select typanalyze functions is a crash risk or worse. So remove the option from CREATE TYPE AS RANGE, and instead put in a generic typanalyze function for ranges. The generic function does nothing as yet, but hopefully we'll imp…
Tom Lane
Remove zero- and one-argument range constructor functions. Per discussion, the zero-argument forms aren't really worth the catalog space (just write 'empty' instead). The one-argument forms have some use, but they also have a serious problem with looking too much like functional cast notation; to the point where in many real use-cases, the parser would misinterpret what was wanted. Committing this as a separate patch, with the thought that we might want…
Tom Lane
Improve implementation of range-contains-element tests. Implement these tests directly instead of constructing a singleton range and then applying range-contains. This saves a range serialize/deserialize cycle as well as a couple of redundant bound-comparison steps, and adds very little code on net. Remove elem_contained_by_range from the GiST opclass: it doesn't belong there because there is no way to use it in an index clause (where the indexed col…
Robert Haas
Check for INSERT privileges in SELECT INTO / CREATE TABLE AS. In the normal course of events, this matters only if ALTER DEFAULT PRIVILEGES has been used to revoke default INSERT permission. Whether or not the new behavior is more or less likely to be what the user wants when dealing only with the built-in privilege facilities is arguable, but it's clearly better when using a loadable module such as sepgsql that may use the hook in ExecCheckRTPerms to enfor…
Tom Lane
Still more review for range-types patch. Per discussion, relax the range input/construction rules so that the only hard error is lower bound > upper bound. Cases where the lower bound is <= upper bound, but the range nonetheless normalizes to empty, are now permitted. Fix core dump in range_adjacent when bounds are infinite. Marginal cleanup of regression test cases, some more code commenting.
  1. Prev
  2. Next