]> granicus.if.org Git - postgresql/log
postgresql
13 years agoRethink order of operations for dumping extension member objects.
Tom Lane [Wed, 9 Feb 2011 19:05:34 +0000 (14:05 -0500)]
Rethink order of operations for dumping extension member objects.

My original idea of doing extension member identification during
getDependencies() didn't work correctly: we have to mark member tables as
not-to-be-dumped rather earlier than that, else their subsidiary objects
like indexes get dumped anyway.  Rearrange code to mark them early enough.

13 years agoImplement "ALTER EXTENSION ADD object".
Tom Lane [Wed, 9 Feb 2011 16:55:32 +0000 (11:55 -0500)]
Implement "ALTER EXTENSION ADD object".

This is an essential component of making the extension feature usable;
first because it's needed in the process of converting an existing
installation containing "loose" objects of an old contrib module into
the extension-based world, and second because we'll have to use it
in pg_dump --binary-upgrade, as per recent discussion.

Loosely based on part of Dimitri Fontaine's ALTER EXTENSION UPGRADE
patch.

13 years agoRemove more SGML tabs.
Bruce Momjian [Wed, 9 Feb 2011 13:16:49 +0000 (08:16 -0500)]
Remove more SGML tabs.

13 years agoRemove tabs in SGML file.
Bruce Momjian [Wed, 9 Feb 2011 13:15:38 +0000 (08:15 -0500)]
Remove tabs in SGML file.

13 years agoFix allocation of RW-conflict pool in the new predicate lock manager, and
Heikki Linnakangas [Wed, 9 Feb 2011 10:15:08 +0000 (12:15 +0200)]
Fix allocation of RW-conflict pool in the new predicate lock manager, and
also take the RW-conflict pool into account in the PredicateLockShmemSize()
estimate.

13 years agoImplement NOWAIT option for BASE_BACKUP command
Magnus Hagander [Wed, 9 Feb 2011 09:59:53 +0000 (10:59 +0100)]
Implement NOWAIT option for BASE_BACKUP command

Specifying this option makes the server not wait for the
xlog to be archived, or emit a warning that it can't,
instead leaving the responsibility with the client.

This is useful when the log is being streamed using
the streaming protocol in parallel with the backup,
without having log archiving enabled.

13 years agoSuppress some compiler warnings in recent commits.
Tom Lane [Tue, 8 Feb 2011 23:12:17 +0000 (18:12 -0500)]
Suppress some compiler warnings in recent commits.

Older versions of gcc tend to throw "variable might be clobbered by
`longjmp' or `vfork'" warnings whenever a variable is assigned in more than
one place and then used after the end of a PG_TRY block.  That's reasonably
easy to work around in execute_extension_script, and the overhead of
unconditionally saving/restoring the GUC variables seems unlikely to be a
serious concern.

Also clean up logic in ATExecValidateConstraint to make it easier to read
and less likely to provoke "variable might be used uninitialized in this
function" warnings.

13 years agoFix merge conflict.
Tom Lane [Tue, 8 Feb 2011 21:22:20 +0000 (16:22 -0500)]
Fix merge conflict.

13 years agoCore support for "extensions", which are packages of SQL objects.
Tom Lane [Tue, 8 Feb 2011 21:08:41 +0000 (16:08 -0500)]
Core support for "extensions", which are packages of SQL objects.

This patch adds the server infrastructure to support extensions.
There is still one significant loose end, namely how to make it play nice
with pg_upgrade, so I am not yet committing the changes that would make
all the contrib modules depend on this feature.

In passing, fix a disturbingly large amount of breakage in
AlterObjectNamespace() and callers.

Dimitri Fontaine, reviewed by Anssi Kääriäinen,
Itagaki Takahiro, Tom Lane, and numerous others

13 years agoPer-column collation support
Peter Eisentraut [Tue, 8 Feb 2011 21:04:18 +0000 (23:04 +0200)]
Per-column collation support

This adds collation support for columns and domains, a COLLATE clause
to override it per expression, and B-tree index support.

Peter Eisentraut
reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch

13 years agoFix typo, by Kevin Grittner.
Heikki Linnakangas [Tue, 8 Feb 2011 19:47:38 +0000 (21:47 +0200)]
Fix typo, by Kevin Grittner.

13 years agoContinue long tradition of bumping the catalog version a little late.
Simon Riggs [Tue, 8 Feb 2011 19:44:50 +0000 (19:44 +0000)]
Continue long tradition of bumping the catalog version a little late.

13 years agoNamed restore points in recovery. Users can record named points, then
Simon Riggs [Tue, 8 Feb 2011 19:39:08 +0000 (19:39 +0000)]
Named restore points in recovery. Users can record named points, then
new recovery.conf parameter recovery_target_name allows PITR to
specify named points as recovery targets.

Jaime Casanova, reviewed by Euler Taveira de Oliveira, plus minor edits

13 years agoBasic Recovery Control functions for use in Hot Standby. Pause, Resume,
Simon Riggs [Tue, 8 Feb 2011 18:30:22 +0000 (18:30 +0000)]
Basic Recovery Control functions for use in Hot Standby. Pause, Resume,
Status check functions only. Also, new recovery.conf parameter to
pause_at_recovery_target, default on.

Simon Riggs, reviewed by Fujii Masao

13 years agoUINT64_MAX isn't defined on MSVC.
Heikki Linnakangas [Tue, 8 Feb 2011 16:14:26 +0000 (18:14 +0200)]
UINT64_MAX isn't defined on MSVC.

13 years agoRemove rare corner case for data loss when triggering standby server.
Simon Riggs [Tue, 8 Feb 2011 14:38:02 +0000 (14:38 +0000)]
Remove rare corner case for data loss when triggering standby server.
If the standby was streaming when trigger file arrives, check also in the
archive for additional WAL files. This is a corner case since it is
unlikely that we would trigger a failover while the master is still
available and sending data to standby, while at the same time running in
archive mode and also while the streaming standby has fallen behind archive.
Someone would eventually be unlucky; we must plug all gaps however small.

Fujii Masao

13 years agoExtend ALTER TABLE to allow Foreign Keys to be added without initial validation.
Simon Riggs [Tue, 8 Feb 2011 12:23:20 +0000 (12:23 +0000)]
Extend ALTER TABLE to allow Foreign Keys to be added without initial validation.
FK constraints that are marked NOT VALID may later be VALIDATED, which uses an
ShareUpdateExclusiveLock on constraint table and RowShareLock on referenced
table. Significantly reduces lock strength and duration when adding FKs.
New state visible from psql.

Simon Riggs, with reviews from Marko Tiikkaja and Robert Haas

13 years agoFix copy-pasto in description of pg_serial, and silence compiler warning
Heikki Linnakangas [Tue, 8 Feb 2011 07:03:08 +0000 (09:03 +0200)]
Fix copy-pasto in description of pg_serial, and silence compiler warning
about uninitialized field you get on some compilers.

13 years agoAvoid having autovacuum workers wait for relation locks.
Robert Haas [Tue, 8 Feb 2011 03:04:29 +0000 (22:04 -0500)]
Avoid having autovacuum workers wait for relation locks.

Waiting for relation locks can lead to starvation - it pins down an
autovacuum worker for as long as the lock is held.  But if we're doing
an anti-wraparound vacuum, then we still wait; maintenance can no longer
be put off.

To assist with troubleshooting, if log_autovacuum_min_duration >= 0,
we log whenever an autovacuum or autoanalyze is skipped for this reason.

Per a gripe by Josh Berkus, and ensuing discussion.

13 years agoOops, forgot to bump catversion in the Serializable Snapshot Isolation patch.
Heikki Linnakangas [Mon, 7 Feb 2011 22:24:23 +0000 (00:24 +0200)]
Oops, forgot to bump catversion in the Serializable Snapshot Isolation patch.

I thought we didn't need that, but then I remembered that it added a new
SLRU subdirectory, pg_serial. While we're at it, document what pg_serial is.

13 years agoImplement genuine serializable isolation level.
Heikki Linnakangas [Mon, 7 Feb 2011 21:46:51 +0000 (23:46 +0200)]
Implement genuine serializable isolation level.

Until now, our Serializable mode has in fact been what's called Snapshot
Isolation, which allows some anomalies that could not occur in any
serialized ordering of the transactions. This patch fixes that using a
method called Serializable Snapshot Isolation, based on research papers by
Michael J. Cahill (see README-SSI for full references). In Serializable
Snapshot Isolation, transactions run like they do in Snapshot Isolation,
but a predicate lock manager observes the reads and writes performed and
aborts transactions if it detects that an anomaly might occur. This method
produces some false positives, ie. it sometimes aborts transactions even
though there is no anomaly.

To track reads we implement predicate locking, see storage/lmgr/predicate.c.
Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared
memory is finite, so when a transaction takes many tuple-level locks on a
page, the locks are promoted to a single page-level lock, and further to a
single relation level lock if necessary. To lock key values with no matching
tuple, a sequential scan always takes a relation-level lock, and an index
scan acquires a page-level lock that covers the search key, whether or not
there are any matching keys at the moment.

A predicate lock doesn't conflict with any regular locks or with another
predicate locks in the normal sense. They're only used by the predicate lock
manager to detect the danger of anomalies. Only serializable transactions
participate in predicate locking, so there should be no extra overhead for
for other transactions.

Predicate locks can't be released at commit, but must be remembered until
all the transactions that overlapped with it have completed. That means that
we need to remember an unbounded amount of predicate locks, so we apply a
lossy but conservative method of tracking locks for committed transactions.
If we run short of shared memory, we overflow to a new "pg_serial" SLRU
pool.

We don't currently allow Serializable transactions in Hot Standby mode.
That would be hard, because even read-only transactions can cause anomalies
that wouldn't otherwise occur.

Serializable isolation mode now means the new fully serializable level.
Repeatable Read gives you the old Snapshot Isolation level that we have
always had.

Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and
Anssi Kääriäinen

13 years agoFix a comment for MergeAttributes.
Itagaki Takahiro [Mon, 7 Feb 2011 07:51:39 +0000 (16:51 +0900)]
Fix a comment for MergeAttributes.
We forgot to adjust it when we changed relistemp to relpersistence.

13 years agoSupply now required HeUTF8 macro for plperl where it's missing, per buildfarm results.
Andrew Dunstan [Mon, 7 Feb 2011 02:36:56 +0000 (21:36 -0500)]
Supply now required HeUTF8 macro for plperl where it's missing, per buildfarm results.

13 years agoFix error messages for FreeFile in COPY command.
Itagaki Takahiro [Mon, 7 Feb 2011 01:46:56 +0000 (10:46 +0900)]
Fix error messages for FreeFile in COPY command.
They are extracted from COPY API patch.

suggested by Noah Misch

13 years agoremove tags.
Bruce Momjian [Sun, 6 Feb 2011 23:32:27 +0000 (18:32 -0500)]
remove tags.

13 years agoForce strings passed to and from plperl to be in UTF8 encoding.
Andrew Dunstan [Sun, 6 Feb 2011 22:29:26 +0000 (17:29 -0500)]
Force strings passed to and from plperl to be in UTF8 encoding.

String are converted to UTF8 on the way into perl and to the
database encoding on the way back. This avoids a number of
observed anomalies, and ensures Perl a consistent view of the
world.

Some minor code cleanups are also accomplished.

Alex Hunsaker, reviewed by Andy Colson.

13 years agoAdjust libpq docs to be clearer about 'hostaddr' usage by rewording and
Bruce Momjian [Sun, 6 Feb 2011 17:04:42 +0000 (12:04 -0500)]
Adjust libpq docs to be clearer about 'hostaddr' usage by rewording and
using an itemized list.

13 years agoRename macro DECIMAL to DECIMAL_T to help pgindent; this is already
Bruce Momjian [Sun, 6 Feb 2011 15:46:15 +0000 (10:46 -0500)]
Rename macro DECIMAL to DECIMAL_T to help pgindent;  this is already
done for a few other macros in that file, for other reasons.  I also
remove pgindent/README mention of the file.

13 years agoIDENTIFY_SYSTEM now returns 3 fields, not 2
Magnus Hagander [Sun, 6 Feb 2011 06:46:14 +0000 (07:46 +0100)]
IDENTIFY_SYSTEM now returns 3 fields, not 2

13 years agoTighten ALTER FOREIGN TABLE .. SET DATA TYPE checks.
Robert Haas [Sun, 6 Feb 2011 05:26:27 +0000 (00:26 -0500)]
Tighten ALTER FOREIGN TABLE .. SET DATA TYPE checks.

If the foreign table's rowtype is being used as the type of a column in
another table, we can't just up and change its data type.  This was
already checked for composite types and ordinary tables, but we
previously failed to enforce it for foreign tables.

13 years agoAdd C comment about why older compilers complain about basebackup.c's
Bruce Momjian [Sat, 5 Feb 2011 04:27:45 +0000 (23:27 -0500)]
Add C comment about why older compilers complain about basebackup.c's
longjump.

13 years agoAttempt to unbreak MSVC builds after pipe.c move.
Andrew Dunstan [Sat, 5 Feb 2011 01:49:39 +0000 (20:49 -0500)]
Attempt to unbreak MSVC builds after pipe.c move.

13 years agoAdd doc comment that installation.sgml can't use xrefs.
Bruce Momjian [Fri, 4 Feb 2011 22:30:22 +0000 (17:30 -0500)]
Add doc comment that installation.sgml can't use xrefs.

13 years agoClarify comment in ATRewriteTable().
Robert Haas [Fri, 4 Feb 2011 21:14:54 +0000 (16:14 -0500)]
Clarify comment in ATRewriteTable().

Make sure it's clear that the prohibition on adding a column with a default
when the rowtype is used elsewhere is intentional, and be a bit more
explicit about the other cases where we perform this check.

13 years agoMove pipe.c into the backend.
Robert Haas [Fri, 4 Feb 2011 20:52:21 +0000 (15:52 -0500)]
Move pipe.c into the backend.

It's full of backend-specific error reporting, so it's neither possible
nor necessary for this to be used from frontend code.

13 years agoIn docs, move PQrequestCancel() deprecation mention up to match other
Bruce Momjian [Fri, 4 Feb 2011 19:23:01 +0000 (14:23 -0500)]
In docs, move PQrequestCancel() deprecation mention up to match other
libpq doc mentions.

13 years agoAvoid including postgres.h in frontend compiles of src/port.
Robert Haas [Fri, 4 Feb 2011 18:11:53 +0000 (13:11 -0500)]
Avoid including postgres.h in frontend compiles of src/port.

This isn't kosher, and doesn't play nicely with my recent changes to the
Makefile in this directory.

13 years agoUpdate ALTER TABLE docs to mention using VACUUM FULL for rewrites.
Robert Haas [Fri, 4 Feb 2011 18:08:56 +0000 (13:08 -0500)]
Update ALTER TABLE docs to mention using VACUUM FULL for rewrites.

Remove the claim that ALTER TABLE .. SET DATA TYPE is the fastest way of
rewriting a table, since it no longer is.

Noah Misch and Robert Haas, based on a suggestion from Tom Lane.

13 years agoUse $(MAKE) rather than make.
Robert Haas [Fri, 4 Feb 2011 14:48:32 +0000 (09:48 -0500)]
Use $(MAKE) rather than make.

Per buildfarm.

13 years agoMake handling of errcodes.h more consistent with other generated headers.
Robert Haas [Fri, 4 Feb 2011 14:28:06 +0000 (09:28 -0500)]
Make handling of errcodes.h more consistent with other generated headers.

This fixes make distprep, and seems more robust in other ways as well.
Some special handling is required because errcodes.txt is needed by
some stuff in src/port, but just by src/backend as is the case for the
other generated headers.

While I'm at it, fix a few other things that were overlooked in the
original patch.

13 years agoAttempt to un-break the documentation build again
Magnus Hagander [Fri, 4 Feb 2011 14:23:34 +0000 (15:23 +0100)]
Attempt to un-break the documentation build again

Another case of <xref linkend> in the documentation that
builds INSTALL, which is not allowed.

13 years agoUnbreak 'configure' followed immediately by 'make install'.
Robert Haas [Fri, 4 Feb 2011 12:03:19 +0000 (07:03 -0500)]
Unbreak 'configure' followed immediately by 'make install'.

More fallout from ddfe26f6441c24660595c5efe5fd0bd3974cdc5c.

Report by Fujii Masao.

13 years agoUse single quotes when there are backslashes in the filename
Magnus Hagander [Fri, 4 Feb 2011 09:52:25 +0000 (10:52 +0100)]
Use single quotes when there are backslashes in the filename

In the hope of unbreaking the buildfarm

13 years agoUnbreak the VPATH build.
Robert Haas [Fri, 4 Feb 2011 05:07:08 +0000 (00:07 -0500)]
Unbreak the VPATH build.

My commit ddfe26f6441c24660595c5efe5fd0bd3974cdc5c of 2010-02-03 broke it.

Per buildfarm.

13 years agoPreserve copyright notice from old errcodes.h file.
Robert Haas [Fri, 4 Feb 2011 03:38:02 +0000 (22:38 -0500)]
Preserve copyright notice from old errcodes.h file.

13 years agoAvoid maintaining three separate copies of the error codes list.
Robert Haas [Fri, 4 Feb 2011 03:32:49 +0000 (22:32 -0500)]
Avoid maintaining three separate copies of the error codes list.

src/pl/plpgsql/src/plerrcodes.h, src/include/utils/errcodes.h, and a
big chunk of errcodes.sgml are now automatically generated from a single
file, src/backend/utils/errcodes.txt.

Jan Urbański, reviewed by Tom Lane.

13 years agoALTER TABLE sometimes takes only ShareUpdateExclusiveLock.
Robert Haas [Thu, 3 Feb 2011 20:14:27 +0000 (15:14 -0500)]
ALTER TABLE sometimes takes only ShareUpdateExclusiveLock.

Along the way, be more consistent about the wording we use here.

13 years agoIn docs, PL is Procedural Language, not Programming Language.
Bruce Momjian [Thu, 3 Feb 2011 16:54:07 +0000 (11:54 -0500)]
In docs, PL is Procedural Language, not Programming Language.

Satoshi Nagayasu

13 years agoSimplify code used in is_absolute_path() macro; also add comment about
Bruce Momjian [Thu, 3 Feb 2011 15:46:31 +0000 (10:46 -0500)]
Simplify code used in is_absolute_path() macro;  also add comment about
'E:abc' Win32 path handling.

13 years agoInclude more status information in walsender results
Magnus Hagander [Thu, 3 Feb 2011 12:46:23 +0000 (13:46 +0100)]
Include more status information in walsender results

Add the current xlog insert location to the response of
IDENTIFY_SYSTEM, and adds result sets containing start
and stop location of backups to BASE_BACKUP responses.

13 years agoFix typo.
Magnus Hagander [Thu, 3 Feb 2011 10:24:47 +0000 (11:24 +0100)]
Fix typo.

Thom Brown

13 years agoFurther sepgsql documentation cleanup.
Robert Haas [Thu, 3 Feb 2011 05:23:44 +0000 (00:23 -0500)]
Further sepgsql documentation cleanup.

13 years agosepgsql doc fix
Robert Haas [Thu, 3 Feb 2011 04:47:45 +0000 (23:47 -0500)]
sepgsql doc fix

KaiGai Kohei

13 years agoMinor sepgsql regression test fixes.
Robert Haas [Thu, 3 Feb 2011 04:46:51 +0000 (23:46 -0500)]
Minor sepgsql regression test fixes.

13 years agoVarious sepgsql corrections.
Robert Haas [Thu, 3 Feb 2011 04:39:43 +0000 (23:39 -0500)]
Various sepgsql corrections.

KaiGai Kohei

13 years agoRename function to first_path_var_separator() to clarify it works with
Bruce Momjian [Thu, 3 Feb 2011 03:49:54 +0000 (22:49 -0500)]
Rename function to first_path_var_separator() to clarify it works with
path variables, not directory paths.

13 years agoClearify macro IS_PATH_VAR_SEP in path.c so it is clear this is a path
Bruce Momjian [Thu, 3 Feb 2011 03:28:14 +0000 (22:28 -0500)]
Clearify macro IS_PATH_VAR_SEP in path.c so it is clear this is a path
variable, not a directory path.

13 years agoLog restartpoints in the same fashion as checkpoints.
Robert Haas [Thu, 3 Feb 2011 02:08:53 +0000 (21:08 -0500)]
Log restartpoints in the same fashion as checkpoints.

Prior to 9.0, restartpoints never created, deleted, or recycled WAL
files, but now they can.  This code makes log_checkpoints treat
checkpoints and restartpoints symmetrically.  It also adjusts up
the documentation of the parameter to mention restartpoints.

Fujii Masao.  Docs by me, as suggested by Itagaki Takahiro.

13 years agoRepair multiple breakage in Windows-specific code for appending '.exe'.
Tom Lane [Thu, 3 Feb 2011 01:26:43 +0000 (20:26 -0500)]
Repair multiple breakage in Windows-specific code for appending '.exe'.

13 years agoClean up missed change to plpython expected files.
Tom Lane [Thu, 3 Feb 2011 01:16:27 +0000 (20:16 -0500)]
Clean up missed change to plpython expected files.

13 years agoMark all GUC variables with <varname> markup, rather than <literal>.
Bruce Momjian [Wed, 2 Feb 2011 23:06:38 +0000 (18:06 -0500)]
Mark all GUC variables with <varname> markup, rather than <literal>.

13 years agoFix wrong verb in pg_upgrade text message, per Haas.
Bruce Momjian [Wed, 2 Feb 2011 21:53:12 +0000 (16:53 -0500)]
Fix wrong verb in pg_upgrade text message, per Haas.

13 years agoSimplify pg_upgrade checking of executable permissions.
Bruce Momjian [Wed, 2 Feb 2011 20:40:20 +0000 (15:40 -0500)]
Simplify pg_upgrade checking of executable permissions.

13 years agoWrap PL/Python SPI calls into subtransactions
Peter Eisentraut [Wed, 2 Feb 2011 20:06:10 +0000 (22:06 +0200)]
Wrap PL/Python SPI calls into subtransactions

This allows the language-specific try/catch construct to catch and
handle exceptions arising from SPI calls, matching the behavior of
other PLs.

As an additional bonus you no longer get all the ugly "unrecognized
error in PLy_spi_execute_query" errors.

Jan Urbański, reviewed by Steve Singer

13 years agoAdd comment on why we're passing a useless 'false' to the plperl function compiler.
Andrew Dunstan [Wed, 2 Feb 2011 17:45:42 +0000 (12:45 -0500)]
Add  comment on why we're passing a useless 'false' to the plperl function compiler.

It's for compatibility with modules like PostgreSQL::PLPerl::NYTProf.

13 years agoDocument that CREATE VIEW that uses "*" for the column list will not
Bruce Momjian [Tue, 1 Feb 2011 22:17:34 +0000 (17:17 -0500)]
Document that CREATE VIEW that uses "*" for the column list will not
auto-add columns later added to the base table.

13 years agoProperly capitalize hyphenated words in documentation titles.
Bruce Momjian [Tue, 1 Feb 2011 22:00:26 +0000 (17:00 -0500)]
Properly capitalize hyphenated words in documentation titles.

13 years agoClarify documentation to state that "zero_damaged_pages" does not force
Bruce Momjian [Tue, 1 Feb 2011 21:43:51 +0000 (16:43 -0500)]
Clarify documentation to state that "zero_damaged_pages" does not force
data to disk, so the table or index should be recreated before the
parameter is turned off again.

13 years agoAdd validator to PL/Python
Peter Eisentraut [Tue, 1 Feb 2011 20:53:40 +0000 (22:53 +0200)]
Add validator to PL/Python

Jan Urbański, reviewed by Hitoshi Harada

13 years agoDocument that effective cache size does not assume data remains in the
Bruce Momjian [Tue, 1 Feb 2011 20:23:35 +0000 (15:23 -0500)]
Document that effective cache size does not assume data remains in the
cache between queries.

13 years agoDocument that Slony can do upgrades easier _because_ it supports
Bruce Momjian [Tue, 1 Feb 2011 20:21:22 +0000 (15:21 -0500)]
Document that Slony can do upgrades easier _because_ it supports
replication between different Postgres major versions.

13 years agoClarify pg_upgrade install instructions, per suggestion from Robert Haas.
Bruce Momjian [Tue, 1 Feb 2011 18:57:43 +0000 (13:57 -0500)]
Clarify pg_upgrade install instructions, per suggestion from Robert Haas.

13 years agoAdd missing period "." in pg_upgrade documentation.
Bruce Momjian [Tue, 1 Feb 2011 18:53:04 +0000 (13:53 -0500)]
Add missing period "." in pg_upgrade documentation.

13 years agoAdd pg_upgrade comment for why we can't use template1 inheritance for
Bruce Momjian [Tue, 1 Feb 2011 17:22:34 +0000 (12:22 -0500)]
Add pg_upgrade comment for why we can't use template1 inheritance for
the support functions.

13 years agoSet up PLPerl trigger data using C code instead of Perl code.
Andrew Dunstan [Tue, 1 Feb 2011 14:43:25 +0000 (09:43 -0500)]
Set up PLPerl trigger data using C code instead of Perl code.

This is an efficiency change, and means we now no longer have to run
"out $_TD; local $_TD = shift;", which was especially pointless in the case of
non-trigger functions where the passed value was always undef anyway.

A tiny open issue is whether we should get rid of the $prolog argument of
mkfunc, and the corresponding pushed value, which is now just a constant "false".

Tim Bunce, reviewed by Alex Hunsaker.

13 years agoUndefine setlocale() macro on Win32
Magnus Hagander [Tue, 1 Feb 2011 12:19:18 +0000 (13:19 +0100)]
Undefine setlocale() macro on Win32

New versions of libintl redefine setlocale() to a macro
which causes problems when the backend and libintl are
linked against different versions of the runtime, which
is often the case in msvc builds.

Hiroshi Inoue, slightly updated comment by me

13 years agoRe-classify ERRCODE_DATABASE_DROPPED to 57P04
Simon Riggs [Tue, 1 Feb 2011 08:44:01 +0000 (08:44 +0000)]
Re-classify ERRCODE_DATABASE_DROPPED to 57P04

13 years agoFix wrong error reports in 'number of array dimensions exceeds the
Itagaki Takahiro [Tue, 1 Feb 2011 06:21:32 +0000 (15:21 +0900)]
Fix wrong error reports in 'number of array dimensions exceeds the
maximum allowed' messages, that have reported one-less dimensions.

Alexey Klyukin

13 years agoAdd a link from client_encoding parameter to the list of character sets
Itagaki Takahiro [Tue, 1 Feb 2011 05:26:17 +0000 (14:26 +0900)]
Add a link from client_encoding parameter to the list of character sets
in documentation.

Thom Brown

13 years agoImprove docs for pg_authid encryption description with better markup and
Bruce Momjian [Tue, 1 Feb 2011 03:53:58 +0000 (22:53 -0500)]
Improve docs for pg_authid encryption description with better markup and
a mention of unencrypted passwords.

13 years agoIn pg_authid.rolpassword docs, make "md5" appear as a literal.
Bruce Momjian [Tue, 1 Feb 2011 03:28:42 +0000 (22:28 -0500)]
In pg_authid.rolpassword docs, make "md5" appear as a literal.

13 years agoSupport LIKE and ILIKE index searches via contrib/pg_trgm indexes.
Tom Lane [Tue, 1 Feb 2011 02:33:55 +0000 (21:33 -0500)]
Support LIKE and ILIKE index searches via contrib/pg_trgm indexes.

Unlike Btree-based LIKE optimization, this works for non-left-anchored
search patterns.  The effectiveness of the search depends on how many
trigrams can be extracted from the pattern.  (The worst case, with no
trigrams, degrades to a full-table scan, so this isn't a panacea.  But
it can be very useful.)

Alexander Korotkov, reviewed by Jan Urbanski

13 years agoFix pg_upgrade to create pg_authid restore functions in the 'postgres'
Bruce Momjian [Tue, 1 Feb 2011 01:15:43 +0000 (20:15 -0500)]
Fix pg_upgrade to create pg_authid restore functions in the 'postgres'
database, not in the os-user database, per report from Magnus.

13 years agoCreate new errcode for recovery conflict caused by db drop on master.
Simon Riggs [Tue, 1 Feb 2011 00:20:53 +0000 (00:20 +0000)]
Create new errcode for recovery conflict caused by db drop on master.
Previously reported as ERRCODE_ADMIN_SHUTDOWN, this case is now
reported as ERRCODE_T_R_DATABASE_DROPPED. No message text change.
Unlikely to happen on most servers, so low impact change to allow
session poolers to correctly handle this situation.

Tatsuo Ishii, edits by me, review by Robert Haas

13 years agoRemove spurious word, spotted by Thom Brown.
Heikki Linnakangas [Mon, 31 Jan 2011 20:51:51 +0000 (22:51 +0200)]
Remove spurious word, spotted by Thom Brown.

13 years agoUpdate pg_upgrade docs to mention its use in a less risk-warning way,
Bruce Momjian [Mon, 31 Jan 2011 20:21:51 +0000 (15:21 -0500)]
Update pg_upgrade docs to mention its use in a less risk-warning way,
and update the pg_upgrade docs to mention its reliance on no changes to
the storage format (the later based on Robert Haas's patch).

13 years agoFix SGML markup for upgrade doc addition.
Bruce Momjian [Mon, 31 Jan 2011 19:58:49 +0000 (14:58 -0500)]
Fix SGML markup for upgrade doc addition.

13 years agoFix error code for canceling statement due to conflict with recovery.
Simon Riggs [Mon, 31 Jan 2011 19:20:23 +0000 (19:20 +0000)]
Fix error code for canceling statement due to conflict with recovery.
All retryable conflict errors now have an error code that indicates that
a retry is possible, correcting my incomplete fix of 2010/05/12

Tatsuo Ishii and Simon Riggs, input from Robert Haas and Florian Pflug

13 years agoUpdate docs on building for Windows to accomodate current reality.
Andrew Dunstan [Mon, 31 Jan 2011 18:40:45 +0000 (13:40 -0500)]
Update docs on building for Windows to accomodate current reality.

Document how to build 64 bit Windows binaries using the MinGW64 tool set.
Remove recommendation against using Mingw as a build platform.
Be more specific about when Cygwin is useful and when it's not,  in
particular note its usefulness for running psql, and
add a note about building on Cygwin in non-C locales.

Per recent discussions.

13 years agoMove upgrade instructions into its own section under "Server Setup and
Bruce Momjian [Mon, 31 Jan 2011 17:32:03 +0000 (12:32 -0500)]
Move upgrade instructions into its own section under "Server Setup and
Operation", merged from upgrade sections in "Installation from Source
Code" and "Backup and Restore".  This now gives a single place for all
upgrade information.

13 years agoFix typo
Heikki Linnakangas [Mon, 31 Jan 2011 16:29:38 +0000 (18:29 +0200)]
Fix typo

13 years agoSupport multiple concurrent pg_basebackup backups.
Heikki Linnakangas [Mon, 31 Jan 2011 16:13:01 +0000 (18:13 +0200)]
Support multiple concurrent pg_basebackup backups.

With this patch, pg_basebackup doesn't write a backup_label file in the
data directory, so it doesn't interfere with a pg_start/stop_backup() based
backup anymore. backup_label is still included in the backup, but it is
injected directly into the tar stream.

Heikki Linnakangas, reviewed by Fujii Masao and Magnus Hagander.

13 years agoFix typo
Andrew Dunstan [Mon, 31 Jan 2011 01:34:05 +0000 (20:34 -0500)]
Fix typo

13 years agoEnable building with the Mingw64 compiler.
Andrew Dunstan [Mon, 31 Jan 2011 00:56:46 +0000 (19:56 -0500)]
Enable building with the Mingw64 compiler.

This can be used to build 64 bit Windows binaries, not only on 64 bit
Windows but on supported cross-compiling hosts including 32 bit Windows,
Cygwin, Darwin and Linux.

13 years agoMake reduce_outer_joins() smarter about semijoins.
Tom Lane [Sun, 30 Jan 2011 22:04:31 +0000 (17:04 -0500)]
Make reduce_outer_joins() smarter about semijoins.

reduce_outer_joins() mistakenly treated a semijoin like a left join for
purposes of deciding whether not-null constraints created by the join's
quals could be passed down into the join's left-hand side (possibly
resulting in outer-join simplification there).  Actually, semijoin works
like inner join for this purpose, ie, we do not need to see any rows that
can't possibly satisfy the quals.  Hence, two-line fix to treat semi and
inner joins alike.  Per observation by Andres Freund about a performance
gripe from Yazan Suleiman.

Back-patch to 8.4, since this oversight has been there since the current
handling of semijoins was implemented.

13 years agoAdd option to include WAL in base backup
Magnus Hagander [Sun, 30 Jan 2011 20:30:09 +0000 (21:30 +0100)]
Add option to include WAL in base backup

When included, this makes the base backup a complete working
"clone" of the initial database, ready to have a postmaster
started against it without the need to set up any log archiving
or similar.

Magnus Hagander, reviewed by Fujii Masao and Heikki Linnakangas

13 years agoProperly capitalize documentation headings; some only had initial-word
Bruce Momjian [Sat, 29 Jan 2011 18:00:18 +0000 (13:00 -0500)]
Properly capitalize documentation headings;  some only had initial-word
capitalization.

13 years agoMake installation.sgml build standalone again.
Tom Lane [Sat, 29 Jan 2011 17:51:44 +0000 (12:51 -0500)]
Make installation.sgml build standalone again.

We must not try to link to sections that aren't part of the standalone
"make INSTALL" build.  Corrects build failure introduced in commit
159e3d86292cfec2a2828f9f69ac7a6cb1be242d.

13 years agoUse GSSAPI library for SSPI auth, when native SSPI is not available
Magnus Hagander [Sat, 29 Jan 2011 16:06:55 +0000 (17:06 +0100)]
Use GSSAPI library for SSPI auth, when native SSPI is not available

This allows non-Windows clients to connect to a Windows
server with SSPI authentication.

Christian Ullrich, largely modified by me

13 years agoTry to avoid running with a full fsync request queue.
Robert Haas [Sat, 29 Jan 2011 13:08:41 +0000 (08:08 -0500)]
Try to avoid running with a full fsync request queue.

When we need to insert a new entry and the queue is full, compact the
entire queue in the hopes of making room for the new entry.  Doing this
on every insertion might worsen contention on BgWriterCommLock, but
when the queue it's full, it's far better than allowing the backend to
perform its own fsync, per testing by Greg Smith as reported in
http://archives.postgresql.org/pgsql-hackers/2011-01/msg02665.php

Original idea from Greg Smith.  Patch by me.  Review by Chris Browne
and Greg Smith