]> granicus.if.org Git - postgresql/log
postgresql
11 years agoUpdate regression tests for line type patch
Peter Eisentraut [Thu, 10 Oct 2013 23:59:15 +0000 (19:59 -0400)]
Update regression tests for line type patch

Erroneously omitted in 261c7d4b653bc3e44c31fd456d94f292caa50d8f

11 years agoinitdb: Select working dynamic shared memory implementation.
Robert Haas [Thu, 10 Oct 2013 23:38:56 +0000 (19:38 -0400)]
initdb: Select working dynamic shared memory implementation.

If POSIX shared memory is supported and works, we prefer it.
Otherwise, we prefer System V, except on Windows, where we use
the implementation specific to that platform.

11 years agoFix bug in record_image_ops on big endian machines.
Kevin Grittner [Thu, 10 Oct 2013 16:23:31 +0000 (11:23 -0500)]
Fix bug in record_image_ops on big endian machines.

The buildfarm pointed out the problem.

Fix based on suggestion by Robert Haas.

11 years agojson_typeof function.
Andrew Dunstan [Thu, 10 Oct 2013 16:21:59 +0000 (12:21 -0400)]
json_typeof function.

Andrew Tipton.

11 years agoFix incorrect use of shm_unlink where unlink should be used.
Robert Haas [Thu, 10 Oct 2013 14:56:19 +0000 (10:56 -0400)]
Fix incorrect use of shm_unlink where unlink should be used.

Per buildfarm.

11 years agopg_upgrade: Split off pg_fatal() from pg_log()
Peter Eisentraut [Wed, 2 Oct 2013 01:24:56 +0000 (21:24 -0400)]
pg_upgrade: Split off pg_fatal() from pg_log()

This allows decorating pg_fatal() with noreturn compiler hints, leading
to better diagnostics.

Reviewed-by: Marko Tiikkaja <marko@joh.to>
11 years agoRevive line type
Peter Eisentraut [Wed, 9 Oct 2013 05:09:18 +0000 (01:09 -0400)]
Revive line type

Change the input/output format to {A,B,C}, to match the internal
representation.

Complete the implementations of line_in, line_out, line_recv, line_send.
Remove comments and error messages about the line type not being
implemented.  Add regression tests for existing line operators and
functions.

Reviewed-by: rui hua <365507506hua@gmail.com>
Reviewed-by: Álvaro Herrera <alvherre@2ndquadrant.com>
Reviewed-by: Jeevan Chalke <jeevan.chalke@enterprisedb.com>
11 years agoAllow dynamic allocation of shared memory segments.
Robert Haas [Thu, 10 Oct 2013 01:05:02 +0000 (21:05 -0400)]
Allow dynamic allocation of shared memory segments.

Patch by myself and Amit Kapila.  Design help from Noah Misch.  Review
by Andres Freund.

11 years agoAdd record_image_ops opclass for matview concurrent refresh.
Kevin Grittner [Wed, 9 Oct 2013 19:26:09 +0000 (14:26 -0500)]
Add record_image_ops opclass for matview concurrent refresh.

REFRESH MATERIALIZED VIEW CONCURRENTLY was broken for any matview
containing a column of a type without a default btree operator
class.  It also did not produce results consistent with a non-
concurrent REFRESH or a normal view if any column was of a type
which allowed user-visible differences between values which
compared as equal according to the type's default btree opclass.
Concurrent matview refresh was modified to use the new operators
to solve these problems.

Documentation was added for record comparison, both for the
default btree operator class for record, and the newly added
operators.  Regression tests now check for proper behavior both
for a matview with a box column and a matview containing a citext
column.

Reviewed by Steve Singer, who suggested some of the doc language.

11 years agodoc: fix typo in release notes
Bruce Momjian [Wed, 9 Oct 2013 12:44:52 +0000 (08:44 -0400)]
doc:  fix typo in release notes

Backpatch through 8.4

Per suggestion by Amit Langote

11 years agoCentralize effective_cache_size default setting
Bruce Momjian [Wed, 9 Oct 2013 12:33:12 +0000 (08:33 -0400)]
Centralize effective_cache_size default setting

11 years agoAdjust the effective_cache_size default for standalone backends
Bruce Momjian [Wed, 9 Oct 2013 03:53:39 +0000 (23:53 -0400)]
Adjust the effective_cache_size default for standalone backends

11 years agoAgain move function where we set effective_cache_size's default
Bruce Momjian [Wed, 9 Oct 2013 03:12:45 +0000 (23:12 -0400)]
Again move function where we set effective_cache_size's default

11 years agoMove new effective_cache_size function
Bruce Momjian [Wed, 9 Oct 2013 02:41:23 +0000 (22:41 -0400)]
Move new effective_cache_size function

Previously set_default_effective_cache_size() could not handle fork,
non-fork, and bootstrap cases.

11 years agoFix C comment in check_effective_cache_size()
Bruce Momjian [Tue, 8 Oct 2013 23:25:26 +0000 (19:25 -0400)]
Fix C comment in check_effective_cache_size()

11 years agodoc: Fix typo in effective_cache_size patch
Bruce Momjian [Tue, 8 Oct 2013 23:02:35 +0000 (19:02 -0400)]
doc:  Fix typo in effective_cache_size patch

11 years agoAllow drop-index-concurrently-1 test to run at any isolation level.
Kevin Grittner [Tue, 8 Oct 2013 21:55:12 +0000 (16:55 -0500)]
Allow drop-index-concurrently-1 test to run at any isolation level.

It previously reported failure at REPEATABLE READ and SERIALIZABLE
transaction isolation levels for make installcheck.

11 years agoUpdate postgres.conf.sample for effective_cache_size's new default
Bruce Momjian [Tue, 8 Oct 2013 16:50:05 +0000 (12:50 -0400)]
Update postgres.conf.sample for effective_cache_size's new default

11 years agodocs: clarify references to md5 hash and md5 crypt in pgcrypto docs
Bruce Momjian [Tue, 8 Oct 2013 16:24:02 +0000 (12:24 -0400)]
docs:  clarify references to md5 hash and md5 crypt in pgcrypto docs

Suggestion from Richard Neill

11 years agounaccent: mark unaccent() functions as immutable
Bruce Momjian [Tue, 8 Oct 2013 16:20:36 +0000 (12:20 -0400)]
unaccent:  mark unaccent() functions as immutable

Suggestion from Pavel Stehule

11 years agoAuto-tune effective_cache size to be 4x shared buffers
Bruce Momjian [Tue, 8 Oct 2013 16:12:24 +0000 (12:12 -0400)]
Auto-tune effective_cache size to be 4x shared buffers

11 years agoAdditional instructions on minor release note creation.
Bruce Momjian [Tue, 8 Oct 2013 14:29:43 +0000 (10:29 -0400)]
Additional instructions on minor release note creation.

11 years agoUpdate instructions on creating minor release notes.
Bruce Momjian [Tue, 8 Oct 2013 13:48:29 +0000 (09:48 -0400)]
Update instructions on creating minor release notes.

11 years agodocs: update release notes for 8.4.18, 9.0.14, 9.1.10, 9.2.5, 9.3.1
Bruce Momjian [Tue, 8 Oct 2013 01:35:02 +0000 (21:35 -0400)]
docs:  update release notes for 8.4.18, 9.0.14, 9.1.10, 9.2.5, 9.3.1

11 years agoTYPEALIGN doesn't work on int64 on 32-bit platforms.
Heikki Linnakangas [Mon, 7 Oct 2013 22:59:57 +0000 (01:59 +0300)]
TYPEALIGN doesn't work on int64 on 32-bit platforms.

The TYPEALIGN macro, and the related ones like MAXALIGN, don't work with
values larger than intptr_t, because TYPEALIGN casts the argument to
intptr_t to do the arithmetic. That's not a problem when dealing with
pointers or lengths or offsets related to pointers, but the XLogInsert
scaling patch added a call to MAXALIGN with an XLogRecPtr argument.

To fix, add wider variants of the macros, called TYPEALIGN64 and MAXALIGN64,
which are just like the existing variants but work with uint64 instead of
intptr_t.

Report and patch by David Rowley, analysis by Andres Freund.

11 years agoFix bugs in SSI tuple locking.
Heikki Linnakangas [Mon, 7 Oct 2013 20:57:40 +0000 (23:57 +0300)]
Fix bugs in SSI tuple locking.

1. In heap_hot_search_buffer(), the PredicateLockTuple() call is passed
wrong offset number. heapTuple->t_self is set to the tid of the first
tuple in the chain that's visited, not the one actually being read.

2. CheckForSerializableConflictIn() uses the tuple's t_ctid field
instead of t_self to check for exiting predicate locks on the tuple. If
the tuple was updated, but the updater rolled back, t_ctid points to the
aborted dead tuple.

Reported by Hannu Krosing. Backpatch to 9.1.

11 years agoTranslation updates
Peter Eisentraut [Mon, 7 Oct 2013 20:27:04 +0000 (16:27 -0400)]
Translation updates

11 years agoMake DISCARD SEQUENCES also discard the last used sequence.
Robert Haas [Mon, 7 Oct 2013 19:55:56 +0000 (15:55 -0400)]
Make DISCARD SEQUENCES also discard the last used sequence.

Otherwise, we access already-freed memory.  Oops.

Report by Michael Paquier.  Fix by me.

11 years agoplpgsql: Add new option print_strict_params.
Robert Haas [Mon, 7 Oct 2013 19:38:49 +0000 (15:38 -0400)]
plpgsql: Add new option print_strict_params.

This option provides more detailed error messages when STRICT is used
and the number of rows returned is not one.

Marko Tiikkaja, reviewed by Ian Lawrence Barwick

11 years agoEliminate xmin from hash tag for predicate locks on heap tuples.
Kevin Grittner [Mon, 7 Oct 2013 19:16:54 +0000 (14:16 -0500)]
Eliminate xmin from hash tag for predicate locks on heap tuples.

If a tuple was frozen while its predicate locks mattered,
read-write dependencies could be missed, resulting in failure to
detect conflicts which could lead to anomalies in committed
serializable transactions.

This field was added to the tag when we still thought that it was
necessary to carry locks forward to a new version of an updated
row.  That was later proven to be unnecessary, which allowed
simplification of the code, but elimination of xmin from the tag
was missed at the time.

Per report and analysis by Heikki Linnakangas.
Backpatch to 9.1.

11 years agoDocument support for VPATH builds of extensions.
Andrew Dunstan [Mon, 7 Oct 2013 02:57:16 +0000 (22:57 -0400)]
Document support for VPATH builds of extensions.

Cédric Villemain and me.

11 years agopgbench: Comment on thread timing hazards.
Noah Misch [Sun, 6 Oct 2013 13:56:43 +0000 (09:56 -0400)]
pgbench: Comment on thread timing hazards.

Reviewed by Fabien COELHO.

11 years agoFix various bugs in postmaster SIGKILL processing
Alvaro Herrera [Sun, 6 Oct 2013 02:24:50 +0000 (23:24 -0300)]
Fix various bugs in postmaster SIGKILL processing

Clamp the minimum sleep time during immediate shutdown or crash to a
minimum of zero, not a maximum of one second.  The previous code could
result in a negative sleep time, leading to failure in select() calls.

Also, on crash recovery, reset AbortStartTime as soon as SIGKILL is sent
or abort processing has commenced instead of waiting until the startup
process completes.  Reset AbortStartTime as soon as SIGKILL is sent,
too, to avoid doing that repeatedly.

Per trouble report from Jeff Janes on
CAMkU=1xd3=wFqZwwuXPWe4BQs3h1seYo8LV9JtSjW5RodoPxMg@mail.gmail.com

Author: MauMau

11 years agopgbench: Elaborate latency reporting.
Noah Misch [Sat, 5 Oct 2013 21:33:38 +0000 (17:33 -0400)]
pgbench: Elaborate latency reporting.

Isolate transaction latency (elapsed time between submitting first
command and receiving response to last command) from client-side delays
pertaining to the --rate schedule.  Under --rate, report schedule lag as
defined in the documentation.  Report latency standard deviation
whenever we collect the measurements to do so.  All of these changes
affect --progress messages and the final report.

Fabien COELHO, reviewed by Pavel Stehule.

11 years agopgbench: Remove stray use of "float" math.
Noah Misch [Sat, 5 Oct 2013 21:19:37 +0000 (17:19 -0400)]
pgbench: Remove stray use of "float" math.

Oversight in commit 4a87f308b33457670f9ab4bc622678e5d285b9c2.

Fabien COELHO

11 years agopg_upgrade doc: link mode additions
Bruce Momjian [Sat, 5 Oct 2013 14:18:02 +0000 (10:18 -0400)]
pg_upgrade doc: link mode additions

Mention that link mode uses less disk space, and uses junction points on
Windows.

Backpatch to 9.3.

11 years agoadd multixact-no-deadlock to schedule
Alvaro Herrera [Fri, 4 Oct 2013 17:25:30 +0000 (14:25 -0300)]
add multixact-no-deadlock to schedule

11 years agoMake some isolationtester specs more complete
Alvaro Herrera [Fri, 4 Oct 2013 17:24:46 +0000 (14:24 -0300)]
Make some isolationtester specs more complete

Also, make sure they pass on all transaction isolation levels.

11 years agoisolationtester: Allow tuples to be returned in more places
Alvaro Herrera [Fri, 4 Oct 2013 13:32:48 +0000 (10:32 -0300)]
isolationtester: Allow tuples to be returned in more places

Previously, isolationtester would forbid returning tuples in
session-specific teardown (but not global teardown), as well as in
global setup.  Allow these places to return tuples, too.

11 years agoIssue error on SET outside transaction block in some cases
Bruce Momjian [Fri, 4 Oct 2013 17:50:28 +0000 (13:50 -0400)]
Issue error on SET outside transaction block in some cases

Issue error for SET LOCAL/CONSTRAINTS/TRANSACTION outside a transaction
block, as they have no effect.

Per suggestion from Morten Hustveit

11 years agodoc: Add missing words to bgworker docs.
Robert Haas [Fri, 4 Oct 2013 15:13:50 +0000 (11:13 -0400)]
doc: Add missing words to bgworker docs.

Maciek Sakrejda

11 years agoFix silly thinko in ResetSequenceCaches.
Robert Haas [Fri, 4 Oct 2013 00:17:51 +0000 (20:17 -0400)]
Fix silly thinko in ResetSequenceCaches.

Report from Kevin Hale Boyes.

11 years agoAdd DISCARD SEQUENCES command.
Robert Haas [Thu, 3 Oct 2013 20:17:18 +0000 (16:17 -0400)]
Add DISCARD SEQUENCES command.

DISCARD ALL will now discard cached sequence information, as well.

Fabrízio de Royes Mello, reviewed by Zoltán Böszörményi, with some
further tweaks by me.

11 years agopsql: Make \pset without arguments show all settings.
Robert Haas [Thu, 3 Oct 2013 19:18:02 +0000 (15:18 -0400)]
psql: Make \pset without arguments show all settings.

Gilles Darold, reviewed by Pavel Stehule

11 years agoMinor GIN code refactoring.
Heikki Linnakangas [Thu, 3 Oct 2013 08:47:17 +0000 (11:47 +0300)]
Minor GIN code refactoring.

It makes for cleaner code to have separate Get/Add functions for PostingItems
and ItemPointers.  A few callsites that have to deal with both types need to
be duplicated because of this, but all the callers have to know which one
they're dealing with anyway. Overall, this reduces the amount of casting
required.

Extracted from Alexander Korotkov's larger patch to change the data page
format.

11 years agodoc: Correct psycopg URL
Peter Eisentraut [Thu, 3 Oct 2013 01:33:26 +0000 (21:33 -0400)]
doc: Correct psycopg URL

11 years agopsql: Set up cancel handler later
Peter Eisentraut [Thu, 3 Oct 2013 01:05:08 +0000 (21:05 -0400)]
psql: Set up cancel handler later

The cancel handler was uselessly set up even before the first connection
was opened.  By setting it up afterwards, the user can use Ctrl+C to
abort psql if the initial connection attempt hangs.

Reviewed-by: Dean Rasheed <dean.a.rasheed@gmail.com>
Reviewed-by: Ryan Kelly <rpkelly22@gmail.com>
11 years agodoc: fix hstore_to_json_loose() doc wording
Bruce Momjian [Wed, 2 Oct 2013 23:25:24 +0000 (19:25 -0400)]
doc: fix hstore_to_json_loose() doc wording

11 years agoFix copy/paste error
Magnus Hagander [Wed, 2 Oct 2013 14:42:36 +0000 (16:42 +0200)]
Fix copy/paste error

11 years agoAdjust C comments that would be wrap-able.
Bruce Momjian [Tue, 1 Oct 2013 23:44:53 +0000 (19:44 -0400)]
Adjust C comments that would be wrap-able.

11 years agoAdd WaitForLockers in lmgr, refactoring index.c code
Alvaro Herrera [Fri, 27 Sep 2013 14:46:33 +0000 (11:46 -0300)]
Add WaitForLockers in lmgr, refactoring index.c code

This is in support of a future REINDEX CONCURRENTLY feature.

Michael Paquier

11 years agoRemove broken PGXS code for pg_xlogdump
Alvaro Herrera [Tue, 1 Oct 2013 20:36:15 +0000 (17:36 -0300)]
Remove broken PGXS code for pg_xlogdump

With the PGXS boilerplate in place, pg_xlogdump currently fails with an
ominous error message that certain targets cannot be built because
certain files do not exist.  Remove that and instead throw a quick error
message alerting the user of the actual problem, which should be easier
to diagnose that the statu quo.

Andres Freund

11 years agoAdd missing condition for pg_depend in hstore migration script.
Andrew Dunstan [Mon, 30 Sep 2013 15:33:54 +0000 (11:33 -0400)]
Add missing condition for pg_depend in hstore migration script.

Error noted by Andres Freund.

11 years agoEnsure installation dirs are built before contents are installed (v2)
Andrew Dunstan [Mon, 30 Sep 2013 14:17:30 +0000 (10:17 -0400)]
Ensure installation dirs are built before contents are installed (v2)

Push dependency on installdirs down to individual targets.

Christoph Berg

11 years agoIn bms_add_member(), use repalloc() if the bms needs to be enlarged.
Heikki Linnakangas [Mon, 30 Sep 2013 13:37:00 +0000 (16:37 +0300)]
In bms_add_member(), use repalloc() if the bms needs to be enlarged.

Previously bms_add_member() would palloc a whole-new copy of the existing
set, copy the words, and pfree the old one. repalloc() is potentially much
faster, and more importantly, this is less surprising if CurrentMemoryContext
is not the same as the context the old set is in. bms_add_member() still
allocates a new bitmapset in CurrentMemoryContext if NULL is passed as
argument, but that is a lot less likely to induce bugs.

Nicholas White.

11 years agoFix snapshot leak if lo_open called on non-existent object.
Heikki Linnakangas [Mon, 30 Sep 2013 08:29:09 +0000 (11:29 +0300)]
Fix snapshot leak if lo_open called on non-existent object.

lo_open registers the currently active snapshot, and checks if the
large object exists after that. Normally, snapshots registered by lo_open
are unregistered at end of transaction when the lo descriptor is closed, but
if we error out before the lo descriptor is added to the list of open
descriptors, it is leaked. Fix by moving the snapshot registration to after
checking if the large object exists.

Reported by Pavel Stehule. Backpatch to 8.4. The snapshot registration
system was introduced in 8.4, so prior versions are not affected (and not
supported, anyway).

11 years agoCorrect comment of pgbench "filler" columns.
Fujii Masao [Mon, 30 Sep 2013 03:35:54 +0000 (12:35 +0900)]
Correct comment of pgbench "filler" columns.

Pavan Deolasee

11 years agoFix makefile broken by hstore fix.
Andrew Dunstan [Mon, 30 Sep 2013 02:46:55 +0000 (22:46 -0400)]
Fix makefile broken by hstore fix.

11 years agoUse a new hstore extension version for added json functions.
Andrew Dunstan [Sun, 29 Sep 2013 21:41:56 +0000 (17:41 -0400)]
Use a new hstore extension version for added json functions.

This should have been done when the json functionality was added to
hstore in 9.3.0. To handle this correctly, the upgrade script therefore
uses conditional logic by using plpgsql in a DO statement to add the two
new functions and the new cast. If hstore_to_json_loose is detected as
already present and dependent on the hstore extension nothing is done.
This will require that the database be loaded with plpgsql.

People who have installed the earlier and spurious 1.1 version of hstore
will need to do:

ALTER EXTENSION hstore UPDATE;

to pick up the new functions properly.

11 years agoEnsure installation dirs are built before contents are installed.
Andrew Dunstan [Sun, 29 Sep 2013 20:12:58 +0000 (16:12 -0400)]
Ensure installation dirs are built before contents are installed.

Cédric Villemain

11 years agoAllow printf-style padding specifications in log_line_prefix.
Robert Haas [Thu, 26 Sep 2013 21:54:20 +0000 (17:54 -0400)]
Allow printf-style padding specifications in log_line_prefix.

David Rowley, after a suggestion from Heikki Linnakangas.  Reviewed by
Albe Laurenz, and further edited by me.

11 years agoFix erroneous statements about multiply specified JSON columns.
Andrew Dunstan [Thu, 26 Sep 2013 21:39:28 +0000 (17:39 -0400)]
Fix erroneous statements about multiply specified JSON columns.

The behaviour in json_populate_record() and json_populate_recordset()
was changed during development but the docs were not.

11 years agoFix spurious warning after vacuuming a page on a table with no indexes.
Heikki Linnakangas [Thu, 26 Sep 2013 08:24:40 +0000 (11:24 +0300)]
Fix spurious warning after vacuuming a page on a table with no indexes.

There is a rare race condition, when a transaction that inserted a tuple
aborts while vacuum is processing the page containing the inserted tuple.
Vacuum prunes the page first, which normally removes any dead tuples, but
if the inserting transaction aborts right after that, the loop after
pruning will see a dead tuple and remove it instead. That's OK, but if the
page is on a table with no indexes, and the page becomes completely empty
after removing the dead tuple (or tuples) on it, it will be immediately
marked as all-visible. That's OK, but the sanity check in vacuum would
throw a warning because it thinks that the page contains dead tuples and
was nevertheless marked as all-visible, even though it just vacuumed away
the dead tuples and so it doesn't actually contain any.

Spotted this while reading the code. It's difficult to hit the race
condition otherwise, but can be done by putting a breakpoint after the
heap_page_prune() call.

Backpatch all the way to 8.4, where this code first appeared.

11 years agopgbench: Correct for bias in --rate schedule generation.
Noah Misch [Thu, 26 Sep 2013 03:09:50 +0000 (23:09 -0400)]
pgbench: Correct for bias in --rate schedule generation.

Previous code gave a mean delay 0.44% below target.  This change also
has the effect of increasing the maximum possible delay.

Fabien COELHO

11 years agoPlug memory leak in range_cmp function.
Heikki Linnakangas [Wed, 25 Sep 2013 13:02:00 +0000 (16:02 +0300)]
Plug memory leak in range_cmp function.

B-tree operators are not allowed to leak memory into the current memory
context. Range_cmp leaked detoasted copies of the arguments. That caused
a quick out-of-memory error when creating an index on a range column.

Reported by Marian Krucina, bug #8468.

11 years agoFix pgindent comment breakage
Alvaro Herrera [Tue, 24 Sep 2013 21:19:14 +0000 (18:19 -0300)]
Fix pgindent comment breakage

11 years agoUse @libdir@ in both of regress/{input,output}/security_label.source
Noah Misch [Mon, 23 Sep 2013 20:00:13 +0000 (16:00 -0400)]
Use @libdir@ in both of regress/{input,output}/security_label.source

Though @libdir@ almost always matches @abs_builddir@ in this context,
the test could only fail if they differed.  Back-patch to 9.1, where the
test was introduced.

Hamid Quddus Akhtar

11 years agopgbench: Tweak documentation.
Noah Misch [Mon, 23 Sep 2013 19:49:21 +0000 (15:49 -0400)]
pgbench: Tweak documentation.

Fabien COELHO

11 years agodoc: Clarify that file_fdw options require values.
Robert Haas [Mon, 23 Sep 2013 18:57:01 +0000 (14:57 -0400)]
doc: Clarify that file_fdw options require values.

Mike Blackwell and Robert Haas

11 years agoDon't allow system columns in CHECK constraints, except tableoid.
Robert Haas [Mon, 23 Sep 2013 17:31:22 +0000 (13:31 -0400)]
Don't allow system columns in CHECK constraints, except tableoid.

Previously, arbitray system columns could be mentioned in table
constraints, but they were not correctly checked at runtime, because
the values weren't actually set correctly in the tuple.  Since it
seems easy enough to initialize the table OID properly, do that,
and continue allowing that column, but disallow the rest unless and
until someone figures out a way to make them work properly.

No back-patch, because this doesn't seem important enough to take the
risk of destabilizing the back branches.  In fact, this will pose a
dump-and-reload hazard for those upgrading from previous versions:
constraints that were accepted before but were not correctly enforced
will now either be enforced correctly or not accepted at all.  Either
could result in restore failures, but in practice I think very few
users will notice the difference, since the use case is pretty
marginal anyway and few users will be relying on features that have
not historically worked.

Amit Kapila, reviewed by Rushabh Lathia, with doc changes by me.

11 years agopg_upgrade: more C comment fixes
Bruce Momjian [Mon, 23 Sep 2013 15:12:09 +0000 (11:12 -0400)]
pg_upgrade:  more C comment fixes

11 years agopg_upgrade: fix C comment typo
Bruce Momjian [Mon, 23 Sep 2013 15:06:11 +0000 (11:06 -0400)]
pg_upgrade: fix C comment typo

11 years agoFix SSL deadlock risk in libpq
Stephen Frost [Mon, 23 Sep 2013 12:33:41 +0000 (08:33 -0400)]
Fix SSL deadlock risk in libpq

In libpq, we set up and pass to OpenSSL callback routines to handle
locking.  When we run out of SSL connections, we try to clean things
up by de-registering the hooks.  Unfortunately, we had a few calls
into the OpenSSL library after these hooks were de-registered during
SSL cleanup which lead to deadlocking.  This moves the thread callback
cleanup to be after all SSL-cleanup related OpenSSL library calls.
I've been unable to reproduce the deadlock with this fix.

In passing, also move the close_SSL call to be after unlocking our
ssl_config mutex when in a failure state.  While it looks pretty
unlikely to be an issue, it could have resulted in deadlocks if we
ended up in this code path due to something other than SSL_new
failing.  Thanks to Heikki for pointing this out.

Back-patch to all supported versions; note that the close_SSL issue
only goes back to 9.0, so that hunk isn't included in the 8.4 patch.

Initially found and reported by Vesa-Matti J Kari; many thanks to
both Heikki and Andres for their help running down the specific
issue and reviewing the patch.

11 years agoFix two timeline handling bugs in pg_receivexlog.
Heikki Linnakangas [Mon, 23 Sep 2013 07:17:52 +0000 (10:17 +0300)]
Fix two timeline handling bugs in pg_receivexlog.

When a timeline history file is fetched from server, it is initially created
with a temporary file name, and renamed to place. However, the temporary
file name was constructed using an uninitialized buffer. Usually that meant
that the file was created in current directory instead of the target, which
usually goes unnoticed, but if the target is on a different filesystem than
the current dir, the rename() would fail. Fix that.

The second issue is that pg_receivexlog would not take .partial files into
account when determining when scanning the target directory for existing
WAL files. If the timeline has switched in the server several times in the
last WAL segment, and pg_receivexlog is restarted, it would choose a too
old starting point. That's not a problem as long as the old WAL segment
exists in the server and can be streamed over, but will cause a failure if
it's not.

Backpatch to 9.3, where this timeline handling code was written.

Analysed by Andrew Gierth, bug #8453, based on a bug report on IRC.

11 years agoFix compiler warning in WaitForBackgroundWorkerStartup().
Robert Haas [Thu, 19 Sep 2013 17:00:17 +0000 (13:00 -0400)]
Fix compiler warning in WaitForBackgroundWorkerStartup().

Per complaint from Andrew Gierth.

11 years agoFix typo in comment.
Fujii Masao [Wed, 18 Sep 2013 16:58:32 +0000 (01:58 +0900)]
Fix typo in comment.

Ian Lawrence Barwick

11 years agoDocumentation correction.
Robert Haas [Wed, 18 Sep 2013 13:05:10 +0000 (09:05 -0400)]
Documentation correction.

Etsuro Fujita

11 years agoTypo fix.
Robert Haas [Wed, 18 Sep 2013 12:57:44 +0000 (08:57 -0400)]
Typo fix.

Etsuro Fujita

11 years agoRemove `proc` argument from LockCheckConflicts
Alvaro Herrera [Tue, 17 Sep 2013 01:14:14 +0000 (22:14 -0300)]
Remove `proc` argument from LockCheckConflicts

This has been unused since commit 8563ccae2caf.

Noted by Antonin Houska

11 years agoRename various "freeze multixact" variables
Alvaro Herrera [Mon, 16 Sep 2013 18:45:00 +0000 (15:45 -0300)]
Rename various "freeze multixact" variables

It seems to make more sense to use "cutoff multixact" terminology
throughout the backend code; "freeze" is associated with replacing of an
Xid with FrozenTransactionId, which is not what we do for MultiXactIds.

Andres Freund
Some adjustments by Álvaro Herrera

11 years agoAdd a GUC to report whether data page checksums are enabled.
Heikki Linnakangas [Mon, 16 Sep 2013 11:36:01 +0000 (14:36 +0300)]
Add a GUC to report whether data page checksums are enabled.

Bernd Helmle

11 years agoFix typos
Peter Eisentraut [Sun, 15 Sep 2013 15:01:14 +0000 (11:01 -0400)]
Fix typos

11 years agoIgnore interrupts during quickdie().
Noah Misch [Thu, 12 Sep 2013 00:10:15 +0000 (20:10 -0400)]
Ignore interrupts during quickdie().

Once the administrator has called for an immediate shutdown or a backend
crash has triggered a reinitialization, no mere SIGINT or SIGTERM should
change that course.  Such derailment remains possible when the signal
arrives before quickdie() blocks signals.  That being a narrow race
affecting most PostgreSQL signal handlers in some way, leave it for
another patch.  Back-patch this to all supported versions.

11 years agoCreate index on srt table in citext regression tests.
Kevin Grittner [Wed, 11 Sep 2013 21:53:23 +0000 (16:53 -0500)]
Create index on srt table in citext regression tests.

Comments and the tests make clear that the intent is to test with
and without an index, but there was no index.

11 years agofuzzystrmatch: replace broken link in C comment
Bruce Momjian [Wed, 11 Sep 2013 01:34:01 +0000 (21:34 -0400)]
fuzzystrmatch: replace broken link in C comment

Albe Laurenz

11 years agodocs: Update libpq and testlo examples
Bruce Momjian [Wed, 11 Sep 2013 01:03:11 +0000 (21:03 -0400)]
docs:  Update libpq and testlo examples

Josh Kupershmidt

11 years agoAdd comment for VARSIZE_ANY_EXHDR macro
Bruce Momjian [Wed, 11 Sep 2013 00:18:53 +0000 (20:18 -0400)]
Add comment for VARSIZE_ANY_EXHDR macro

Gurjeet Singh

11 years agopsql: fix \copy stdin trailing space requirement
Bruce Momjian [Tue, 10 Sep 2013 23:36:10 +0000 (19:36 -0400)]
psql: fix \copy stdin trailing space requirement

Previously a trailing space was required for \copy ... stdin:

copy foo from stdin ;

Etsuro Fujita

11 years agopsql: honor 'footer' option for expanded output
Bruce Momjian [Tue, 10 Sep 2013 23:07:06 +0000 (19:07 -0400)]
psql: honor 'footer' option for expanded output

"No rows" previously only honored the tuples-only option.

Per report from Eli Mesika

11 years agoRemove leftover function prototype.
Fujii Masao [Tue, 10 Sep 2013 16:32:24 +0000 (01:32 +0900)]
Remove leftover function prototype.

The prototype for inval_twophase_postcommit wasn't removed when it's definition
was removed in efc16ea520679d713d98a2c7bf1453c4ff7b91ec / the initial HS commit.

Andres Freund

11 years agoShow schemas in information_schema.schemata that the current has access to
Peter Eisentraut [Tue, 10 Sep 2013 02:25:37 +0000 (22:25 -0400)]
Show schemas in information_schema.schemata that the current has access to

Before, it would only show schemas that the current user owns.  Per
discussion, the new behavior is more useful and consistent for PostgreSQL.

11 years agoIntroduce InvalidCommandId.
Robert Haas [Mon, 9 Sep 2013 20:25:29 +0000 (16:25 -0400)]
Introduce InvalidCommandId.

This allows a 32-bit field to represent an *optional* command ID
without a separate flag bit.

Andres Freund

11 years agoReturn error if allocation of new element was not possible.
Michael Meskes [Sun, 8 Sep 2013 10:59:43 +0000 (12:59 +0200)]
Return error if allocation of new element was not possible.

Found by Coverity.

11 years agoClose file to no leak file descriptor memory. Found by Coverity.
Michael Meskes [Sun, 8 Sep 2013 10:49:54 +0000 (12:49 +0200)]
Close file to no leak file descriptor memory. Found by Coverity.

11 years agointarray: return empty zero-dimensional array for an empty array
Bruce Momjian [Sat, 7 Sep 2013 15:44:33 +0000 (11:44 -0400)]
intarray:  return empty zero-dimensional array for an empty array

Previously a one-dimensional empty array was returned, but its text
representation matched a zero-dimensional array, and there is no way to
dump/reload a one-dimensional empty array.

BACKWARD INCOMPATIBILITY

Per report from elein

11 years agoDon't VALGRIND_PRINTF() each query string.
Noah Misch [Fri, 6 Sep 2013 23:42:00 +0000 (19:42 -0400)]
Don't VALGRIND_PRINTF() each query string.

Doing so was helpful for some Valgrind usage and distracting for other
usage.  One can achieve the same effect by changing log_statement and
pointing both PostgreSQL and Valgrind logging to stderr.

Per gripe from Andres Freund.

11 years agoEliminate pg_rewrite.ev_attr column and related dead code.
Kevin Grittner [Thu, 5 Sep 2013 19:03:43 +0000 (14:03 -0500)]
Eliminate pg_rewrite.ev_attr column and related dead code.

Commit 95ef6a344821655ce4d0a74999ac49dd6af6d342 removed the
ability to create rules on an individual column as of 7.3, but
left some residual code which has since been useless.  This cleans
up that dead code without any change in behavior other than
dropping the useless column from the catalog.

11 years agoMake catalog cache hash tables resizeable.
Heikki Linnakangas [Thu, 5 Sep 2013 16:47:56 +0000 (19:47 +0300)]
Make catalog cache hash tables resizeable.

If the hash table backing a catalog cache becomes too full (fillfactor > 2),
enlarge it. A new buckets array, double the size of the old, is allocated,
and all entries in the old hash are moved to the right bucket in the new
hash.

This has two benefits. First, cache lookups don't get so expensive when
there are lots of entries in a cache, like if you access hundreds of
thousands of tables. Second, we can make the (initial) sizes of the caches
much smaller, which saves memory.

This patch dials down the initial sizes of the catcaches. The new sizes are
chosen so that a backend that only runs a few basic queries still won't need
to enlarge any of them.

11 years agoRevert WAL posix_fallocate() patches.
Jeff Davis [Thu, 5 Sep 2013 06:43:41 +0000 (23:43 -0700)]
Revert WAL posix_fallocate() patches.

This reverts commit 269e780822abb2e44189afaccd6b0ee7aefa7ddd
and commit 5b571bb8c8d2bea610e01ae1ee7bc05adcfff528.

Unfortunately, the initial patch had insufficient performance testing,
and resulted in a regression.

Per report by Thom Brown.

11 years agoImprove Range Types and Exclusion Constraints example.
Jeff Davis [Thu, 5 Sep 2013 06:30:27 +0000 (23:30 -0700)]
Improve Range Types and Exclusion Constraints example.

Make the examples self-contained to avoid confusion. Per bug report
8367 from KOIZUMI Satoru.