| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
temporary tables of other sessions; that is unsafe because of the way our
buffer management works. Per report from Stuart Bishop.
This is redundant with the bufmgr.c checks in HEAD, but not at all redundant
in the back branches.
|
|
|
|
| |
at the top of their sections.
|
|
|
|
|
|
|
|
|
|
| |
temp relations; this is no more expensive than before, now that we have
pg_class.relistemp. Insert tests into bufmgr.c to prevent attempting
to fetch pages from nonlocal temp relations. This provides a low-level
defense against bugs-of-omission allowing temp pages to be loaded into shared
buffers, as in the contrib/pgstattuple problem reported by Stuart Bishop.
While at it, tweak a bunch of places to use new relcache tests (instead of
expensive probes into pg_namespace) to detect local or nonlocal temp tables.
|
|
|
|
|
|
| |
Give an error message and exit instead, like we do elsewhere...
Per report from Wez Furlong and Robert Treat.
|
|
|
|
|
|
|
| |
relations (including a temp table's indexes and toast table/index), and
false for normal relations. For ease of checking, this commit just adds
the column and fills it correctly --- revising the relation access machinery
to use it will come separately.
|
|
|
|
|
|
|
|
|
|
|
| |
at the same instant as a new backend is spawned. Since CountActiveBackends()
doesn't hold ProcArrayLock, it needs to be prepared for the case that a
pointer at the end of the proc array is still NULL even though numProcs says
it should be valid, since it doesn't hold ProcArrayLock. Backpatch to 8.1.
8.0 and earlier had this right, but it was broken in the split of PGPROC and
sinval shared memory arrays.
Per report and proposal by Marko Kreen.
|
| |
|
|
|
|
|
|
| |
but not OpenSSL (or perhaps vice versa, if that's possible).
Andrew Chernow, with minor editorialization by me.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
(Not clear how useful these really are, but failing is no good...)
Per report from David Fetter and Robert Treat.
|
|
|
|
| |
further backpatch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TupleTableSlots. We have functions for retrieving a minimal tuple from a slot
after storing a regular tuple in it, or vice versa; but these were implemented
by converting the internal storage from one format to the other. The problem
with that is it invalidates any pass-by-reference Datums that were already
fetched from the slot, since they'll be pointing into the just-freed version
of the tuple. The known problem cases involve fetching both a whole-row
variable and a pass-by-reference value from a slot that is fed from a
tuplestore or tuplesort object. The added regression tests illustrate some
simple cases, but there may be other failure scenarios traceable to the same
bug. Note that the added tests probably only fail on unpatched code if it's
built with --enable-cassert; otherwise the bug leads to fetching from freed
memory, which will not have been overwritten without additional conditions.
Fix by allowing a slot to contain both formats simultaneously; which turns out
not to complicate the logic much at all, if anything it seems less contorted
than before.
Back-patch to 8.2, where minimal tuples were introduced.
|
| |
|
| |
|
|
|
|
| |
still more work to do.
|
| |
|
| |
|
|
|
|
|
|
|
| |
from patch author:
Add /contrib/citext as a case-insensitive, multibyte-capable
text data type (David Wheeler)
|
|
|
|
| |
suggested wording from Josh Berkus.
|
| |
|
|
|
|
| |
even when not active. Explain how to prevent that with an ENABLED() check.
|
|
|
|
| |
Andrew Gierth
|
|
|
|
|
|
|
|
|
|
| |
the system's getopt_long(). The previous coding was the result of a sloppy
discussion that failed to draw this distinction. The result was that PG
programs don't handle options as users of that platform expect. Per
gripe from Chuck McDevitt.
Although this is a pre-existing bug, I'm not backpatching since I think we
could do with a bit of beta testing before concluding this is really OK.
|
| |
|
|
|
|
| |
while converting to XML. Bernd Helmle
|
|
|
|
|
|
|
|
|
| |
mode while callers hold pointers to in-memory tuples. I reported this for
the case of nodeWindowAgg's primary scan tuple, but inspection of the code
shows that all of the calls in nodeWindowAgg and nodeCtescan are at risk.
For the moment, fix it with a rather brute-force approach of copying
whenever one of the at-risk callers requests a tuple. Later we might
think of some sort of reference-count approach to reduce tuple copying.
|
|
|
|
| |
Greg Stark, slightly modified by me.
|
|
|
|
|
|
|
| |
with EXPLAIN ANALYZE VERBOSE.
Greg Sabino Mullane, reformatted by myself. Backpatch to 8.1, where the
bug was introduced.
|
| |
|
| |
|
|
|
|
|
| |
Previously EXPLAIN VERBOSE had output an internal
representation of the
|
| |
|
|
|
|
|
| |
Increase the default value of default_statistics_target from 10 to 100
(Greg Sabino Mullane, Tom)
|
| |
|
|
|
|
|
|
|
| |
Support the IS0 8601 time interval syntax (Tom, Kevin
Grittner)
per Ron Mayer
|
|
|
|
|
|
|
| |
Made interval seconds rounding more consistent across output
formats (Ron Mayer)
Ron Mayer
|
| |
|
|
|
|
| |
suggestion from Ron Mayer
|
| |
|
|
|
|
|
|
| |
In the backend, I changed only a handful of exemplary or important-looking
instances to make use of the plural support; there is probably more work
there. For the rest of the source, this should cover all relevant cases.
|
|
|
|
| |
be changed after initdb.
|
|
|
|
| |
Per pgsql-hackers discussion of 2009-02-17.
|
|
|
|
|
|
|
|
| |
"physical tlist" optimization on the outer relation (ie, force a projection
step to occur in its scan). This avoids storing useless column values when
the outer relation's tuples are written to temporary batch files.
Modified version of a patch by Michael Henderson and Ramon Lawrence.
|
| |
|
|
|
|
| |
editorial improvements.
|
| |
|