• R/O
  • HTTP
  • SSH
  • HTTPS

syncrep: List of commits

PostgreSQL9.0用の同期レプリケーションパッチ


RSS
Rev. Time Author
8dd2ede 2011-05-07 05:01:50 Peter Eisentraut

Improve compiler string shown in version()

With some compilers such as Clang and ICC emulating GCC, using a
version string of the form "GCC $version" can be quite misleading.
Also, a great while ago, the version output from gcc --version started
including the string "gcc", so it is redundant to repeat that. In
order to support ancient GCC versions, we now prefix the result with
"GCC " only if the version output does not start with a letter.

d2088ae 2011-05-07 01:57:28 Tom Lane

Move RegisterPredicateLockingXid() call to a safer place.

The SSI patch inserted a call of RegisterPredicateLockingXid into
GetNewTransactionId, which was a bad idea on a couple of grounds. First,
it's not necessary to hold XidGenLock while manipulating that shared
memory, and doing so is bad because XidGenLock is a high-contention lock
that should be held for as short a time as possible. (Not to mention that
it adds an entirely unnecessary deadlock hazard, since we must take
SerializableXactHashLock as well.) Second, the specific place where it was
put was between extending CLOG and advancing nextXid, which could result in
unpleasant behavior in case of a failure there. Pull the call out to
AssignTransactionId, which is much safer and arguably better from a
modularity standpoint too.

There is more work to do to clean up the failure-before-advancing-nextXid
issue, but that is a separate change that will need to be back-patched.
So for the moment I just want to make GetNewTransactionId look the same as
it did in prior versions.

12b7164 2011-05-06 09:38:52 Tom Lane

Remove precedence labeling of keywords TRUE, FALSE, UNKNOWN, and ZONE.

These were labeled with precedences just to avoid attaching explicit
precedences to the productions in which they were the last terminal symbol.
Since a terminal symbol precedence marking can affect many other things
too, it seems like better practice to attach precedence labels to the
productions, and not mark the terminal symbols.

Ideally we'd also remove the precedence attached to NULL_P, but it turns
out that we are actually depending on that having a precedence higher than
POSTFIXOP, else we get a shift/reduce conflict for postfix operators in
b_expr. (Which more or less proves my point about these markings having a
high risk of unexpected consequences.) For the moment, move NULL_P into
the set of keywords grouped with IDENT, so that at least it will act
similarly to non-keywords; and document the interaction.

27525b1 2011-05-06 06:02:03 Magnus Hagander

Unbreak the regression tests from my previous commit

b24181b 2011-05-06 05:19:13 Peter Eisentraut

Improve pg_archivecleanup and pg_standby --help output

For consistency with other tools, put the options before further usage
information.

In pg_standby, remove the supposedly deprecated -l option from the
given example invocation.

d6d823c 2011-05-06 05:19:13 Peter Eisentraut

Improve formatting of pg_upgrade --help output

d76a149 2011-05-06 04:47:42 Magnus Hagander

Clarify error message when attempting to create index on foreign table

Instead of just saying "is not a table", specifically state that
indexes aren't supported on *foreign* tables.

fb3ad78 2011-05-06 01:49:23 Bruce Momjian

Improve style of generate_history.pl Perl script.

6713227 2011-05-05 04:02:34 Tom Lane

Include unary plus in the Operator Precedence table.

Per gripe from Grzegorz Szpetkowski.

Also, change the subsection heading from "Lexical Precedence" (which is
a contradiction in terms) to "Operator Precedence".

7f1f1bf 2011-05-05 03:02:02 Peter Eisentraut

Remove redundant port number check

pg_basebackup doesn't need to police the format of port numbers.
libpq already does that.

bff074b 2011-05-05 02:56:52 Peter Eisentraut

Message style cleanup

ce2fc20 2011-05-05 02:29:40 Peter Eisentraut

Fix alignment of --help output

Tabs replaced by spaces.

a3b681f 2011-05-05 02:24:07 Peter Eisentraut

Link some tables into the surrounding text by their id

04be7ac 2011-05-03 23:35:17 Alvaro Herrera

Update obsolete mention of Sequoia, now known as Tungsten

Per http://joomla.aws.continuent.com/community/lab-projects/sequoia

Greg Smith

5614857 2011-05-03 23:34:27 Alvaro Herrera

Improve description of read/write traffic scalability

Greg Smith, after a suggestion of James Bruce

155743a 2011-05-03 07:13:49 Alvaro Herrera

Add ID attribute to some sect2's missing it

David Fetter

dcc685d 2011-05-03 04:57:28 Tom Lane

Fix pull_up_sublinks' failure to handle nested pull-up opportunities.

After finding an EXISTS or ANY sub-select that can be converted to a
semi-join or anti-join, we should recurse into the body of the sub-select.
This allows cases such as EXISTS-within-EXISTS to be optimized properly.
The original coding would leave the lower sub-select as a SubLink, which
is no better and often worse than what we can do with a join. Per example
from Wayne Conrad.

Back-patch to 8.4. There is a related issue in older versions' handling
of pull_up_IN_clauses, but they're lame enough anyway about the whole area
that it seems not worth the extra work to try to fix.

65a7cd0 2011-05-03 04:56:43 Tom Lane

Fix pull_up_sublinks' failure to handle nested pull-up opportunities.

After finding an EXISTS or ANY sub-select that can be converted to a
semi-join or anti-join, we should recurse into the body of the sub-select.
This allows cases such as EXISTS-within-EXISTS to be optimized properly.
The original coding would leave the lower sub-select as a SubLink, which
is no better and often worse than what we can do with a join. Per example
from Wayne Conrad.

Back-patch to 8.4. There is a related issue in older versions' handling
of pull_up_IN_clauses, but they're lame enough anyway about the whole area
that it seems not worth the extra work to try to fix.

52897e5 2011-05-03 01:40:24 Alvaro Herrera

Update some ALTER USER cross-references to ALTER ROLE

Greg Smith

4b08bf8 2011-05-03 01:19:48 Peter Eisentraut

Small cleanup of spacing in verbatim DocBook elements

6755558 2011-05-03 01:08:08 Tom Lane

Improve aset.c's space management in contexts with small maxBlockSize.

The previous coding would allow requests up to half of maxBlockSize to be
treated as "chunks", but when that actually did happen, we'd waste nearly
half of the space in the malloc block containing the chunk, if no smaller
requests came along to fill it. Avoid this scenario by limiting the
maximum size of a chunk to 1/8th maxBlockSize, so that we can waste no more
than 1/8th of the allocated space. This will not change the behavior at
all for the default context size parameters (with large maxBlockSize),
but it will change the behavior when using ALLOCSET_SMALL_MAXSIZE.

In particular, there's no longer a need for spell.c to be overly concerned
about the request size parameters it uses, so remove a rather unhelpful
comment about that.

Merlin Moncure, per an idea of Tom Lane's

5c436a7 2011-05-02 07:05:08 Peter Eisentraut

Catch errors in for loop in makefile

Add "|| exit" so that the rule aborts when a command fails.

b106195 2011-05-02 07:05:08 Peter Eisentraut

Rewrite installation makefile rules without for loops

install-sh can install multiple files at once, so for loops are not
necessary. This was already changed for the rest of the code some
time ago, but pgxs.mk was apparently forgotten, and the obsolete
coding style has now been copied to the PLs as well.

This also fixes the problem that the for loops in question did not
catch errors.

e79518e 2011-05-02 07:03:38 Peter Eisentraut

Add missing gitignore file

c8c93c6 2011-05-02 07:03:38 Peter Eisentraut

Catch errors in for loop in makefile

Add "|| exit" so that the rule aborts when a command fails.

This is the minimal backpatch version. The fix in head is more
elaborate.

fb69fd1 2011-05-02 06:57:40 Tom Lane

Make CLUSTER lock the old table's toast table before copying data.

We must lock out autovacuuming of the old toast table before computing the
OldestXmin horizon we will use. Otherwise, autovacuum could start on the
toast table later, compute a later OldestXmin horizon, and remove as DEAD
toast tuples that we still need (because we think their parent tuples are
only RECENTLY_DEAD). Per further thought about bug #5998.

83b7584 2011-05-02 06:57:33 Tom Lane

Make CLUSTER lock the old table's toast table before copying data.

We must lock out autovacuuming of the old toast table before computing the
OldestXmin horizon we will use. Otherwise, autovacuum could start on the
toast table later, compute a later OldestXmin horizon, and remove as DEAD
toast tuples that we still need (because we think their parent tuples are
only RECENTLY_DEAD). Per further thought about bug #5998.

5a71b64 2011-04-30 11:20:43 Bruce Momjian

Lowercase status labels in pg_stat_replication view.

007a6e5 2011-04-30 05:29:51 Tom Lane

Remove special case for xmin == xmax in HeapTupleSatisfiesVacuum().

VACUUM was willing to remove a committed-dead tuple immediately if it was
deleted by the same transaction that inserted it. The idea is that such a
tuple could never have been visible to any other transaction, so we don't
need to keep it around to satisfy MVCC snapshots. However, there was
already an exception for tuples that are part of an update chain, and this
exception created a problem: we might remove TOAST tuples (which are never
part of an update chain) while their parent tuple stayed around (if it was
part of an update chain). This didn't pose a problem for most things,
since the parent tuple is indeed dead: no snapshot will ever consider it
visible. But MVCC-safe CLUSTER had a problem, since it will try to copy
RECENTLY_DEAD tuples to the new table. It then has to copy their TOAST
data too, and would fail if VACUUM had already removed the toast tuples.

Easiest fix is to get rid of the special case for xmin == xmax. This may
delay reclaiming dead space for a little bit in some cases, but it's by far
the most reliable way to fix the issue.

Per bug #5998 from Mark Reid. Back-patch to 8.3, which is the oldest
version with MVCC-safe CLUSTER.

44e4bbf 2011-04-30 05:29:42 Tom Lane

Remove special case for xmin == xmax in HeapTupleSatisfiesVacuum().

VACUUM was willing to remove a committed-dead tuple immediately if it was
deleted by the same transaction that inserted it. The idea is that such a
tuple could never have been visible to any other transaction, so we don't
need to keep it around to satisfy MVCC snapshots. However, there was
already an exception for tuples that are part of an update chain, and this
exception created a problem: we might remove TOAST tuples (which are never
part of an update chain) while their parent tuple stayed around (if it was
part of an update chain). This didn't pose a problem for most things,
since the parent tuple is indeed dead: no snapshot will ever consider it
visible. But MVCC-safe CLUSTER had a problem, since it will try to copy
RECENTLY_DEAD tuples to the new table. It then has to copy their TOAST
data too, and would fail if VACUUM had already removed the toast tuples.

Easiest fix is to get rid of the special case for xmin == xmax. This may
delay reclaiming dead space for a little bit in some cases, but it's by far
the most reliable way to fix the issue.

Per bug #5998 from Mark Reid. Back-patch to 8.3, which is the oldest
version with MVCC-safe CLUSTER.

Show on old repository browser