aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Get rid of obsolete parse_version helper function.Heikki Linnakangas2013-03-26
| | | | | | | For getting the server's version in numeric form, use PQserverVersion(). It does the exact same parsing as dumputils.c's parse_version(), and has been around in libpq for a long time. For the client's version, just use the PG_VERSION_NUM constant.
* Fix a small logic bug in adjusted parallel restore code.Andrew Dunstan2013-03-25
|
* In base backup, only include our own tablespace version directory.Heikki Linnakangas2013-03-25
| | | | | | | | If you have clusters of different versions pointing to the same tablespace location, we would incorrectly include all the data belonging to the other versions, too. Fixes bug #7986, reported by Sergey Burladyan.
* Make pg_basebackup work with pre-9.3 servers, and add server version check.Heikki Linnakangas2013-03-25
| | | | | | | | | | | | | | | A new 'starttli' field was added to the response of BASE_BACKUP command. Make pg_basebackup tolerate the case that it's missing, so that it still works with older servers. Add an explicit check for the server version, so that you get a nicer error message if you try to use it with a pre-9.1 server. The streaming protocol message format changed in 9.3, so -X stream still won't work with pre-9.3 servers. I added a version check to ReceiveXLogStream() earlier, but write that slightly differently, so that in 9.4, it will still work with a 9.3 server. (In 9.4, the error message needs to be adjusted to "9.3 or above", though). Also, if the version check fails, don't retry.
* Add PF_PRINTF_ATTRIBUTE to on_exit_msg_fmt.Heikki Linnakangas2013-03-25
| | | | Per warning from -Wmissing-format-attribute.
* Add missing #include.Heikki Linnakangas2013-03-25
| | | | time(2) requires time.h.
* Fix some unportable constructs in parallel pg_dump code.Tom Lane2013-03-24
| | | | | Didn't compile on semi-obsolete gcc, and probably not on not-gcc-at-all either.
* Add parallel pg_dump option.Andrew Dunstan2013-03-24
| | | | | | | | | | | | | | | New infrastructure is added which creates a set number of workers (threads on Windows, forked processes on Unix). Jobs are then handed out to these workers by the master process as needed. pg_restore is adjusted to use this new infrastructure in place of the old setup which created a new worker for each step on the fly. Parallel dumps acquire a snapshot clone in order to stay consistent, if available. The parallel option is selected by the -j / --jobs command line parameter of pg_dump. Joachim Wieland, lightly editorialized by Andrew Dunstan.
* Update time zone abbreviation lists for changes missed since 2006.Tom Lane2013-03-23
| | | | | | | | | | | | | | Most (all?) of Russia has moved to what's effectively year-round daylight savings time, so that the "standard" zone names now mean an hour later than they used to. Update that, notably changing MSK as per recent complaint from Sergey Konoplev, but also CHOT, GET, IRKT, KGT, KRAT, MAGT, NOVT, OMST, VLAT, YAKT, YEKT. The corresponding DST abbreviations are presumably now obsolete, but I left them in place with their old definitions, just to reduce any possible breakage from this change. Also add VOLT (Europe/Volgograd), which for some reason we never had before, as well as MIST (Antarctica/Macquarie), and fix obsolete definitions of MAWT, TKT, and WST.
* Semi-automatically detect changes in timezone abbreviations.Tom Lane2013-03-23
| | | | | | | | | | | | | Add an option to zic.c to dump out all non-obsolete timezone abbreviations defined in the Olson database. Comparing this list to its previous state will clue us in when something happens that we may need to account for in the tznames/ time zone abbreviation lists. The README file's previous exhortation to "just grep for differences" was completely useless advice, in my now-considerable experience; but maybe this will be a bit more useful. As a starting point I built the same list from the tzdata files as they existed in 2006, which is committed here as known_abbrevs.txt. Comparison indeed turned up quite a few changes we had neglected to account for, which I will commit separately.
* Avoid renaming data directory during MSVC upgrade testing.Andrew Dunstan2013-03-23
| | | | | | This appears to cause some intermittent file system problems on Windows 8. Instead, set up the old data directory in its intended final location to start with.
* Don't put <indexterm> before <term> in <varlistentry> items.Tom Lane2013-03-23
| | | | | | | | Doing that results in a broken index entry in PDF output. We had only a few like that, which is probably why nobody noticed before. Standardize on putting the <term> first. Josh Kupershmidt
* Document cross-version compatibility issues for contrib/postgres_fdw.Tom Lane2013-03-22
| | | | | | | | | One of the use-cases for postgres_fdw is extracting data from older PG servers, so cross-version compatibility is important. Document what we can do here, and further annotate some of the coding choices that create compatibility constraints. In passing, remove one unnecessary incompatibility with old servers, namely assuming that we didn't need to quote the timezone name 'UTC'.
* Fix contrib/dblink to handle inconsistent DateStyle/IntervalStyle safely.Tom Lane2013-03-22
| | | | | | | | | | | | | | | | | If the remote database's settings of these GUCs are different from ours, ambiguous datetime values may be read incorrectly. To fix, temporarily adopt the remote server's settings while we ingest a query result. This is not a complete fix, since it doesn't do anything about ambiguous values in commands sent to the remote server; but there seems little we can do about that end of it given dblink's entirely textual API for transmitted commands. Back-patch to 9.2. The hazard exists in all versions, but this patch would need more work to apply before 9.2. Given the lack of field complaints about this issue, it doesn't seem worth the effort at present. Daniel Farina and Tom Lane
* Fix problems with incomplete attempt to prohibit OIDS with MVs.Kevin Grittner2013-03-22
| | | | | | | Problem with assertion failure in restoring from pg_dump output reported by Joachim Wieland. Review and suggestions by Tom Lane and Robert Haas.
* Suppress uninitialized-variable warning in new checksum code.Tom Lane2013-03-22
| | | | Some compilers understand that this coding is safe, and some don't.
* Update commit_delay documentation.Tom Lane2013-03-22
| | | | | | | Commit 13fe298ca06f5390df5edf073cf401f9f0b67458 changed this GUC to be PGC_SUSET, but neglected to update the documentation to match. While at it, edit and rearrange the text a little for clarity.
* Add new README file for pages/checksumsSimon Riggs2013-03-22
|
* Allow I/O reliability checks using 16-bit checksumsSimon Riggs2013-03-22
| | | | | | | | | | | | | | | | | | | Checksums are set immediately prior to flush out of shared buffers and checked when pages are read in again. Hint bit setting will require full page write when block is dirtied, which causes various infrastructure changes. Extensive comments, docs and README. WARNING message thrown if checksum fails on non-all zeroes page; ERROR thrown but can be disabled with ignore_checksum_failure = on. Feature enabled by an initdb option, since transition from option off to option on is long and complex and has not yet been implemented. Default is not to use checksums. Checksum used is WAL CRC-32 truncated to 16-bits. Simon Riggs, Jeff Davis, Greg Smith Wide input and assistance from many community members. Thank you.
* Silence compiler warnings about unused values.Andrew Dunstan2013-03-22
| | | | Per gripe from Kevin Grittner.
* Change commit_delay to be SUSET for 9.3+Simon Riggs2013-03-22
| | | | | | | | | | Prior to 9.3 the commit_delay affected only the current user, whereas now only the group leader waits while holding the WALWriteLock. Deliberate or accidental settings to a poor value could seriously degrade performance for all users. Privileges may be delegated by SECURITY DEFINER functions for anyone that needs per-user settings in real situations. Request for change from Peter Geoghegan
* Avoid retrieving dummy NULL columns in postgres_fdw.Tom Lane2013-03-22
| | | | | | | This should provide some marginal overall savings, since it surely takes many more cycles for the remote server to deal with the NULL columns than it takes for postgres_fdw not to emit them. But really the reason is to keep the emitted queries from looking quite so silly ...
* Redo postgres_fdw's planner code so it can handle parameterized paths.Tom Lane2013-03-21
| | | | | | | | | | | | I wasn't going to ship this without having at least some example of how to do that. This version isn't terribly bright; in particular it won't consider any combinations of multiple join clauses. Given the cost of executing a remote EXPLAIN, I'm not sure we want to be very aggressive about doing that, anyway. In support of this, refactor generate_implied_equalities_for_indexcol so that it can be used to extract equivalence clauses that aren't necessarily tied to an index.
* Eliminate trivial whitespace inconsistency in docs sample code.Kevin Grittner2013-03-21
|
* Fix "element <@ range" cost estimation.Heikki Linnakangas2013-03-21
| | | | | | | | | | | | | The statistics-based cost estimation patch for range types broke that, by incorrectly assuming that the left operand of all range oeprators is a range. That lead to a "type x is not a range type" error. Because it took so long for anyone to notice, add a regression test for that case. We still don't do proper statistics-based cost estimation for that, so you just get a default constant estimate. We should look into implementing that, but this patch at least fixes the regression. Spotted by Tom Lane, when testing query from Josh Berkus.
* Allow extracting machine-readable object identityAlvaro Herrera2013-03-20
| | | | | | | | | | | Introduce pg_identify_object(oid,oid,int4), which is similar in spirit to pg_describe_object but instead produces a row of machine-readable information to uniquely identify the given object, without resorting to OIDs or other internal representation. This is intended to be used in the event trigger implementation, to report objects being operated on; but it has usefulness of its own. Catalog version bumped because of the new function.
* Bump up timeout delays some more in timeouts isolation test.Tom Lane2013-03-20
| | | | | | | | | | | | The buildfarm members using -DCLOBBER_CACHE_ALWAYS still don't like this test. Some experimentation shows that on my machine, isolationtester's query to check for "waiting" state takes 2 to 2.5 seconds to bind+execute under -DCLOBBER_CACHE_ALWAYS. Set the timeouts to 5 seconds to leave some headroom for possibly-slower buildfarm critters. Really we ought to fix the "waiting" query, which is not only horridly slow but outright wrong in detail; and then maybe we can back off these timeouts. But right now I'm just trying to get the buildfarm green again.
* Use ORDER BY on matview definitions were needed for stable plans.Kevin Grittner2013-03-19
| | | | | | Per report from Hadi Moshayedi of matview regression test failure with optimization of aggregates. A few ORDER BY clauses improve code coverage for matviews while solving that problem.
* Clarify assumption of filesystem metadata integrity.Simon Riggs2013-03-19
| | | | Jeff Davis
* Correction that 2pc state files use CRC-32.Simon Riggs2013-03-19
| | | | Jeff Davis
* Add reliability docs about storage/memory corruptions.Simon Riggs2013-03-18
| | | | | | | | | | | Add section to the Reliability section about what is and is not protected for various file types. Further edits welcome. Designed to allow 1-2 line change when/if checksums are committed. Inspired by docs written by Jeff Davis, though completely different from his patch.
* Improve documentation of EXTRACT(WEEK).Tom Lane2013-03-18
| | | | | | | | The docs showed that early-January dates can be considered part of the previous year for week-counting purposes, but failed to say explicitly that late-December dates can also be considered part of the next year. Fix that, and add a cross-reference to the "isoyear" field. Per bug #7967 from Pawel Kobylak.
* Add pageinspect--1.0--1.sql for checksum changesSimon Riggs2013-03-18
|
* Add pageinspect--1.1.sql for checksum changesSimon Riggs2013-03-18
|
* Remove PageSetTLI and rename pd_tli to pd_checksumSimon Riggs2013-03-18
| | | | | | | | | | | | | | Remove use of PageSetTLI() from all page manipulation functions and adjust README to indicate change in the way we make changes to pages. Repurpose those bytes into the pd_checksum field and explain how that works in comments about page header. Refactoring ahead of actual feature patch which would make use of the checksum field, arriving later. Jeff Davis, with comments and doc changes by Simon Riggs Direction suggested by Robert Haas; many others providing review comments.
* Increase timeout delays in new timeouts isolation test.Tom Lane2013-03-17
| | | | | | | | Buildfarm member friarbird doesn't like this test as-committed, evidently because it's so slow that the test framework doesn't reliably notice that the backend is waiting before the timeout goes off. (This is not totally surprising, since friarbird builds with -DCLOBBER_CACHE_ALWAYS.) Increase the timeout delay from 1 second to 2 in hopes of resolving that problem.
* Extend object-access hook machinery to support post-alter events.Robert Haas2013-03-17
| | | | | | | This also slightly widens the scope of what we support in terms of post-create events. KaiGai Kohei, with a few changes, mostly to the comments, by me
* Improve signal-handler lockout mechanism in timeout.c.Tom Lane2013-03-17
| | | | | | | | | | | Rather than doing a fairly-expensive setitimer() call to prevent interrupts from happening, let's just invent a simple boolean flag that the signal handler is required to check. This is not only faster but considerably more robust than before, since the previous code effectively assumed that only ITIMER_REAL events would ever fire the SIGALRM handler, which is obviously something that can be broken easily by third-party code. Zoltán Böszörményi and Tom Lane
* Use pqsignal() in contrib programs rather than calling signal(2) directly.Tom Lane2013-03-17
| | | | | | | | | | | The semantics of signal(2) are more variable than one could wish; in particular, on strict-POSIX platforms the signal handler will be reset to SIG_DFL when the signal is delivered. This demonstrably breaks pg_test_fsync's use of SIGALRM. The other changes I made are not absolutely necessary today, because the called handlers all exit the program anyway. But it seems like a good general practice to use pqsignal() exclusively in Postgres code, now that we have it available everywhere.
* Re-include pqsignal() in libpq.Tom Lane2013-03-17
| | | | | | | | We need this in non-ENABLE_THREAD_SAFETY builds, and also to satisfy the exports.txt entry; while it might be a good idea to remove the latter, I'm hesitant to do so except in the context of an intentional ABI break. At least we don't have a separately maintained source file for it anymore.
* initdb needs pqsignal() even on Windows.Tom Lane2013-03-17
| | | | | | | I had thought we weren't using this version of pqsignal() at all on Windows, but that's wrong --- initdb is using it (and coping with the POSIX-ish semantics of bare signal() :-(). So allow the file to be built in WIN32+FRONTEND case, and add it to the MSVC build logic.
* Fix inclusions in pgbench.c.Tom Lane2013-03-17
| | | | | Apparently this was depending on pqsignal.h for <signal.h>. Not sure why I didn't see the failure on my other machine.
* Fix inclusions in pg_receivexlog.c.Tom Lane2013-03-17
| | | | | Apparently this was depending on pqsignal.h for <signal.h>. Not sure why I didn't see the failure on my other machine.
* Move pqsignal() to libpgport.Tom Lane2013-03-17
| | | | | | | | | We had two copies of this function in the backend and libpq, which was already pretty bogus, but it turns out that we need it in some other programs that don't use libpq (such as pg_test_fsync). So put it where it probably should have been all along. The signal-mask-initialization support in src/backend/libpq/pqsignal.c stays where it is, though, since we only need that in the backend.
* Add lock_timeout configuration parameter.Tom Lane2013-03-16
| | | | | | | | | | | | | This GUC allows limiting the time spent waiting to acquire any one heavyweight lock. In support of this, improve the recently-added timeout infrastructure to permit efficiently enabling or disabling multiple timeouts at once. That reduces the performance hit from turning on lock_timeout, though it's still not zero. Zoltán Böszörményi, reviewed by Tom Lane, Stephen Frost, and Hari Babu
* pg_resetxlog: Capitalize placeholder in --help outputPeter Eisentraut2013-03-16
|
* pg_controldata: Undo message spelling changePeter Eisentraut2013-03-16
|
* Improve the documentation about commit_delay.Tom Lane2013-03-15
| | | | | | | | | | | | | | | | | Clarify the docs explaining what commit_delay does, and add a recommendation about a useful value for it, namely half of the single-page fsync time reported by pg_test_fsync. This is informed by testing of the new-in-9.3 implementation of commit_delay; in prior versions it was far harder to arrive at a useful setting. In passing, do some wordsmithing and markup-fixing in the same general area. Also, change pg_test_fsync's default time-per-test from 2 seconds to 5. The old value was about the minimum at which the results could be taken seriously at all, and so seems a tad optimistic as a default. Peter Geoghegan, reviewed by Noah Misch; some additional editing by me
* Improve error reporting in code that checks for buffer refcount leaks.Tom Lane2013-03-15
| | | | | | | | | | Formerly we just Assert'ed that each refcount was zero, which was quick and easy but failed to provide a good overview of what was wrong. Change the code so that we'll call PrintBufferLeakWarning() for each buffer with a nonzero refcount, and then Assert at the end of the loop. This costs nothing in runtime and might ease diagnosis of some bugs. Greg Smith, reviewed by Satoshi Nagayasu, further tweaked by me
* Extend format() to handle field width and left/right alignment.Tom Lane2013-03-14
| | | | | | This change adds some more standard sprintf() functionality to format(). Pavel Stehule, reviewed by Dean Rasheed and Kyotaro Horiguchi