| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
| |
the AMI_OVERRIDE flag. The fact that TransactionLogFetch treats
BootstrapTransactionId as always committed is sufficient to make
bootstrap work, and getting rid of extra tests in heavily used code
paths seems like a win. The files produced by initdb are demonstrably
the same after this change.
|
| |
|
| |
|
| |
|
|
|
|
| |
deleted tuples. Of course it is only to be used for disaster recovery.
|
|
|
|
|
|
|
|
|
|
|
| |
file now identifies group members by usesysid not name; this avoids
needing to depend on SearchSysCache which we can't use during startup.
(The old representation was entirely broken anyway, since we did not
regenerate the file following RENAME USER.) It's only a 95% solution
because if the group membership list is big enough to be toasted out
of line, we cannot read it during startup. I think this will do for
the moment, until we have time to implement the planned pg_role
replacement for pg_group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in GetNewTransactionId(). Since the limit value has to be computed
before we run any real transactions, this requires adding code to database
startup to scan pg_database and determine the oldest datfrozenxid.
This can conveniently be combined with the first stage of an attack on
the problem that the 'flat file' copies of pg_shadow and pg_group are
not properly updated during WAL recovery. The code I've added to
startup resides in a new file src/backend/utils/init/flatfiles.c, and
it is responsible for rewriting the flat files as well as initializing
the XID wraparound limit value. This will eventually allow us to get
rid of GetRawDatabaseInfo too, but we'll need an initdb so we can add
a trigger to pg_database.
|
|
|
|
|
| |
CHECKPOINT and some other commands in the context of a standalone
backend. Allow a standalone backend to do its own checkpoints.
|
|
|
|
|
| |
into the sub-SELECT targetlist when it appears in the context
INSERT INTO foo SELECT $1 ... Per report from Abhijit Menon-Sen.
|
| |
|
|
|
|
| |
Manfred Koizar
|
| |
|
|
|
|
| |
non-HAVE_SIGPROCMASK cases in pqinitmask().
|
|
|
|
| |
non-HAVE_SIGPROCMASK cases in pqinitmask().
|
| |
|
|
|
|
| |
Backpatch to 8.0.X.
|
|
|
|
| |
DEBUG.
|
|
|
|
|
|
| |
DEBUG.
Fix a few places where DEBUG1 crept in that should have been DEBUG2.
|
|
|
|
|
| |
works (and max_stack_depth is not set too high for the platform).
Inspired by trouble report from Brian Betts.
|
|
|
|
|
| |
as valid input (it was previously treated as 0). This input was deprecated
in 8.0 (and a warning was emitted). Regression tests updated.
|
|
|
|
| |
Per gripes from Mike Mascari and Bernd Heller.
|
|
|
|
|
|
| |
that return tuples (such as EXPLAIN). Per gripe from Michael Fuhr.
Side effect: fix an old bug that unintentionally disabled backward scans
for all SPI-created cursors.
|
| |
|
|
|
|
| |
Yutaka <tanida@sra.co.jp>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
column with a default expression. In that situation, we need to rewrite
the heap relation. To evaluate the new default expression, we use
ExecEvalExpr(); however, this can allocate memory in the current memory
context, and ATRewriteTable() does not switch out of the active portal's
heap memory context. The end result is a rather large memory leak (on
the order of gigabytes for a reasonably sized table).
This patch changes ATRewriteTable() to switch to the per-tuple memory
context before beginning the per-tuple loop. It also removes an explicit
heap_freetuple() in the loop, since that is no longer needed.
In an unrelated change, I noticed the code was scanning through the
attributes of the new tuple descriptor for each tuple of the old table.
I changed this to use precomputation, which should slightly speed up
the loop.
Thanks to steve@deefs.net for reporting the leak.
|
| |
|
|
|
|
|
|
|
| |
there are corner cases involving dropping toasted columns in which the
previous coding would fail, too: the new version of the table might not
have any TOAST table, but we'd still propagate possibly-wide values of
dropped columns forward.
|
|
|
|
| |
now depends on.
|
|
|
|
|
| |
ReleaseAndReadBuffer during GIST index searches. We already did this
in btree and rtree, might as well do it here too.
|
|
|
|
| |
from LockRelease() and LockReleaseAll() into it. From Heikki Linnakangas.
|
|
|
|
|
| |
database: aggregates should be dumped in the same pass as operators,
not in the same pass as functions.
|
|
|
|
|
| |
This refactoring does not change any algorithms or data structures, just
remove visibility of the ARC datastructures from other source files.
|
|
|
|
| |
two arguments. Per suggestions from A. Ogawa.
|
|
|
|
|
|
|
|
| |
form of CASE (eg, CASE 0 WHEN 1 THEN ...) can be constant-folded as it
was in 7.4. Also, avoid constant-folding result expressions that are
certainly unreachable --- the former coding was a bit cavalier about this
and could generate unexpected results for all-constant CASE expressions.
Add regression test cases. Per report from Vlad Marchenko.
|
|
|
|
| |
* Update inet/cidr data types with newest Bind patches
|
| |
|
|
|
|
|
|
|
|
| |
tests. Contributed by Koju Iijima, review from Neil Conway, Gavin Sherry
and Tom Lane.
Also, fix error in description of WITH CHECK OPTION clause in the CREATE
VIEW reference page: it should be "CASCADED", not "CASCADE".
|
|
|
|
| |
command counter more than necessary. Per report from Michael Fuhr.
|
|
|
|
|
|
|
| |
estimate to less than the number of values estimated for any one grouping
Var, as suggested by Manfred. This is intuitively right, and what's
more it puts the plan choices in the subselect regression test back the
way they were before ...
|
|
|
|
|
|
| |
initially NULL. For 8.0 we changed the main executor to have this
behavior in an UPDATE of an array column, but plpgsql's equivalent case
was overlooked. Per report from Sven Willenberger.
|
|
|
|
|
| |
fix bug with inconsistent selection of default mask length for
"class D" addresses. Per report from Steve Atkins.
|
|
|
|
|
|
|
|
|
| |
clamp the estimated number of groups to table row count over 10, instead
of table row count; this reflects a heuristic that people probably won't
group over a near-unique set of columns, and the knowledge that we don't
currently have any way to estimate the correlation of the columns better
than guessing. This change creates a trivial plan change in one of the
regression tests.
|
|
|
|
|
|
| |
look at the actual aggregate transition datatypes and the actual overhead
needed by nodeAgg.c, instead of using pessimistic round numbers.
Per a discussion with Michael Tiemann.
|
|
|
|
| |
defining List.
|
|
|
|
|
| |
Solaris and should be a little faster anyway, since in most scenarios
all but perhaps the last path component will already exist.
|
|
|
|
| |
functions of the aggregate, at both aggregate creation and execution times.
|
|
|
|
|
|
| |
utils/cache/lsyscache.c where it can be used by other things. Also
cleans up both get_usesysid() and get_grosysid() a bit. From Stephen
Frost.
|
|
|
|
|
| |
Relation. Patch from Alvaro Herrera, minor editorializing by
Neil Conway.
|
|
|
|
|
| |
does not match what the query expected. From Brendan Jurd, minor
editorializing by Neil Conway.
|
|
|
|
|
|
|
|
| |
command. This is useful because we can allow truncation of tables
referenced by foreign keys, so long as the referencing table is
truncated in the same command.
Alvaro Herrera
|