]> granicus.if.org Git - postgresql/log
postgresql
13 years agoSSI has a race condition, where the order of commit sequence numbers of
Heikki Linnakangas [Thu, 7 Jul 2011 19:35:09 +0000 (22:35 +0300)]
SSI has a race condition, where the order of commit sequence numbers of
transactions might not match the order the work done in those transactions
become visible to others. The logic in SSI, however, assumed that it does.
Fix that by having two sequence numbers for each serializable transaction,
one taken before a transaction becomes visible to others, and one after it.
This is easier than trying to make the the transition totally atomic, which
would require holding ProcArrayLock and SerializableXactHashLock at the same
time. By using prepareSeqNo instead of commitSeqNo in a few places where
commit sequence numbers are compared, we can make those comparisons err on
the safe side when we don't know for sure which committed first.

Per analysis by Kevin Grittner and Dan Ports, but this approach to fix it
is different from the original patch.

13 years agoFix use of unportable %m format
Peter Eisentraut [Thu, 7 Jul 2011 18:21:57 +0000 (21:21 +0300)]
Fix use of unportable %m format

13 years agoReclassify replication-related GUC variables as "master" and "standby".
Tom Lane [Thu, 7 Jul 2011 19:10:32 +0000 (15:10 -0400)]
Reclassify replication-related GUC variables as "master" and "standby".

Per discussion, this structure seems more understandable than what was
there before.  Make config.sgml and postgresql.conf.sample agree.

In passing do a bit of editorial work on the variable descriptions.

13 years agoAdjust OLDSERXID_MAX_PAGE based on BLCKSZ.
Robert Haas [Thu, 7 Jul 2011 19:05:21 +0000 (15:05 -0400)]
Adjust OLDSERXID_MAX_PAGE based on BLCKSZ.

The value when BLCKSZ = 8192 is unchanged, but with larger-than-normal
block sizes we might need to crank things back a bit, as we'll have
more entries per page than normal in that case.

Kevin Grittner

13 years agoFinish disabling reduced-lock-levels-for-DDL feature.
Tom Lane [Thu, 7 Jul 2011 17:14:46 +0000 (13:14 -0400)]
Finish disabling reduced-lock-levels-for-DDL feature.

Previous patch only covered the ALTER TABLE changes, not changes in other
commands; and it neglected to revert the documentation changes.

13 years agoFix a bug with SSI and prepared transactions:
Heikki Linnakangas [Thu, 7 Jul 2011 15:04:37 +0000 (18:04 +0300)]
Fix a bug with SSI and prepared transactions:

If there's a dangerous structure T0 ---> T1 ---> T2, and T2 commits first,
we need to abort something. If T2 commits before both conflicts appear,
then it should be caught by OnConflict_CheckForSerializationFailure. If
both conflicts appear before T2 commits, it should be caught by
PreCommit_CheckForSerializationFailure. But that is actually run when
T2 *prepares*. Fix that in OnConflict_CheckForSerializationFailure, by
treating a prepared T2 as if it committed already.

This is mostly a problem for prepared transactions, which are in prepared
state for some time, but also for regular transactions because they also go
through the prepared state in the SSI code for a short moment when they're
committed.

Kevin Grittner and Dan Ports

13 years agoFix comments over eagerly c&p'd.
Andrew Dunstan [Thu, 7 Jul 2011 07:53:49 +0000 (03:53 -0400)]
Fix comments over eagerly c&p'd.

13 years agoReimplement pgbison and pgflex as perl scripts instead of bat files.
Andrew Dunstan [Wed, 6 Jul 2011 22:45:29 +0000 (18:45 -0400)]
Reimplement pgbison and pgflex as perl scripts instead of bat files.

In the process, remove almost all knowledge of individual .y and .l files,
and instead get invocation settings from the relevant make files.
The exception is plpgsql's gram.y, which has a target with a different
name. It is hoped that this will make the scripts more future-proof,
so that they won't require adjustment every time we add a new .l or .y
file.

The logic is also notably less tortured than that forced on us
by the idiosyncrasies of the Windows command processor.

The .bat files are kept as thin wrappers for the perl scripts.

13 years agoRemove assumptions that not-equals operators cannot be in any opclass.
Tom Lane [Wed, 6 Jul 2011 18:53:16 +0000 (14:53 -0400)]
Remove assumptions that not-equals operators cannot be in any opclass.

get_op_btree_interpretation assumed this in order to save some duplication
of code, but it's not true in general anymore because we added <> support
to btree_gist.  (We still assume it for btree opclasses, though.)

Also, essentially the same logic was baked into predtest.c.  Get rid of
that duplication by generalizing get_op_btree_interpretation so that it
can be used by predtest.c.

Per bug report from Denis de Bernardy and investigation by Jeff Davis,
though I didn't use Jeff's patch exactly as-is.

Back-patch to 9.1; we do not support this usage before that.

13 years agoAdd \ir command to psql.
Robert Haas [Wed, 6 Jul 2011 15:45:13 +0000 (11:45 -0400)]
Add \ir command to psql.

\ir is short for "include relative"; when used from a script, the
supplied pathname will be interpreted relative to the input file,
rather than to the current working directory.

Gurjeet Singh, reviewed by Josh Kupershmidt, with substantial further
cleanup by me.

13 years agoAttempt to standardize formatting of psql queries.
Robert Haas [Wed, 6 Jul 2011 14:11:20 +0000 (10:11 -0400)]
Attempt to standardize formatting of psql queries.

Most queries end with a backslash, but not a newline, so try to
standardize on that, for the convenience of people using psql -E to
extract queries.

Josh Kupershmidt, reviewed by Merlin Moncure.

13 years agoMake the file_fdw validator check that a filename option has been provided.
Tom Lane [Tue, 5 Jul 2011 22:46:03 +0000 (18:46 -0400)]
Make the file_fdw validator check that a filename option has been provided.

This was already a runtime failure condition, but it's better to check
at validation time if possible.  Lightly modified version of a patch
by Shigeru Hanada.

13 years agoCall FDW validator functions even when the options list is empty.
Tom Lane [Tue, 5 Jul 2011 22:21:12 +0000 (18:21 -0400)]
Call FDW validator functions even when the options list is empty.

This is useful since a validator might want to require certain options
to be provided.  The passed array is an empty text array in this case.

Per suggestion by Laurenz Albe, though this is not quite his patch.

13 years agoMessage style improvements of errmsg_internal() calls
Peter Eisentraut [Tue, 5 Jul 2011 19:56:55 +0000 (22:56 +0300)]
Message style improvements of errmsg_internal() calls

13 years agoRestructure foreign data wrapper chapter so it has more than one section.
Tom Lane [Tue, 5 Jul 2011 19:54:00 +0000 (15:54 -0400)]
Restructure foreign data wrapper chapter so it has more than one section.

As noted by Laurenz Albe, our SGML tools deal rather oddly with chapters
having just one <sect1>.  Perhaps the tooling could be fixed, but really
the design of this chapter's introduction is pretty bogus anyhow.  Split
it into a true introduction and a <sect1> about the FDW functions, so
that it reads better and dodges the lack-of-a-chapter-TOC problem.

13 years agoPostgres -> PostgreSQL in error message
Peter Eisentraut [Tue, 5 Jul 2011 19:32:12 +0000 (22:32 +0300)]
Postgres -> PostgreSQL in error message

13 years agoImprove documentation about foreign data wrapper validator functions.
Tom Lane [Tue, 5 Jul 2011 19:38:18 +0000 (15:38 -0400)]
Improve documentation about foreign data wrapper validator functions.

Modified version of a patch by Shigeru Hanada.

13 years agoFix psql's counting of script file line numbers during COPY.
Tom Lane [Tue, 5 Jul 2011 16:04:40 +0000 (12:04 -0400)]
Fix psql's counting of script file line numbers during COPY.

handleCopyIn incremented pset.lineno for each line of COPY data read from
a file.  This is correct when reading from the current script file (i.e.,
we are doing COPY FROM STDIN followed by in-line data), but it's wrong if
the data is coming from some other file.  Per bug #6083 from Steve Haslam.
Back-patch to all supported versions.

13 years agoFix typo in sslmode documentation
Magnus Hagander [Tue, 5 Jul 2011 07:45:19 +0000 (09:45 +0200)]
Fix typo in sslmode documentation

Per bug #6089, noted by Sidney Cadot

13 years agoMessage style tweaks
Peter Eisentraut [Mon, 4 Jul 2011 21:01:35 +0000 (00:01 +0300)]
Message style tweaks

13 years agoSmall documentation tweaks
Peter Eisentraut [Mon, 4 Jul 2011 21:00:14 +0000 (00:00 +0300)]
Small documentation tweaks

13 years agoSet user_defined_types.data_type to null
Peter Eisentraut [Mon, 4 Jul 2011 20:09:42 +0000 (23:09 +0300)]
Set user_defined_types.data_type to null

On re-reading the standard, this field is only used for distinct or
reference types.

13 years agoClarify that you need ActiveState perl 5.8 *or later* to build on Windows.
Heikki Linnakangas [Mon, 4 Jul 2011 19:30:27 +0000 (22:30 +0300)]
Clarify that you need ActiveState perl 5.8 *or later* to build on Windows.

13 years agoMove Trigger and TriggerDesc structs out of rel.h into a new reltrigger.h
Alvaro Herrera [Wed, 23 Feb 2011 17:18:09 +0000 (14:18 -0300)]
Move Trigger and TriggerDesc structs out of rel.h into a new reltrigger.h

This lets us stop including rel.h into execnodes.h, which is a widely
used header.

13 years agoDon't try to use a constraint name as domain name
Alvaro Herrera [Mon, 4 Jul 2011 18:28:05 +0000 (14:28 -0400)]
Don't try to use a constraint name as domain name

The bug that caused this to be discovered is that the code was trying to
dereference a NULL or ill-defined pointer, as reported by Michael Mueller;
but what it was doing was wrong anyway, per Heikki.

This patch is Heikki's suggested fix.

13 years agoRemove unused variable to silence compiler warning
Peter Eisentraut [Mon, 4 Jul 2011 15:03:17 +0000 (18:03 +0300)]
Remove unused variable to silence compiler warning

13 years agoRemove missed reference to SilentMode.
Tom Lane [Mon, 4 Jul 2011 14:35:52 +0000 (10:35 -0400)]
Remove missed reference to SilentMode.

13 years agoRemove silent_mode. You get the same functionality with "pg_ctl -l
Heikki Linnakangas [Mon, 4 Jul 2011 11:35:44 +0000 (14:35 +0300)]
Remove silent_mode. You get the same functionality with "pg_ctl -l
postmaster.log", or nohup.

There was a small issue with LINUX_OOM_ADJ and silent_mode, namely that with
silent_mode the postmaster process incorrectly used the OOM settings meant
for backend processes. We certainly could've fixed that directly, but since
silent_mode was redundant anyway, we might as well just remove it.

13 years agoAlter test results to comply with new ALTER TABLE behaviour.
Simon Riggs [Mon, 4 Jul 2011 10:09:51 +0000 (11:09 +0100)]
Alter test results to comply with new ALTER TABLE behaviour.

13 years agoReset ALTER TABLE lock levels to AccessExclusiveLock in all cases.
Simon Riggs [Mon, 4 Jul 2011 08:31:40 +0000 (09:31 +0100)]
Reset ALTER TABLE lock levels to AccessExclusiveLock in all cases.
Locks on inheritance parent remain at lower level, as they were before.
Remove entry from 9.1 release notes.

13 years agoFix omissions in documentation of the pg_roles view.
Tom Lane [Mon, 4 Jul 2011 02:12:14 +0000 (22:12 -0400)]
Fix omissions in documentation of the pg_roles view.

Somehow, column rolconfig got removed from the documentation of the
pg_roles view in the 9.0 cycle, although the column is actually still
there.  In 9.1, we'd also forgotten to document the rolreplication column.
Spotted by Sakamoto Masahiko.

13 years agoPut comments on the installable procedural languages.
Tom Lane [Sun, 3 Jul 2011 23:03:51 +0000 (19:03 -0400)]
Put comments on the installable procedural languages.

Per suggestion from Josh Kupershmidt.

13 years agoFix bugs in relpersistence handling during table creation.
Robert Haas [Sun, 3 Jul 2011 21:34:47 +0000 (17:34 -0400)]
Fix bugs in relpersistence handling during table creation.

Unlike the relistemp field which it replaced, relpersistence must be
set correctly quite early during the table creation process, as we
rely on it quite early on for a number of purposes, including security
checks.  Normally, this is set based on whether the user enters CREATE
TABLE, CREATE UNLOGGED TABLE, or CREATE TEMPORARY TABLE, but a
relation may also be made implicitly temporary by creating it in
pg_temp.  This patch fixes the handling of that case, and also
disables creation of unlogged tables in temporary tablespace (such
table indeed skip WAL-logging, but we reject an explicit
specification) and creation of relations in the temporary schemas of
other sessions (which is not very sensible, and didn't work right
anyway).

Report by Amit Khandekar.

13 years agoMake distprep and *clean build targets recurse into all subdirectories.
Tom Lane [Sun, 3 Jul 2011 17:55:02 +0000 (13:55 -0400)]
Make distprep and *clean build targets recurse into all subdirectories.

Certain subdirectories do not get built if corresponding options are not
selected at configure time.  However, "make distprep" should visit such
directories anyway, so that constructing derived files to be included in
the tarball happens without requiring all configure options to be given
in the tarball build script.  Likewise, it's better if cleanup actions
unconditionally visit all directories (for example, this ensures proper
cleanup if someone has done a manual make in such a subdirectory).

To handle this, set up a convention that subdirectories that are
conditionally included in SUBDIRS should be added to ALWAYS_SUBDIRS
instead when they are excluded.

Back-patch to 9.1, so that plpython's spiexceptions.h will get provided
in 9.1 tarballs.  There don't appear to be any instances where distprep
actions got missed in previous releases, and anyway this fix requires
gmake 3.80 so we don't want to apply it before 9.1.

13 years agoFix bat file quoting of %ENV.
Andrew Dunstan [Sun, 3 Jul 2011 14:36:56 +0000 (10:36 -0400)]
Fix bat file quoting of %ENV.

13 years agoMark pg_stat_reset_shared as strict
Magnus Hagander [Sun, 3 Jul 2011 11:15:58 +0000 (13:15 +0200)]
Mark pg_stat_reset_shared as strict

This is the proper fix for bug #6082 about
pg_stat_reset_shared(NULL) causing a crash, and it reverts
commit 79aa44536f3980d324f486504cde643ce23bf5c6 on head.

The workaround of throwing an error from inside the function is
left on backbranches (including 9.1) since this change requires
a new initdb.

13 years agoSuppress compiler warning about potentially uninitialized variable.
Tom Lane [Sat, 2 Jul 2011 00:57:34 +0000 (20:57 -0400)]
Suppress compiler warning about potentially uninitialized variable.

Maybe some compilers are smart enough to not complain about the previous
coding ... but mine isn't.

13 years agoIn the pg_upgrade docs, move 50432 port mention to the place where we
Bruce Momjian [Fri, 1 Jul 2011 22:36:00 +0000 (18:36 -0400)]
In the pg_upgrade docs, move 50432 port mention to the place where we
talk about client access.

13 years agoChange pg_upgrade to use port 50432 by default to avoid unintended
Bruce Momjian [Fri, 1 Jul 2011 22:17:12 +0000 (18:17 -0400)]
Change pg_upgrade to use port 50432 by default to avoid unintended
client connections during the upgrade.  Also rename data/bin/port
environment variables to being with 'PG'.  Also no longer honor PGPORT.

13 years agoEnable CHECK constraints to be declared NOT VALID
Alvaro Herrera [Wed, 1 Jun 2011 22:43:50 +0000 (18:43 -0400)]
Enable CHECK constraints to be declared NOT VALID

This means that they can initially be added to a large existing table
without checking its initial contents, but new tuples must comply to
them; a separate pass invoked by ALTER TABLE / VALIDATE can verify
existing data and ensure it complies with the constraint, at which point
it is marked validated and becomes a normal part of the table ecosystem.

An non-validated CHECK constraint is ignored in the planner for
constraint_exclusion purposes; when validated, cached plans are
recomputed so that partitioning starts working right away.

This patch also enables domains to have unvalidated CHECK constraints
attached to them as well by way of ALTER DOMAIN / ADD CONSTRAINT / NOT
VALID, which can later be validated with ALTER DOMAIN / VALIDATE
CONSTRAINT.

Thanks to Thom Brown, Dean Rasheed and Jaime Casanova for the various
reviews, and Robert Hass for documentation wording improvement
suggestions.

This patch was sponsored by Enova Financial.

13 years agoFix outdated comment
Alvaro Herrera [Wed, 29 Jun 2011 23:39:33 +0000 (19:39 -0400)]
Fix outdated comment

Extracted from a patch by Bernd Helmle

13 years agoRestore correct btree preprocessing of "indexedcol IS NULL" conditions.
Tom Lane [Wed, 29 Jun 2011 23:46:47 +0000 (19:46 -0400)]
Restore correct btree preprocessing of "indexedcol IS NULL" conditions.

Such a condition is unsatisfiable in combination with any other type of
btree-indexable condition (since we assume btree operators are always
strict).  8.3 and 8.4 had an explicit test for this, which I removed in
commit 29c4ad98293e3c5cb3fcdd413a3f4904efff8762, mistakenly thinking that
the case would be subsumed by the more general handling of IS (NOT) NULL
added in that patch.  Put it back, and improve the comments about it, and
add a regression test case.

Per bug #6079 from Renat Nasyrov, and analysis by Dean Rasheed.

13 years agoMove the PredicateLockRelation() call from nodeSeqscan.c to heapam.c. It's
Heikki Linnakangas [Wed, 29 Jun 2011 18:43:53 +0000 (21:43 +0300)]
Move the PredicateLockRelation() call from nodeSeqscan.c to heapam.c. It's
more consistent that way, since all the other PredicateLock* calls are
made in various heapam.c and index AM functions. The call in nodeSeqscan.c
was unnecessarily aggressive anyway, there's no need to try to lock the
relation every time a tuple is fetched, it's enough to do it once.

This has the user-visible effect that if a seq scan is initialized in the
executor, but never executed, we now acquire the predicate lock on the heap
relation anyway. We could avoid that by taking the lock on the first
heap_getnext() call instead, but it doesn't seem worth the trouble given
that it feels more natural to do it in heap_beginscan().

Also, remove the retail PredicateLockTuple() calls from heap_getnext(). In
a seqscan, started with heap_begin(), we're holding a whole-relation
predicate lock on the heap so there's no need to lock the tuples
individually.

Kevin Grittner and me

13 years agoGrab predicate locks on matching tuples in a lossy bitmap heap scan.
Heikki Linnakangas [Wed, 29 Jun 2011 18:40:27 +0000 (21:40 +0300)]
Grab predicate locks on matching tuples in a lossy bitmap heap scan.
Non-lossy case was already handled correctly.

Kevin Grittner

13 years agoProtect pg_stat_reset_shared() against NULL input
Magnus Hagander [Wed, 29 Jun 2011 17:35:11 +0000 (19:35 +0200)]
Protect pg_stat_reset_shared() against NULL input

Per bug #6082, reported by Steve Haslam

13 years agoUnify spelling of "canceled", "canceling", "cancellation"
Peter Eisentraut [Wed, 29 Jun 2011 06:26:14 +0000 (09:26 +0300)]
Unify spelling of "canceled", "canceling", "cancellation"

We had previously (af26857a2775e7ceb0916155e931008c2116632f)
established the U.S. spellings as standard.

13 years agoIntroduce compact WAL record for the common case of commit (non-DDL).
Simon Riggs [Tue, 28 Jun 2011 21:58:17 +0000 (22:58 +0100)]
Introduce compact WAL record for the common case of commit (non-DDL).
XLOG_XACT_COMMIT_COMPACT leaves out invalidation messages and relfilenodes,
saving considerable space for the vast majority of transaction commits.
XLOG_XACT_COMMIT keeps same definition as XLOG_PAGE_MAGIC 0xD067 and earlier.

Leonardo Francalanci and Simon Riggs

13 years agoRemove rel.h from objectaddress.h; only relcache.h is necessary.
Alvaro Herrera [Sat, 26 Mar 2011 03:10:07 +0000 (00:10 -0300)]
Remove rel.h from objectaddress.h; only relcache.h is necessary.

Add rel.h to some files that now need it.

13 years agoModernise pg_hba.conf token processing
Alvaro Herrera [Mon, 20 Jun 2011 21:20:14 +0000 (17:20 -0400)]
Modernise pg_hba.conf token processing

The previous coding was ugly, as it marked special tokens as such in the
wrong stage, relying on workarounds to figure out if they had been
quoted in the original or not.  This made it impossible to have specific
keywords be recognized as such only in certain positions in HBA lines,
for example.  Fix by restructuring the parser code so that it remembers
whether tokens were quoted or not.  This eliminates widespread knowledge
of possible known keywords for all fields.

Also improve memory management in this area, to use memory contexts that
are reset as a whole instead of using retail pfrees; this removes a
whole lotta crufty (and probably slow) code.

Instead of calling strlen() three times in next_field_expand on the
returned token to find out whether there was a comma (and strip it),
pass back the info directly from the callee, which is simpler.

In passing, update historical artifacts in hba.c API.

Authors: Brendan Jurd, Alvaro Herrera
Reviewed by Pavel Stehule

13 years agoImplement the collation columns of various information schema views
Peter Eisentraut [Tue, 28 Jun 2011 14:49:28 +0000 (17:49 +0300)]
Implement the collation columns of various information schema views

Fill in the collation columns of the views attributes, columns,
domains, and element_types.  Also update collation information in
sql_implementation_info.

13 years agoAdd composite-type attributes to information_schema.element_types view
Peter Eisentraut [Tue, 28 Jun 2011 13:07:23 +0000 (16:07 +0300)]
Add composite-type attributes to information_schema.element_types view

13 years agoAdd a missing_ok argument to get_object_address().
Robert Haas [Tue, 28 Jun 2011 01:17:25 +0000 (21:17 -0400)]
Add a missing_ok argument to get_object_address().

This lays the groundwork for an upcoming patch to streamline the
handling of DROP commands.

KaiGai Kohei

13 years agoReduce impact of btree page reuse on Hot Standby by fixing off-by-1 error.
Simon Riggs [Mon, 27 Jun 2011 21:12:09 +0000 (22:12 +0100)]
Reduce impact of btree page reuse on Hot Standby by fixing off-by-1 error.
WAL records of type XLOG_BTREE_REUSE_PAGE were generated using a
latestRemovedXid one higher than actually needed because xid used was
page opaque->btpo.xact rather than an actually removed xid.
Noticed on an otherwise quiet system by Noah Misch.

Noah Misch and Simon Riggs

13 years agoAllow callers to pass a missing_ok flag when opening a relation.
Robert Haas [Mon, 27 Jun 2011 19:06:32 +0000 (15:06 -0400)]
Allow callers to pass a missing_ok flag when opening a relation.

Since the names try_relation_openrv() and try_heap_openrv() don't seem
quite appropriate, rename the functions to relation_openrv_extended()
and heap_openrv_extended().  This is also more general, if we have a
future need for additional parameters that are of interest to only a
few callers.

This is infrastructure for a forthcoming patch to allow
get_object_address() to take a missing_ok argument as well.

Patch by me, review by Noah Misch.

13 years agoTry again to make the visibility map crash safe.
Robert Haas [Mon, 27 Jun 2011 17:55:55 +0000 (13:55 -0400)]
Try again to make the visibility map crash safe.

My previous attempt was quite a bit less than half-baked with respect to
heap_update().

13 years agoMention that SSPI authentication can use GSSAPI on non-Windows systems.
Robert Haas [Mon, 27 Jun 2011 14:38:45 +0000 (10:38 -0400)]
Mention that SSPI authentication can use GSSAPI on non-Windows systems.

As noted by Christian Ullrich.

13 years agoAvoid having two copies of the HOT-chain search logic.
Robert Haas [Mon, 27 Jun 2011 14:27:17 +0000 (10:27 -0400)]
Avoid having two copies of the HOT-chain search logic.

It's been like this since HOT was originally introduced, but the logic
is complex enough that this is a recipe for bugs, as we've already
found out with SSI.  So refactor heap_hot_search_buffer() so that it
can satisfy the needs of index_getnext(), and make index_getnext() use
that rather than duplicating the logic.

This change was originally proposed by Heikki Linnakangas as part of a
larger refactoring oriented towards allowing index-only scans.  I
extracted and adjusted this part, since it seems to have independent
merit.  Review by Jeff Davis.

13 years agoAdd some strings that were not marked for translation
Peter Eisentraut [Mon, 27 Jun 2011 12:46:21 +0000 (15:46 +0300)]
Add some strings that were not marked for translation

13 years agoRemove redundant DEF_PGPORT handling
Peter Eisentraut [Mon, 27 Jun 2011 12:40:55 +0000 (15:40 +0300)]
Remove redundant DEF_PGPORT handling

DEF_PGPORT already comes in from pg_config.h, so we don't need to pass
it in again with a -D option.  Apparently a leftover from the shell
script conversion.

13 years agoAdd missing file to GETTEXT_FILES
Peter Eisentraut [Sun, 26 Jun 2011 21:58:35 +0000 (00:58 +0300)]
Add missing file to GETTEXT_FILES

This doesn't actually change the resulting set of strings, but better
be correct.

13 years agoAdd the possibility to pass --flag arguments to xgettext calls
Peter Eisentraut [Sun, 26 Jun 2011 21:13:10 +0000 (00:13 +0300)]
Add the possibility to pass --flag arguments to xgettext calls

The --flag argument can be used to tell xgettext the arguments of
which functions should be flagged with c-format in the PO files,
instead of guessing based on the presence of format specifiers, which
fails if no format specifiers are present but the translation
accidentally introduces one.

Appropriate flag settings have been added for each message catalog.

based on a patch by Christoph Berg for bug #6066

13 years agoRefactor common gettext triggers
Peter Eisentraut [Sun, 26 Jun 2011 20:50:21 +0000 (23:50 +0300)]
Refactor common gettext triggers

Put gettext trigger words that are common to the backend and backend
modules into a makefile variable to include everywhere, to avoid
error-prone repetitions.

13 years agoReplace tabs by spaces in makefile comment
Peter Eisentraut [Sun, 26 Jun 2011 20:38:29 +0000 (23:38 +0300)]
Replace tabs by spaces in makefile comment

13 years agoMake _ be automatically included in GETTEXT_TRIGGERS
Peter Eisentraut [Sun, 26 Jun 2011 20:05:30 +0000 (23:05 +0300)]
Make _ be automatically included in GETTEXT_TRIGGERS

Since it's globally defined in c.h, it should be treated as a gettext
trigger everywhere.

13 years agoReplace := by = in nls.mk files
Peter Eisentraut [Sun, 26 Jun 2011 17:08:38 +0000 (20:08 +0300)]
Replace := by = in nls.mk files

It currently doesn't make a difference, but it's inconsistent with
most other usage, and it might interfere with a future patch, so I'll
change it all in a separate commit.

Also, replace tabs with spaces for alignment.

13 years agoRemove some cruft from nls.mk files
Peter Eisentraut [Sun, 26 Jun 2011 12:36:15 +0000 (15:36 +0300)]
Remove some cruft from nls.mk files

13 years agoAsync dblink functions require a named connection, and therefore should
Joe Conway [Sat, 25 Jun 2011 22:58:07 +0000 (15:58 -0700)]
Async dblink functions require a named connection, and therefore should
use DBLINK_GET_NAMED_CONN rather than DBLINK_GET_CONN.
Problem found by Peter Eisentraut and patch by Fujii Masao.

13 years agoDocumentation improvements for pg_locks with respect to SSI.
Robert Haas [Fri, 24 Jun 2011 20:06:57 +0000 (16:06 -0400)]
Documentation improvements for pg_locks with respect to SSI.

Explain that querying pg_locks does not simultaneously lock both the
normal lock manager and the predicate lock manager.

Per discussion with Kevin Grittner.

13 years agoIn pg_upgrade docs, clarify that link mode uses "hard" links.
Bruce Momjian [Thu, 23 Jun 2011 23:57:42 +0000 (19:57 -0400)]
In pg_upgrade docs, clarify that link mode uses "hard" links.

Backpatch to 9.1 and 9.0.

13 years agoAdd information schema views role_udt_grants, udt_privileges, user_defined_types
Peter Eisentraut [Thu, 23 Jun 2011 19:12:46 +0000 (22:12 +0300)]
Add information schema views role_udt_grants, udt_privileges, user_defined_types

13 years agoAdd a bit of markup
Peter Eisentraut [Thu, 23 Jun 2011 05:03:38 +0000 (08:03 +0300)]
Add a bit of markup

13 years agoUndo overly enthusiastic de-const-ification.
Tom Lane [Thu, 23 Jun 2011 03:03:11 +0000 (23:03 -0400)]
Undo overly enthusiastic de-const-ification.

s/const//g wasn't exactly what I was suggesting here ... parameter
declarations of the form "const structtype *param" are good and useful,
so put those occurrences back.  Likewise, avoid casting away the const
in a "const void *" parameter.

13 years agoIn pg_upgrade, check that the binary and data directories are the same
Bruce Momjian [Thu, 23 Jun 2011 00:48:34 +0000 (20:48 -0400)]
In pg_upgrade, check that the binary and data directories are the same
major version.

Backpatch to 9.1.

Dan McGee

13 years agoIn pg_upgrade, fix odd function parameter wrapping.
Bruce Momjian [Wed, 22 Jun 2011 23:30:12 +0000 (19:30 -0400)]
In pg_upgrade, fix odd function parameter wrapping.

13 years agoUpdate alternative expected file for recent sequence test changes.
Tom Lane [Wed, 22 Jun 2011 23:28:51 +0000 (19:28 -0400)]
Update alternative expected file for recent sequence test changes.

13 years agoRevert "Don't select log_cnt in sequence regression tests."
Tom Lane [Wed, 22 Jun 2011 23:21:29 +0000 (19:21 -0400)]
Revert "Don't select log_cnt in sequence regression tests."

This reverts commit addf11f9a264417aa467d4e135b9a8afc59f172a.
The right fix for the problem is to update the alternative expected
file, not to lobotomize the test case.

13 years agoRename pg_upgrade directory validation function, for clarity.
Bruce Momjian [Wed, 22 Jun 2011 21:50:40 +0000 (17:50 -0400)]
Rename pg_upgrade directory validation function, for clarity.

13 years agoAdjust pg_upgrade check for pg_upgrade_support to happen after the
Bruce Momjian [Wed, 22 Jun 2011 21:47:23 +0000 (17:47 -0400)]
Adjust pg_upgrade check for pg_upgrade_support to happen after the
binary directory has been validated.

Backpatch to 9.1.

Dan McGee

13 years agoFix pg_upgrade status message capitalization mistake.
Bruce Momjian [Wed, 22 Jun 2011 18:48:59 +0000 (14:48 -0400)]
Fix pg_upgrade status message capitalization mistake.

Backpatch to 9.1 and 9.0.

Dan McGee

13 years agoAdd missing -I switch for VPATH builds.
Tom Lane [Wed, 22 Jun 2011 17:20:03 +0000 (13:20 -0400)]
Add missing -I switch for VPATH builds.

Per bug #6073 from Hartmut Raschick.

13 years agoFix symlink for errcodes.h so it works in VPATH builds from tarballs.
Tom Lane [Wed, 22 Jun 2011 17:08:08 +0000 (13:08 -0400)]
Fix symlink for errcodes.h so it works in VPATH builds from tarballs.

backend/Makefile was treating errcodes.h as a header always generated
during build, but actually it's a header provided in tarballs.  Hence,
must use the absolute-symlink recipe, not the relative-symlink one.
Per bug #6072 from Hartmut Raschick.

13 years agoDon't select log_cnt in sequence regression tests.
Robert Haas [Wed, 22 Jun 2011 13:39:31 +0000 (09:39 -0400)]
Don't select log_cnt in sequence regression tests.

It's not entirely stable.

Per suggestion from Josh Kupershmidt.

13 years agoRemove pointless const qualifiers from function arguments in the SSI code.
Heikki Linnakangas [Wed, 22 Jun 2011 09:18:39 +0000 (12:18 +0300)]
Remove pointless const qualifiers from function arguments in the SSI code.
As Tom Lane pointed out, "const Relation foo" doesn't guarantee that you
can't modify the data the "foo" pointer points to. It just means that you
can't change the pointer to point to something else within the function,
which is not very useful.

13 years agoMake the visibility map crash-safe.
Robert Haas [Wed, 22 Jun 2011 03:04:40 +0000 (23:04 -0400)]
Make the visibility map crash-safe.

This involves two main changes from the previous behavior.  First,
when we set a bit in the visibility map, emit a new WAL record of type
XLOG_HEAP2_VISIBLE.  Replay sets the page-level PD_ALL_VISIBLE bit and
the visibility map bit.  Second, when inserting, updating, or deleting
a tuple, we can no longer get away with clearing the visibility map
bit after releasing the lock on the corresponding heap page, because
an intervening crash might leave the visibility map bit set and the
page-level bit clear.  Making this work requires a bit of interface
refactoring.

In passing, a few minor but related cleanups: change the test in
visibilitymap_set and visibilitymap_clear to throw an error if the
wrong page (or no page) is pinned, rather than silently doing nothing;
this case should never occur.  Also, remove duplicate definitions of
InvalidXLogRecPtr.

Patch by me, review by Noah Misch.

13 years agoAdd some regression tests for serial pseudotypes.
Robert Haas [Wed, 22 Jun 2011 02:57:08 +0000 (22:57 -0400)]
Add some regression tests for serial pseudotypes.

Josh Kupershmidt

13 years agoAdd smallserial pseudotype.
Robert Haas [Wed, 22 Jun 2011 02:52:52 +0000 (22:52 -0400)]
Add smallserial pseudotype.

This is just like serial and bigserial, except it generates an int2
column rather than int4 or int8.

Mike Pultz, reviewed by Brar Piening and Josh Kupershmidt

13 years agoMake deadlock_timeout PGC_SUSET rather than PGC_SIGHUP.
Robert Haas [Wed, 22 Jun 2011 02:32:30 +0000 (22:32 -0400)]
Make deadlock_timeout PGC_SUSET rather than PGC_SIGHUP.

This allows deadlock_timeout to be reduced for transactions that are
particularly likely to be involved in a deadlock, thus detecting it
more quickly.  It is also potentially useful as a poor-man's deadlock
priority mechanism: a transaction with a high deadlock_timeout is less
likely to be chosen as the victim than one with a low
deadlock_timeout.  Since that could be used to game the system, we
make this PGC_SUSET rather than PGC_USERSET.

At some point, it might be worth thinking about a more explicit
priority mechanism, since using this is far from fool-proof.  But
let's see whether there's enough use case to justify the additional
work before we go down that route.

Noah Misch, reviewed by Shigeru Hanada

13 years agoAdd notion of a "transform function" that can simplify function calls.
Robert Haas [Wed, 22 Jun 2011 02:15:24 +0000 (22:15 -0400)]
Add notion of a "transform function" that can simplify function calls.

Initially, we use this only to eliminate calls to the varchar()
function in cases where the length is not being reduced and, therefore,
the function call is equivalent to a RelabelType operation.  The most
significant effect of this is that we can avoid a table rewrite when
changing a varchar(X) column to a varchar(Y) column, where Y > X.

Noah Misch, reviewed by me and Alexey Klyukin

13 years agoPerformance tuning advice for SSI.
Robert Haas [Wed, 22 Jun 2011 01:54:36 +0000 (21:54 -0400)]
Performance tuning advice for SSI.

Kevin Grittner, with additional wordsmithing by me.

13 years agoMinor editing for README-SSI.
Tom Lane [Tue, 21 Jun 2011 22:00:09 +0000 (18:00 -0400)]
Minor editing for README-SSI.

Fix some grammatical issues, try to clarify a couple of proofs, make the
terminology more consistent.

13 years agoMessage style and spelling improvements
Peter Eisentraut [Tue, 21 Jun 2011 21:33:20 +0000 (00:33 +0300)]
Message style and spelling improvements

13 years agoApply upstream fix for blowfish signed-character bug (CVE-2011-2483).
Tom Lane [Tue, 21 Jun 2011 18:41:05 +0000 (14:41 -0400)]
Apply upstream fix for blowfish signed-character bug (CVE-2011-2483).

A password containing a character with the high bit set was misprocessed
on machines where char is signed (which is most).  This could cause the
preceding one to three characters to fail to affect the hashed result,
thus weakening the password.  The result was also unportable, and failed
to match some other blowfish implementations such as OpenBSD's.

Since the fix changes the output for such passwords, upstream chose
to provide a compatibility hack: password salts beginning with $2x$
(instead of the usual $2a$ for blowfish) are intentionally processed
"wrong" to give the same hash as before.  Stored password hashes can
thus be modified if necessary to still match, though it'd be better
to change any affected passwords.

In passing, sync a couple other upstream changes that marginally improve
performance and/or tighten error checking.

Back-patch to all supported branches.  Since this issue is already
public, no reason not to commit the fix ASAP.

13 years agoAdjust the alternative expected output file for prepared_xacts test case,
Heikki Linnakangas [Tue, 21 Jun 2011 14:07:10 +0000 (17:07 +0300)]
Adjust the alternative expected output file for prepared_xacts test case,
used when max_prepared_transactions=0, for the recent changes in the test
case.

13 years agoFix bug in PreCommit_CheckForSerializationFailure. A transaction that has
Heikki Linnakangas [Tue, 21 Jun 2011 11:32:11 +0000 (14:32 +0300)]
Fix bug in PreCommit_CheckForSerializationFailure. A transaction that has
already been marked as PREPARED cannot be killed. Kill the current
transaction instead.

One of the prepared_xacts regression tests actually hits this bug. I
removed the anomaly from the duplicate-gids test so that it fails in the
intended way, and added a new test to check serialization failures with
a prepared transaction.

Dan Ports

13 years agoFix bug introduced by recent SSI patch to merge ROLLED_BACK and
Heikki Linnakangas [Tue, 21 Jun 2011 11:12:40 +0000 (14:12 +0300)]
Fix bug introduced by recent SSI patch to merge ROLLED_BACK and
MARKED_FOR_DEATH flags into one. We still need the ROLLED_BACK flag to
mark transactions that are in the process of being rolled back. To be
precise, ROLLED_BACK now means that a transaction has already been
discounted from the count of transactions with the oldest xmin, but not
yet removed from the list of active transactions.

Dan Ports

13 years agoFix missed use of "cp -i" in an example, per Fujii Masao.
Tom Lane [Mon, 20 Jun 2011 20:27:32 +0000 (16:27 -0400)]
Fix missed use of "cp -i" in an example, per Fujii Masao.

Also be more careful about markup: use &amp; not just &.

13 years agoFix thinko in previous patch for optimizing EXISTS-within-EXISTS.
Tom Lane [Mon, 20 Jun 2011 18:33:20 +0000 (14:33 -0400)]
Fix thinko in previous patch for optimizing EXISTS-within-EXISTS.

When recursing after an optimization in pull_up_sublinks_qual_recurse, the
available_rels value passed down must include only the relations that are
in the righthand side of the new SEMI or ANTI join; it's incorrect to pull
up a sub-select that refers to other relations, as seen in the added test
case.  Per report from BangarRaju Vadapalli.

While at it, rethink the idea of recursing below a NOT EXISTS.  That is
essentially the same situation as pulling up ANY/EXISTS sub-selects that
are in the ON clause of an outer join, and it has the same disadvantage:
we'd force the two joins to be evaluated according to the syntactic nesting
order, because the lower join will most likely not be able to commute with
the ANTI join.  That could result in having to form a rather large join
product, whereas the handling of a correlated subselect is not quite that
dumb.  So until we can handle those cases better, #ifdef NOT_USED that
case.  (I think it's okay to pull up in the EXISTS/ANY cases, because SEMI
joins aren't so inflexible about ordering.)

Back-patch to 8.4, same as for previous patch in this area.  Fortunately
that patch hadn't made it into any shipped releases yet.

13 years agoRemove extra copying of TupleDescs for heap_create_with_catalog
Alvaro Herrera [Fri, 17 Jun 2011 13:43:32 +0000 (09:43 -0400)]
Remove extra copying of TupleDescs for heap_create_with_catalog

Some callers were creating copies of tuple descriptors to pass to that
function, stating in code comments that it was necessary because it
modified the passed descriptor.  Code inspection reveals this not to be
true, and indeed not all callers are passing copies in the first place.
So remove the extra ones and the misleading comments about this behavior
as well.

13 years agoFixed string in German translation that causes segfault.
Michael Meskes [Mon, 20 Jun 2011 11:53:15 +0000 (13:53 +0200)]
Fixed string in German translation that causes segfault.

Applied patch by Christoph Berg <cb@df7cb.de> to replace placeholder "%s" by
correct string.

13 years agoProduce HISTORY file consistently as ASCII
Peter Eisentraut [Sun, 19 Jun 2011 20:27:56 +0000 (23:27 +0300)]
Produce HISTORY file consistently as ASCII

The release notes may contain non-ASCII characters (for contributor
names), which lynx converts to the encoding determined by the current
locale.  The get output that is deterministic and easily readable by
everyone, we make lynx produce LATIN1 and then convert that to ASCII
with transliteration for the non-ASCII characters.