Commit Graph

9906 Commits

Author SHA1 Message Date
Tom Lane
529cb267a6 Improve handling of domains over arrays.
This patch eliminates various bizarre behaviors caused by sloppy thinking
about the difference between a domain type and its underlying array type.
In particular, the operation of updating one element of such an array
has to be considered as yielding a value of the underlying array type,
*not* a value of the domain, because there's no assurance that the
domain's CHECK constraints are still satisfied.  If we're intending to
store the result back into a domain column, we have to re-cast to the
domain type so that constraints are re-checked.

For similar reasons, such a domain can't be blindly matched to an ANYARRAY
polymorphic parameter, because the polymorphic function is likely to apply
array-ish operations that could invalidate the domain constraints.  For the
moment, we just forbid such matching.  We might later wish to insert an
automatic downcast to the underlying array type, but such a change should
also change matching of domains to ANYELEMENT for consistency.

To ensure that all such logic is rechecked, this patch removes the original
hack of setting a domain's pg_type.typelem field to match its base type;
the typelem will always be zero instead.  In those places where it's really
okay to look through the domain type with no other logic changes, use the
newly added get_base_element_type function in place of get_element_type.
catversion bumped due to change in pg_type contents.

Per bug #5717 from Richard Huxton and subsequent discussion.
2010-10-21 16:07:17 -04:00
Robert Haas
4b6623a7e8 Add some caveats to the contrib/isn docs. 2010-10-19 22:48:19 -04:00
Tom Lane
c33bfb8b9b Update storage.sgml to describe the 9.0 tablespace directory layout. 2010-10-19 21:53:26 -04:00
Bruce Momjian
f75d6a1b19 Add mention of using tools/fsync to test fsync methods. Restructure
recent wal_sync_method doc paragraph to be clearer.
2010-10-19 14:56:53 +00:00
Robert Haas
604ab08145 Add levenshtein_less_equal, optimized version for small distances.
Alexander Korotkov, heavily revised by me.
2010-10-19 09:51:06 -04:00
Peter Eisentraut
bc8624b15d Support key word 'all' in host column of pg_hba.conf 2010-10-18 22:15:44 +03:00
Bruce Momjian
433c7a6545 Document the tablespace directory "should" be empty, rather than "must"
be empty.  Because of binary migration usage, it might not be empty.
2010-10-18 18:15:58 +00:00
Robert Haas
9c73e20f38 Change example pg_hba.conf in docs to match altered pg_hba.conf.sample
Peter Eisentraut's recent patch to allow host names in pg_hba.conf
changed the contents of pg_hba.conf.sample

Fujii Masao
2010-10-18 12:18:45 -04:00
Alvaro Herrera
33ae03f400 Document that translate() removes characters in "from" that don't have
a corresponding "to" character.

Author: Josh Kupershmidt
2010-10-16 01:15:10 -03:00
Tom Lane
07f1264dda Allow WITH clauses to be attached to INSERT, UPDATE, DELETE statements.
This is not the hoped-for facility of using INSERT/UPDATE/DELETE inside
a WITH, but rather the other way around.  It seems useful in its own
right anyway.

Note: catversion bumped because, although the contents of stored rules
might look compatible, there's actually a subtle semantic change.
A single Query containing a WITH and INSERT...VALUES now represents
writing the WITH before the INSERT, not before the VALUES.  While it's
not clear that that matters to anyone, it seems like a good idea to
have it cited in the git history for catversion.h.

Original patch by Marko Tiikkaja, with updating and cleanup by
Hitoshi Harada.
2010-10-15 19:55:25 -04:00
Peter Eisentraut
6ab42ae367 Support host names in pg_hba.conf
Peter Eisentraut, reviewed by KaiGai Kohei and Tom Lane
2010-10-15 22:56:18 +03:00
Tom Lane
71d24466fb Document the DISTINCT noise word in the UNION/INTERSECT/EXCEPT constructs.
I also rearranged the order of the sections to match the logical order
of processing steps: the distinct-elimination implied by SELECT DISTINCT
happens before, not after, any UNION/INTERSECT/EXCEPT combination.

Per a suggestion from Hitoshi Harada.
2010-10-15 15:48:45 -04:00
Alvaro Herrera
0c9b166db5 Allow pg_ctl to register the service in either AUTO or DEMAND start type
Author: Quan Zongliang
Documentation updates by David Fetter
2010-10-15 14:30:03 -03:00
Simon Riggs
915116bc62 Correct WAL space calculation formula in docs.
Error pointed out by Fujii Masao, though not his patch.
2010-10-15 10:17:12 +01:00
Robert Haas
e468213358 Add pg_user_mappings to the table of system views. 2010-10-14 19:13:01 -04:00
Peter Eisentraut
402e11913f Remove reference.ced
This is a parsed DocBook DTD for the PSGML Emacs mode, but it hasn't
been updated since we switched to DocBook 4.2 about seven years ago.
Also, PSGML has deprecated this method of DTD parsing.
2010-10-14 23:16:46 +03:00
Peter Eisentraut
9f2d7f6e2d Complete the documentation of the USAGE privilege for foreign servers
The GRANT reference page failed to mention that the USAGE privilege
allows modifying associated user mappings, although this was already
documented on the CREATE/ALTER/DROP USER MAPPING pages.
2010-10-14 23:16:46 +03:00
Peter Eisentraut
80ada4c0db Document (compositeval).* field selection syntax 2010-10-14 23:16:46 +03:00
Simon Riggs
7085891784 Improvements to docs about pg_archive_cleanup and use of archives
Brendan Jurd
2010-10-14 19:30:15 +01:00
Peter Eisentraut
1a996d6c29 Remove executable permission from files where it doesn't belong 2010-10-13 22:30:25 +03:00
Peter Eisentraut
e8a47b3cb9 Add index entries for pg_stat* views 2010-10-13 21:29:10 +03:00
Peter Eisentraut
ceb5b787c6 Mention the default pg_ctl wait time in the -t option documentation 2010-10-13 20:24:51 +03:00
Peter Eisentraut
ef204db577 Make title capitalization consistent with surroundings 2010-10-13 20:05:16 +03:00
Peter Eisentraut
3bf79839c8 Put per-letter quicklinks at the top of the HTML bookindex page 2010-10-13 19:46:05 +03:00
Itagaki Takahiro
d0f876ca8c Accept 'public' as a pseudo-role name in has_table_privilege() and friends
to see if a particular privilege has been granted to PUBLIC.

The issue was reported by Jim Nasby.
Patch by Alvaro Herrera, and reviewed by KaiGai Kohei.
2010-10-13 14:37:23 +09:00
Alvaro Herrera
82659e0456 Fix typo 2010-10-12 13:24:10 -03:00
Tom Lane
2ec993a7cb Support triggers on views.
This patch adds the SQL-standard concept of an INSTEAD OF trigger, which
is fired instead of performing a physical insert/update/delete.  The
trigger function is passed the entire old and/or new rows of the view,
and must figure out what to do to the underlying tables to implement
the update.  So this feature can be used to implement updatable views
using trigger programming style rather than rule hacking.

In passing, this patch corrects the names of some columns in the
information_schema.triggers view.  It seems the SQL committee renamed
them somewhere between SQL:99 and SQL:2003.

Dean Rasheed, reviewed by Bernd Helmle; some additional hacking by me.
2010-10-10 13:45:07 -04:00
Peter Eisentraut
f7b15b5098 Extensive ECPG documentation improvements
Satoshi Nagayasu, reviewed and revised by Peter Eisentraut

Since this introduces new refentries that we probably don't want to publish as
man pages, tweak man page stylesheet to omit man pages without manvolnum
element.

Peter Eisentraut
2010-10-10 13:46:02 +03:00
Robert Haas
ab6d9f1641 Adjust EXPLAIN documentation, so that it's not unreasonably wide.
The new formatting matches what we do for COPY.

Per a complaint from Bruce Momjian.
2010-10-08 22:59:48 -04:00
Robert Haas
56ccff5980 Warn that views can be safely used to hide columns, but not rows. 2010-10-08 09:15:17 -04:00
Tom Lane
3ba11d3df2 Teach CLUSTER to use seqscan-and-sort when it's faster than indexscan.
... or at least, when the planner's cost estimates say it will be faster.

Leonardo Francalanci, reviewed by Itagaki Takahiro and Tom Lane
2010-10-07 20:00:28 -04:00
Robert Haas
694c56af2b Improve WAL reliability documentation, and add more cross-references to it.
In particular, we are now more explicit about the fact that you may need
wal_sync_method=fsync_writethrough for crash-safety on some platforms,
including MaxOS X.  There's also now an explicit caution against assuming
that the default setting of wal_sync_method is either crash-safe or best
for performance.
2010-10-07 12:22:00 -04:00
Simon Riggs
bdf45797ab Correct docs for behaviour of ALTER DATABASE .. RENAME during Hot Standby.
Actual behaviour did not match documented behaviour and we have agreed
that it should be the docs that change.

Spotted by Bernd Helmle
2010-10-06 00:19:05 +01:00
Tom Lane
d79a1a138e Undo some poorly-thought-out "proofreading improvements".
Per Tatsuhito Kasahara.
2010-10-05 18:48:13 -04:00
Tom Lane
50595b5fce Use a separate interpreter for each calling SQL userid in plperl and pltcl.
There are numerous methods by which a Perl or Tcl function can subvert
the behavior of another such function executed later; for example, by
redefining standard functions or operators called by the target function.
If the target function is SECURITY DEFINER, or is called by such a
function, this means that any ordinary SQL user with Perl or Tcl language
usage rights can do essentially anything with the privileges of the target
function's owner.

To close this security hole, create a separate Perl or Tcl interpreter for
each SQL userid under which plperl or pltcl functions are executed within
a session.  However, all plperlu or pltclu functions run within a session
still share a single interpreter, since they all execute at the trust
level of a database superuser anyway.

Note: this change results in a functionality loss when libperl has been
built without the "multiplicity" option: it's no longer possible to call
plperl functions under different userids in one session, since such a
libperl can't support multiple interpreters in one process.  However, such
a libperl already failed to support concurrent use of plperl and plperlu,
so it's likely that few people use such versions with Postgres.

Security: CVE-2010-3433
2010-09-30 17:18:51 -04:00
Robert Haas
1f0eb5de9e Adjust pg_archivecleanup docs to match message changes made 2010-06-17.
Erik Rijkers
2010-09-30 17:10:43 -04:00
Tom Lane
a5683ea042 Update release notes for releases 9.0.1, 8.4.5, 8.3.12, 8.2.18, 8.1.22,
8.0.26, and 7.4.30.
2010-09-30 14:27:15 -04:00
Peter Eisentraut
fe48d9471e Update ecpglib error code listing
Satoshi Nagayasu
2010-09-29 13:58:35 +03:00
Bruce Momjian
ae9acb6779 Mention that pg_upgrade requires write permission in the current
directory.

Per report from Harald Armin Massa.
2010-09-28 18:43:01 +00:00
Bruce Momjian
6b44b9ba56 Mention in pg_upgrade docs that the proper Win32 service name should be used.
Per report from Harald Armin Massa
2010-09-28 18:33:38 +00:00
Bruce Momjian
9c5f4f6cb5 Add mention of installing pg_upgrade_support in pg_upgrade doc section
title, per suggestion from Ian Barwick.
2010-09-28 17:25:20 +00:00
Alvaro Herrera
3bb27fb503 Add missing agg_type nonterminal description in new reference page. 2010-09-28 11:24:00 -04:00
Robert Haas
4d355a8336 Add a SECURITY LABEL command.
This is intended as infrastructure to support integration with label-based
mandatory access control systems such as SE-Linux. Further changes (mostly
hooks) will be needed, but this is a big chunk of it.

KaiGai Kohei and Robert Haas
2010-09-27 20:55:27 -04:00
Peter Eisentraut
e440e12c56 Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE
Like with tables, this also requires allowing the existence of
composite types with zero attributes.

reviewed by KaiGai Kohei
2010-09-26 14:41:03 +03:00
Peter Eisentraut
635de8365f Fix man page markup for <cmdsynopsis> with multiple variants
Command synopses using <cmdsynopsis> with multiple variants previously used
<sbr> to break lines between variants.  The new man page toolchain introduced
in 9.0 makes a mess out of that, and that markup was probably wrong all along,
because <sbr> is supposed to break lines within a synopsis, not between them.
So fix that by using multiple <cmdsynopsis> elements inside <refsynopsisdiv>.

backpatched to 9.0
2010-09-25 09:57:09 +03:00
Robert Haas
3186560f46 Replace doc references to install-win32 with install-windows.
Windows is not necessarily 32-bit, any more.

As suggested by Mike Toews.
2010-09-23 17:45:39 -04:00
Robert Haas
0c8ed2dafb Fix inconsistent capitalization of "PL/pgSQL".
Josh Kupershmidt
2010-09-22 21:57:37 -04:00
Tom Lane
8687fbbe42 Do some copy-editing on the Git usage docs. 2010-09-22 20:22:26 -04:00
Tom Lane
651377933e Fix remaining stray references to CVS.
These are just cosmetic and don't seem worth back-patching far.
I put them into 9.0 just because it was trivial to do so.
2010-09-22 19:51:39 -04:00
Tom Lane
cb71efe164 Add assorted other documentation build targets to documentation gitignore. 2010-09-22 18:08:45 -04:00