- 03 Jul, 2013 8 commits
-
-
Alvaro Herrera authored
In patch 82233ce7, AbortStartTime wasn't being reset appropriately after the restart sequence, causing subsequent iterations through ServerLoop to malfunction.
-
Robert Haas authored
Robins Tharakan, reviewed by Szymon Guz
-
Robert Haas authored
Robins Tharakan, reviewed by Szymon Guz
-
Noah Misch authored
Specifically, permit attaching them to the error in RAISE and retrieving them from a caught error in GET STACKED DIAGNOSTICS. RAISE enforces nothing about the content of the fields; for its purposes, they are just additional string fields. Consequently, clarify in the protocol and libpq documentation that the usual relationships between error fields, like a schema name appearing wherever a table name appears, are not universal. This freedom has other applications; consider a FDW propagating an error from an RDBMS having no schema support. Back-patch to 9.3, where core support for the error fields was introduced. This prevents the confusion of having a release where libpq exposes the fields and PL/pgSQL does not. Pavel Stehule, lexical revisions by Noah Misch.
-
Peter Eisentraut authored
The web site is dead, and the Wayback Machine shows that it didn't have much useful content before.
-
Peter Eisentraut authored
-
Peter Eisentraut authored
-
Peter Eisentraut authored
This mirrors the equivalent error cases in pg_dump.
-
- 02 Jul, 2013 6 commits
-
-
Robert Haas authored
To that end, support tags rather than lengths for external datums. As an example of how this can be used, add support or "indirect" tuples which point to some externally allocated memory containing a toast tuple. Similar infrastructure could be used for other purposes, including, perhaps, support for alternative compression algorithms. Andres Freund, reviewed by Hitoshi Harada and myself
-
Alvaro Herrera authored
Make it easier for readers of the FP docs to find out about possibly truncated values. Per complaint from Tom Duffey in message F0E0F874-C86F-48D1-AA2A-0C5365BF5118@trillitech.com Author: Albe Laurenz Reviewed by: Abhijit Menon-Sen
-
Heikki Linnakangas authored
With -Wtype-limits, gcc correctly points out that size_t can never be < 0. Backpatch to 9.3 and 9.2. It's been like this forever, but in <= 9.1 you got a lot other warnings with -Wtype-limits anyway (at least with my version of gcc). Andres Freund
-
Bruce Momjian authored
On the command line, GUC option strings are handled by the guc parser, not by the shell parser, so '' is the proper way to represent a zero-length string. This reverts commit 3132a9b7.
-
Robert Haas authored
SnapshotNow scans have the undesirable property that, in the face of concurrent updates, the scan can fail to see either the old or the new versions of the row. In many cases, we work around this by requiring DDL operations to hold AccessExclusiveLock on the object being modified; in some cases, the existing locking is inadequate and random failures occur as a result. This commit doesn't change anything related to locking, but will hopefully pave the way to allowing lock strength reductions in the future. The major issue has held us back from making this change in the past is that taking an MVCC snapshot is significantly more expensive than using a static special snapshot such as SnapshotNow. However, testing of various worst-case scenarios reveals that this problem is not severe except under fairly extreme workloads. To mitigate those problems, we avoid retaking the MVCC snapshot for each new scan; instead, we take a new snapshot only when invalidation messages have been processed. The catcache machinery already requires that invalidation messages be sent before releasing the related heavyweight lock; else other backends might rely on locally-cached data rather than scanning the catalog at all. Thus, making snapshot reuse dependent on the same guarantees shouldn't break anything that wasn't already subtly broken. Patch by me. Review by Michael Paquier and Andres Freund.
-
Peter Eisentraut authored
The dependencies on the spi and dummy_seclabel contrib modules were incomplete, because they did not pick up automatically generated dependencies on header files. This will manifest itself especially when switching major versions, where the contrib modules would not be recompiled to contain the new version number, leading to regression test failures. To fix this, use the submake approach already in use elsewhere, so that the contrib modules are built using their full rules.
-
- 01 Jul, 2013 9 commits
-
-
Bruce Momjian authored
On Unix, you can embed double-quotes in single-quotes, and via versa. However, on Windows, you can only escape double-quotes in double-quotes, so use that in the pg_dump -t/table example. Backpatch to 9.3. Report from Mike Toews
-
Robert Haas authored
David Fetter and Andrew Gierth, reviewed by Jeevan Chalke
-
Bruce Momjian authored
If we ever support unix sockets on Windows, we should use "" rather than '' for zero-length strings on the command-line, so use that.
-
Bruce Momjian authored
Add ability for to_char() to output the timezone's UTC offset (OF). We already have the ability to return the timezone abbeviation (TZ/tz). Per request from Andrew Dunstan
-
Andrew Dunstan authored
A VPATH build will be performed when the module's make file path is not the current directory or when USE_VPATH is set. This will assist packagers and others who prefer to build without polluting the source directories. There is still a bit of work to do here, notably documentation, but it's probably a good idea to commit what we have so far and let people test it out on their modules. Cédric Villemain, with an addition from me.
-
Bruce Momjian authored
Update Linux Standard Base Core Specification 3.1 URL mention in pg_ctl comments.
-
Bruce Momjian authored
The -h option was not supported by many tools, and not documented, so remove them for consistency from pg_upgrade, pg_test_fsync, and pg_test_timing.
-
Heikki Linnakangas authored
The pglz compressor has a significant startup cost, because it has to initialize to zeros the history-tracking hash table. On a 64-bit system, the hash table was 64kB in size. While clearing memory is pretty fast, for very short inputs the relative cost of that was quite large. This patch alleviates that in two ways. First, instead of storing pointers in the hash table, store 16-bit indexes into the hist_entries array. That slashes the size of the hash table to 1/2 or 1/4 of the original, depending on the pointer width. Secondly, adjust the size of the hash table based on input size. For very small inputs, you don't need a large hash table to avoid collisions. Review by Amit Kapila.
-
Heikki Linnakangas authored
We don't normally bother retrying when the number of bytes written by write() is short of what was requested. It is generally assumed that a write() to disk doesn't return short, unless you run out of disk space. While writing the WAL, however, it seems prudent to try a bit harder, because a failure leads to PANIC. The write() is also much larger than most write()s in the backend (up to wal_buffers), so there's more room for surprises. Also retry on EINTR. All signals used in the backend are flagged SA_RESTART nowadays, so it shouldn't happen, but better to be defensive.
-
- 30 Jun, 2013 2 commits
-
-
Peter Eisentraut authored
C++ is more picky about comparing signed and unsigned integers.
-
Peter Eisentraut authored
mm_strdup() is provided to check errors from strdup(), but some places were failing to use it.
-
- 29 Jun, 2013 1 commit
-
-
Heikki Linnakangas authored
ginCompareItemPointers function is called heavily in gin index scans - inlining it speeds up some kind of queries a lot.
-
- 28 Jun, 2013 11 commits
-
-
Simon Riggs authored
Set errcode to ERRCODE_LOCK_NOT_AVAILABLE Zoltán Bsöszörményi
-
Simon Riggs authored
Allow constraint attributes to be altered, so the default setting of NOT DEFERRABLE can be altered to DEFERRABLE and back. Review by Abhijit Menon-Sen
-
Simon Riggs authored
-
Bruce Momjian authored
If -U (user) is specified, pass the username into the created analyze script. Per request from Ray Stell
-
Bruce Momjian authored
-h (help) is not needed; pg_upgrade already supports --help and -?, which is consistent with other tools.
-
Bruce Momjian authored
Previous code had old/new prefixes on option values, e.g. --old-datadir=OLDDATADIR. Remove them, for simplicity; now: --old-datadir=DATADIR. Also update docs to do the same.
-
Alvaro Herrera authored
On immediate shutdown, or during a restart-after-crash sequence, postmaster used to send SIGQUIT (and then abandon ship if shutdown); but this is not a good strategy if backends don't die because of that signal. (This might happen, for example, if a backend gets tangled trying to malloc() due to gettext(), as in an example illustrated by MauMau.) This causes problems when later trying to restart the server, because some processes are still attached to the shared memory segment. Instead of just abandoning such backends to their fates, we now have postmaster hang around for a little while longer, send a SIGKILL after some reasonable waiting period, and then exit. This makes immediate shutdown more reliable. There is disagreement on whether it's best for postmaster to exit after sending SIGKILL, or to stick around until all children have reported death. If this controversy is resolved differently than what this patch implements, it's an easy change to make. Bug reported by MauMau in message 20DAEA8949EC4E2289C6E8E58560DEC0@maumau MauMau and Álvaro Herrera
-
Bruce Momjian authored
Change -u (user) option to -U, for consistency with other tools like pg_dump and psql. Also expand --user to --username, again for consistency. BACKWARD INCOMPATIBILITY
-
Robert Haas authored
This results in a slightly less specific error message when OVER is used in a context where we don't accept window functions, but per discussion, it's worth it to get the benefit of not needing to reserve this keyword any more. This same refactoring will also let us avoid reserving some other keywords that we expect to add in upcoming patches (specifically, IGNORE, RESPECT, and FILTER). Troels Nielsen, with minor changes by me
-
Robert Haas authored
In some cases, the use of these macros may be preferable to Assert() or AssertMacro(), since this way the caller can set the trap message. Andres Freund and Robert Haas
-
Heikki Linnakangas authored
On many platforms the OS will round the sleep time to millisecond resolution, but there is no reason for us to pre-emptively round the argument to pg_usleep. When the delay was measured in milliseconds and started from 1 ms, it sometimes took many attempts until the logic that increases the delay by multiplying with a random value between 1 and 2 actually managed to bump it from 1 ms to 2 ms. That lead to a sequence of 1 ms waits until the delay started to increase. This wasn't really a problem but it looked odd if you observed the waits. There is no measurable difference in performance, but it's more readable this way. Jeff Janes
-
- 27 Jun, 2013 3 commits
-
-
Alvaro Herrera authored
I added some more functionality to it in 0ac5ad51 but neglected to add it to the docs. Per Peter Eisentraut in message 1367112171.32604.4.camel@vanquo.pezone.net
-
Alvaro Herrera authored
I introduced these new fields in 0ac5ad51 but neglected to add them to the system catalogs section of the docs. Per Thom Brown in message CAA-aLv7UiO=Whiq3MVbsEqSyQRthuX8Tb_RLyBuQt0KQBp=6EQ@mail.gmail.com
-
Noah Misch authored
The MaxAllocSize guard is convenient for most callers, because it reduces the need for careful attention to overflow, data type selection, and the SET_VARSIZE() limit. A handful of callers are happy to navigate those hazards in exchange for the ability to allocate a larger chunk. Introduce MemoryContextAllocHuge() and repalloc_huge(). Use this in tuplesort.c and tuplestore.c, enabling internal sorts of up to INT_MAX tuples, a factor-of-48 increase. In particular, B-tree index builds can now benefit from much-larger maintenance_work_mem settings. Reviewed by Stephen Frost, Simon Riggs and Jeff Janes.
-