Commit Graph

30883 Commits

Author SHA1 Message Date
Heikki Linnakangas
3522217b63 Oops, the timeout argument to WaitLatchOrSocket is in microseconds, not
milliseconds.
2010-09-14 13:35:14 +00:00
Heikki Linnakangas
06e8c8e3ec Don't warn about an in-progress online backup, when we're recovering from
an online backup instead of performing one. pg_ctl can detect that by
checking if recovery.conf exists.

Backup label file is renamed away early in recovery, so the window where
backup label exists during recovery is normally very small, but you can run
into it e.g if restore_command is set incorrectly and the startup process
never finds even the first WAL segment containing the checkpoint record to
start recovery from.

Fujii Masao with comments by me.
2010-09-14 08:05:33 +00:00
Heikki Linnakangas
c1ba7db6c1 Add a comment noting that the owner_pid test in OwnLatch is just a sanity
check, per request by Jeff Davis.
2010-09-13 18:01:20 +00:00
Robert Haas
d7a541a9a7 Elaborate on what gets stored in pg_authid.rolpasswd.
Also, add cross-reference from pg_shadow.passwd to pg_authid.rolpasswd and
fix a bit of markup I muffed in my previous commit.

Per discussion with Josh Kupershmidt.
2010-09-13 17:02:34 +00:00
Heikki Linnakangas
d1c33ccf62 Remove prototype for non-existent function from walreceiver.h. Tidy up by
separating prototypes for functions in walreceiver.c and walreceiverfuncs.c
with comments.
2010-09-13 10:14:25 +00:00
Heikki Linnakangas
418039d3af Process options from the startup packed in walsender. Only few options
make sense for walsender, but for example application_name and client_encoding
do. We still don't apply per-role settings from pg_db_role_setting, because
that would require connecting to a database to read the table.

Fujii Masao
2010-09-13 09:00:30 +00:00
Bruce Momjian
df57a5e898 Don't try aligning comments for new archive_command Win32 doc example;
it doesn't work.

Backpatch to 9.0.X.
2010-09-13 01:35:46 +00:00
Robert Haas
1400b738a0 Link from pg_shadow docs to pg_authid docs.
Per discussion with Josh Kupershmidt.
2010-09-13 01:23:35 +00:00
Bruce Momjian
39fa4d0b31 Re-add documentation for Win32 copy syntax for archive_command.
Backpatch to 9.0.X.
2010-09-12 13:47:12 +00:00
Joe Conway
5eb15c9942 SERIALIZABLE transactions are actually implemented beneath the covers with
transaction snapshots, i.e. a snapshot registered at the beginning of
a transaction. Change variable naming and comments to reflect this reality
in preparation for a future, truly serializable mode, e.g.
Serializable Snapshot Isolation (SSI).

For the moment transaction snapshots are still used to implement
SERIALIZABLE, but hopefully not for too much longer. Patch by Kevin
Grittner and Dan Ports with review and some minor wording changes by me.
2010-09-11 18:38:58 +00:00
Heikki Linnakangas
262c71ab63 Add missing #includes, needed on some platforms. This should make
the unixware buildfarm animals happy again.
2010-09-11 16:26:04 +00:00
Heikki Linnakangas
2746e5f21d Introduce latches. A latch is a boolean variable, with the capability to
wait until it is set. Latches can be used to reliably wait until a signal
arrives, which is hard otherwise because signals don't interrupt select()
on some platforms, and even when they do, there's race conditions.

On Unix, latches use the so called self-pipe trick under the covers to
implement the sleep until the latch is set, without race conditions. On
Windows, Windows events are used.

Use the new latch abstraction to sleep in walsender, so that as soon as
a transaction finishes, walsender is woken up to immediately send the WAL
to the standby. This reduces the latency between master and standby, which
is good.

Preliminary work by Fujii Masao. The latch implementation is by me, with
helpful comments from many people.
2010-09-11 15:48:04 +00:00
Michael Meskes
81624db39a Cursor names in the backend are not case-sensitve. This change makes sure that
ecpg also does not regard cursor names as case-sensitive.

Thanks to Zoltan Boszormenyi for the patch.
2010-09-10 10:13:20 +00:00
Tom Lane
0b81c7c417 Remove obsolete claim that gzip is needed while installing PG's documentation.
It isn't, now that we ship the docs as loose files rather than a sub-tarball.

Also adjust the wording in a couple of places to make the lists of required
software read more consistently.
2010-09-09 17:19:40 +00:00
Bruce Momjian
152c626105 Doc fixes:
- remove excessive table cells
- moving function parameters into function tags rather than having
  them being considered separate
- add return type column on XML2 contrib module functions list and
  removing return types from function
- add table header to XML2 contrib parameter table

Thom Brown

Backpatch to 9.0.X.
2010-09-09 00:48:22 +00:00
Peter Eisentraut
8586306048 Add tip about building plpython 2 and 3. Fix link to Python docs. 2010-09-08 20:35:51 +00:00
Peter Eisentraut
7cd082f907 Clarify that surrogate pairs are not encoded in UTF-8 directly 2010-09-07 18:54:09 +00:00
Bruce Momjian
c5d94a34fb Modify pg_upgrade to set/restore all environment variables related to
collation/encoding to match English when reading controldata.  This now
matches the English variable setting used by pg_regress.c.

Backpatch to 9.0.X.
2010-09-07 14:10:30 +00:00
Tom Lane
a756f5ce14 GROUP BY can only infer functional dependency from non-deferrable primary keys.
Peter's original patch had this right, but I dropped the check while revising
the code to search pg_constraint instead of pg_index.  Spotted by Dean Rasheed.
2010-09-05 15:45:42 +00:00
Tom Lane
8d8d5cb612 Pad the ps_status display with nulls, not blanks, on Darwin.
A long time ago, this didn't work nicely, but it seems to work on all recent
versions of OS X.  The blank-pad method is less desirable since it results
in lots of extra space in ps' output.  Per Alexey Klyukin.
2010-09-04 17:45:56 +00:00
Tom Lane
303696c3b4 Install a data-type-based solution for protecting pg_get_expr().
Since the code underlying pg_get_expr() is not secure against malformed
input, and can't practically be made so, we need to prevent miscreants
from feeding arbitrary data to it.  We can do this securely by declaring
pg_get_expr() to take a new datatype "pg_node_tree" and declaring the
system catalog columns that hold nodeToString output to be of that type.
There is no way at SQL level to create a non-null value of type pg_node_tree.
Since the backend-internal operations that fill those catalog columns
operate below the SQL level, they are oblivious to the datatype relabeling
and don't need any changes.
2010-09-03 01:34:55 +00:00
Tom Lane
8ab6a6b456 In HEAD only, revert kluge solution for preventing misuse of pg_get_expr().
A data-type-based solution, which is much cleaner and more bulletproof,
will follow shortly.  It seemed best to make this a separate commit though.
2010-09-03 01:26:52 +00:00
Tom Lane
c89a1198f9 9.1alpha1 release notes. 2010-09-02 17:30:06 +00:00
Tom Lane
9b3c19d8f2 Clean up description of ecpg's dtcvfmtasc function.
Per KOIZUMI Satoru.
2010-09-02 14:57:04 +00:00
Tom Lane
f3b330ec01 Clean up some bad grammar and punctuation in description of ecpg's decimal
type.  Per KOIZUMI Satoru.
2010-09-02 14:46:44 +00:00
Tom Lane
9513918c6c Fix up flushing of composite-type typcache entries to be driven directly by
SI invalidation events, rather than indirectly through the relcache.

In the previous coding, we had to flush a composite-type typcache entry
whenever we discarded the corresponding relcache entry.  This caused problems
at least when testing with RELCACHE_FORCE_RELEASE, as shown in recent report
from Jeff Davis, and might result in real-world problems given the kind of
unexpected relcache flush that that test mechanism is intended to model.

The new coding decouples relcache and typcache management, which is a good
thing anyway from a structural perspective.  The cost is that we have to
search the typcache linearly to find entries that need to be flushed.  There
are a couple of ways we could avoid that, but at the moment it's not clear
it's worth any extra trouble, because the typcache contains very few entries
in typical operation.

Back-patch to 8.2, the same as some other recent fixes in this general area.
The patch could be carried back to 8.0 with some additional work, but given
that it's only hypothetical whether we're fixing any problem observable in
the field, it doesn't seem worth the work now.
2010-09-02 03:16:46 +00:00
Robert Haas
f3c903f867 Fix typo. Pointed out by Kevin Grittner. 2010-09-02 02:52:14 +00:00
Tom Lane
21076076e9 Clarify documentation of handling of null arguments for aggregates.
Per discussion.
2010-09-01 18:22:29 +00:00
Tom Lane
4ff6856cb1 Improve release notes' description of Teodor's fixes for polygon overlaps
and contains operators.
2010-09-01 15:14:42 +00:00
Alvaro Herrera
e4b96380c3 Add missing markup for translatability 2010-08-31 05:57:54 +00:00
Tom Lane
174a51332f Cosmetic fixes for KnownAssignedXidsGetOldestXmin, per Fujii Masao. 2010-08-30 17:30:44 +00:00
Tom Lane
eb36d1ad51 Fix oversight in RelFileNodeBackend patch: CreateFakeRelcacheEntry needs to
initialize the rd_backend field of a fake Relation entry correctly.
Fortunately, that is easy, since only non-temp relations should ever be
mentioned in the WAL stream.
2010-08-30 16:46:23 +00:00
Simon Riggs
ac791d3ca1 Fix misleading DEBUG2 issued during RemoveOldXlogFiles() 2010-08-30 15:37:41 +00:00
Simon Riggs
e72f15ed60 Truncate subtrans after each restartpoint.
Issue reported by Harald Kolb, patch by Fujii Masao, review by me.
2010-08-30 14:22:05 +00:00
Simon Riggs
e24d1dc069 Teach GetOldestXmin() about KnownAssignedXids during recovery.
Very minor issue, though this is required for a later patch.
Reported by Heikki Linnakangas.
2010-08-30 14:16:48 +00:00
Heikki Linnakangas
e1cc96dbf0 Fix typo in comment. 2010-08-30 06:33:22 +00:00
Tom Lane
8fa30f906b Reduce PANIC to ERROR in some occasionally-reported btree failure cases.
This patch changes _bt_split() and _bt_pagedel() to throw a plain ERROR,
rather than PANIC, for several cases that are reported from the field
from time to time:
* right sibling's left-link doesn't match;
* PageAddItem failure during _bt_split();
* parent page's next child isn't right sibling during _bt_pagedel().
In addition the error messages for these cases have been made a bit
more verbose, with additional values included.

The original motivation for PANIC here was to capture core dumps for
subsequent analysis.  But with so many users whose platforms don't capture
core dumps by default, or who are unprepared to analyze them anyway, it's hard
to justify a forced database restart when we can fairly easily detect the
problems before we've reached the critical sections where PANIC would be
necessary.  It is not currently known whether the reports of these messages
indicate well-hidden bugs in Postgres, or are a result of storage-level
malfeasance; the latter possibility suggests that we ought to try to be more
robust even if there is a bug here that's ultimately found.

Backpatch to 8.2.  The code before that is sufficiently different that
it doesn't seem worth the trouble to back-port further.
2010-08-29 19:33:14 +00:00
Tom Lane
a9a999bc1a Remove obsolete remark that PQprepare() is more flexible than PREPARE.
Spotted by Dmitriy Igrishin.  Back-patch to 8.2, which is when the PREPARE
statement was improved to allow parameter types to be omitted.
2010-08-29 15:19:05 +00:00
Robert Haas
462583be1c Insert additional compiler placation into objectaddress.c.
Peter Eisentraut reports that some bits of the "address" variable
in get_object_address() give "may be used uninitialized" warnings;
this likes the only excuse his compiler could have for thinking
that's possible.
2010-08-27 21:31:19 +00:00
Peter Eisentraut
2355b69b1e Small refactoring of makeVar() from a TargetEntry 2010-08-27 20:30:08 +00:00
Robert Haas
c10575ff00 Rewrite comment code for better modularity, and add necessary locking.
Review by Alvaro Herrera, KaiGai Kohei, and Tom Lane.
2010-08-27 11:47:41 +00:00
Tom Lane
73b3bd5574 Document the existence of the socket lock file under unix_socket_directory,
which is perhaps not a terribly good spot for it but there doesn't seem to be
a better place.  Also add a source-code comment pointing out a couple reasons
for having a separate lock file.  Per suggestion from Greg Smith.
2010-08-26 22:00:19 +00:00
Tom Lane
4832291655 Explain automatic creation (or lack of it) of indexes for the various types
of constraints.

Kevin Grittner
2010-08-26 21:08:35 +00:00
Tom Lane
16567b0581 Update time zone data files to tzdata release 2010l: DST law changes in
Egypt and Palestine.  Added new names for two Micronesian timezones:
Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
Pacific/Ponape.  Historical corrections for Finland.
2010-08-26 19:58:36 +00:00
Alvaro Herrera
7788b76acd Improve wording for privilege description on certain failure messages; the
original misleadingly suggests that only access is meant, causing confusion.
Per recent trouble report by Robert McGehee on pgsql-admin.
2010-08-26 19:49:08 +00:00
Alvaro Herrera
3a1b51de19 Remove duplicate translatable phrase 2010-08-26 19:23:41 +00:00
Tom Lane
db2d9c602c Fix ExecMakeTableFunctionResult to verify that all rows returned by a SRF
returning "record" actually do have the same rowtype.  This is needed because
the parser can't realistically enforce that they will all have the same typmod,
as seen in a recent example from David Wheeler.

Back-patch to 8.0, which is as far back as we have the notion of RECORD
subtypes being distinguished by typmod.  Wheeler's example depends on
8.4-and-up features, but I suspect there may be ways to provoke similar
failures before 8.4.
2010-08-26 18:54:37 +00:00
Tom Lane
39ce62b110 Don't auto-create the subdirectories holding built documentation in a VPATH
build tree.  If we actually build the docs in the VPATH tree, those dirs
will get created then; but if they're present and empty, they capture the
vpathsearch searches in "make install", preventing installation of prebuilt
docs that might exist in the source tree.  Per bug #5595 from Dmtiriy Igrishin.
Fix based on idea from Peter Eisentraut.
2010-08-26 18:34:37 +00:00
Bruce Momjian
13e6d6c5da Remove docs for "Incrementally Updated Backups" because it was of
questionable reliability;  information moved to a wiki:

	http://wiki.postgresql.org/wiki/Incrementally_Updated_Backups

Backpatch to 9.0.
2010-08-25 23:55:54 +00:00
Tom Lane
9389ac8928 Document filtering dictionaries in textsearch.sgml.
While at it, copy-edit the description of prefix-match marker support in
synonym dictionaries, and clarify the description of the default unaccent
dictionary a bit more.
2010-08-25 21:42:55 +00:00