Commit Graph

32096 Commits

Author SHA1 Message Date
Peter Eisentraut
469345e1e3 Fix use of unportable %m format 2011-07-07 22:53:51 +03:00
Tom Lane
db43ec43cc 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.
2011-07-07 15:11:56 -04:00
Robert Haas
a392b52478 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
2011-07-07 15:09:17 -04:00
Tom Lane
ec1339ea5c 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.
2011-07-07 13:15:48 -04:00
Heikki Linnakangas
046d52f7d3 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
2011-07-07 18:13:13 +03:00
Tom Lane
cb1cc305bc 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.
2011-07-06 14:53:42 -04:00
Tom Lane
f8bd267d35 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.
2011-07-05 18:46:09 -04:00
Tom Lane
c639d240c0 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.
2011-07-05 18:21:28 -04:00
Peter Eisentraut
457333d5c2 Message style improvements of errmsg_internal() calls 2011-07-05 23:01:54 +03:00
Tom Lane
10323f3a59 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.
2011-07-05 15:54:51 -04:00
Peter Eisentraut
c2fe8e70b2 Postgres -> PostgreSQL in error message 2011-07-05 22:41:09 +03:00
Tom Lane
8b6c89ad13 Improve documentation about foreign data wrapper validator functions.
Modified version of a patch by Shigeru Hanada.
2011-07-05 15:38:29 -04:00
Tom Lane
2683a6340d 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.
2011-07-05 12:05:15 -04:00
Magnus Hagander
eb9ca35fbd Fix typo in sslmode documentation
Per bug #6089, noted by Sidney Cadot
2011-07-05 09:46:06 +02:00
Peter Eisentraut
06f04b6dc4 Message style tweaks 2011-07-05 00:17:25 +03:00
Peter Eisentraut
413ed2556f Small documentation tweaks 2011-07-05 00:17:12 +03:00
Heikki Linnakangas
c33acb4f0a Clarify that you need ActiveState perl 5.8 *or later* to build on Windows. 2011-07-04 22:42:25 +03:00
Andrew Dunstan
ffc50e134a Back-patch Fix bat file quoting of %ENV from commit 19b7fac8. 2011-07-04 10:44:07 -04:00
Simon Riggs
677f146307 Alter test results to comply with new ALTER TABLE behaviour. 2011-07-04 11:11:03 +01:00
Simon Riggs
1f70560997 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.
2011-07-04 09:30:50 +01:00
Tom Lane
3569e02c98 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.
2011-07-03 22:12:20 -04:00
Tom Lane
80d7722337 Put comments on the installable procedural languages.
Per suggestion from Josh Kupershmidt.
2011-07-03 19:04:05 -04:00
Robert Haas
2b9bb6979d 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.
2011-07-03 17:46:58 -04:00
Tom Lane
ffd3f13fab 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.
2011-07-03 13:55:27 -04:00
Peter Eisentraut
6b23ba1093 Unify spelling of "canceled", "canceling", "cancellation"
We had previously (af26857a27)
established the U.S. spellings as standard.
2011-07-02 23:30:01 +03:00
Peter Eisentraut
678a6d0344 Add some strings that were not marked for translation 2011-07-02 23:26:33 +03:00
Bruce Momjian
158d071b28 In pg_upgrade 9.0 and 9.1, document suggestion of using a non-default
port number to avoid unintended client connections.
2011-07-01 23:09:13 -04:00
Tom Lane
3b80219e96 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 29c4ad9829, 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.
2011-06-29 19:46:58 -04:00
Heikki Linnakangas
f01e3d3a41 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
2011-06-29 22:10:45 +03:00
Heikki Linnakangas
1aa447a1e1 Grab predicate locks on matching tuples in a lossy bitmap heap scan.
Non-lossy case was already handled correctly.

Kevin Grittner
2011-06-29 22:10:45 +03:00
Magnus Hagander
3ec6e00ece Protect pg_stat_reset_shared() against NULL input
Per bug #6082, reported by Steve Haslam
2011-06-29 19:37:05 +02:00
Simon Riggs
ca7e04b0b9 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
2011-06-27 22:15:07 +01:00
Robert Haas
379352602c Mention that SSPI authentication can use GSSAPI on non-Windows systems.
As noted by Christian Ullrich.
2011-06-27 10:39:30 -04:00
Joe Conway
e4fb58f894 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.
2011-06-25 15:40:49 -07:00
Robert Haas
ea41b8c822 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.
2011-06-24 16:09:57 -04:00
Bruce Momjian
50016867a3 In pg_upgrade docs, clarify that link mode uses "hard" links.
Backpatch to 9.1 and 9.0.
2011-06-23 19:58:11 -04:00
Tom Lane
1c20ba4f41 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.
2011-06-22 23:05:06 -04:00
Bruce Momjian
d9db32401c In pg_upgrade, check that the binary and data directories are the same
major version.

Backpatch to 9.1.

Dan McGee
2011-06-22 20:48:35 -04:00
Bruce Momjian
c6635bd7ba Adjust pg_upgrade check for pg_upgrade_support to happen after the
binary directory has been validated.

Backpatch to 9.1.

Dan McGee
2011-06-22 17:47:24 -04:00
Bruce Momjian
3ccd16c5a9 Fix pg_upgrade status message capitalization mistake.
Backpatch to 9.1 and 9.0.

Dan McGee
2011-06-22 14:49:44 -04:00
Tom Lane
979d6c9cad Add missing -I switch for VPATH builds.
Per bug #6073 from Hartmut Raschick.
2011-06-22 13:20:12 -04:00
Tom Lane
25db278088 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.
2011-06-22 13:08:20 -04:00
Heikki Linnakangas
fbaa7a23e4 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.
2011-06-22 12:21:34 +03:00
Robert Haas
66370f5158 Performance tuning advice for SSI.
Kevin Grittner, with additional wordsmithing by me.
2011-06-21 21:55:26 -04:00
Tom Lane
0272fd1c00 Minor editing for README-SSI.
Fix some grammatical issues, try to clarify a couple of proofs, make the
terminology more consistent.
2011-06-21 18:01:34 -04:00
Peter Eisentraut
a0b5146b25 Message style and spelling improvements 2011-06-22 00:33:20 +03:00
Tom Lane
567049a764 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.
2011-06-21 14:41:48 -04:00
Heikki Linnakangas
35dd6d48ec 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.
2011-06-21 17:08:56 +03:00
Heikki Linnakangas
390c52131b 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
2011-06-21 15:02:32 +03:00
Heikki Linnakangas
0d905db20b 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
2011-06-21 15:02:26 +03:00