Commit Graph

6986 Commits

Author SHA1 Message Date
Tom Lane
e8ea9e9587 Implement archive_timeout feature to force xlog file switches to occur no more
than N seconds apart.  This allows a simple, if not very high performance,
means of guaranteeing that a PITR archive is no more than N seconds behind
real time.  Also make pg_current_xlog_location return the WAL Write pointer,
add pg_current_xlog_insert_location to return the Insert pointer, and fix
pg_xlogfile_name_offset to return its results as a two-element record instead
of a smashed-together string, as per recent discussion.

Simon Riggs
2006-08-17 23:04:10 +00:00
Peter Eisentraut
bb764e94ce Produce a clean failure in configure when dtrace is selected but cannot be
found.  Besides stopping those early who have no dtrace installed
whatsoever, this will also alert those who have dtrace in /usr/sbin, which
might not be in the path, which would produce confusing failures much later
in the build process.

Add documentation about pointing configure to find dtrace.
2006-08-17 17:25:43 +00:00
Bruce Momjian
4e1bdcaabf Add:
< * Add support for arrays of domains
> 	o Add support for arrays of domains
> 	o Add support for arrays of complex types
2006-08-17 06:48:38 +00:00
Bruce Momjian
565de20ff7 Add:
> * Support a data type with specific enumerated values (ENUM)
>
>   http://archives.postgresql.org/pgsql-hackers/2006-08/msg00979.php
2006-08-17 06:45:12 +00:00
Bruce Momjian
6a5a241ee6 Add:
> * Add support for arrays of domains
2006-08-16 14:59:26 +00:00
Tom Lane
abc3120e9b Add server support for "plugin" libraries that can be used for add-on tasks
such as debugging and performance measurement.  This consists of two features:
a table of "rendezvous variables" that allows separately-loaded shared
libraries to communicate, and a new GUC setting "local_preload_libraries"
that allows libraries to be loaded into specific sessions without explicit
cooperation from the client application.  To make local_preload_libraries
as flexible as possible, we do not restrict its use to superusers; instead,
it is restricted to load only libraries stored in $libdir/plugins/.  The
existing LOAD command has also been modified to allow non-superusers to
LOAD libraries stored in this directory.

This patch also renames the existing GUC variable preload_libraries to
shared_preload_libraries (after a suggestion by Simon Riggs) and does some
code refactoring in dfmgr.c to improve clarity.

Korry Douglas, with a little help from Tom Lane.
2006-08-15 18:26:59 +00:00
Tom Lane
3d1e01caa4 Support INSERT/UPDATE/DELETE RETURNING in plpgsql, with rowcount checking
as per yesterday's proposal.  Also make things a tad more orthogonal by
adding the recent STRICT addition to EXECUTE INTO.
Jonah Harris and Tom Lane
2006-08-14 21:14:42 +00:00
Tom Lane
3f8db37c2f Tweak SPI_cursor_open to allow INSERT/UPDATE/DELETE RETURNING; this was
merely a matter of fixing the error check, since the underlying Portal
infrastructure already handles it.  This in turn allows these statements
to be used in some existing plpgsql and plperl contexts, such as a
plpgsql FOR loop.  Also, do some marginal code cleanup in places that
were being sloppy about distinguishing SELECT from SELECT INTO.
2006-08-12 20:05:56 +00:00
Bruce Momjian
510aad39d0 Done:
< 	o Allow INSERT/UPDATE ... RETURNING new.col or old.col
<
< 	  This is useful for returning the auto-generated key for an INSERT.
< 	  One complication is how to handle rules that run as part of
< 	  the insert.
< 	  http://archives.postgresql.org/pgsql-patches/2005-07/msg00568.php
> 	o -Allow INSERT/UPDATE ... RETURNING new.col or old.col
2006-08-12 03:50:27 +00:00
Bruce Momjian
aeb056f610 Fix wording, per Neil. 2006-08-12 03:48:32 +00:00
Tom Lane
7a3e30e608 Add INSERT/UPDATE/DELETE RETURNING, with basic docs and regression tests.
plpgsql support to come later.  Along the way, convert execMain's
SELECT INTO support into a DestReceiver, in order to eliminate some ugly
special cases.

Jonah Harris and Tom Lane
2006-08-12 02:52:06 +00:00
Bruce Momjian
99c2b8b8e3 Done:
< 	o %Allow commenting of variables in postgresql.conf to restore them
> 	o -Allow commenting of variables in postgresql.conf to restore them
2006-08-11 20:17:26 +00:00
Bruce Momjian
12e4660574 Revert undesired FAQ_DEV change. 2006-08-11 20:16:50 +00:00
Bruce Momjian
c07fbcf577 plperl:
Allow conversion from perl to postgresql array in OUT parameters. Second,
allow hash form output from procedures with one OUT argument.

Pavel Stehule
2006-08-11 19:42:35 +00:00
Bruce Momjian
6932048b9b Add Neil's presentation to FAQ_DEV. 2006-08-11 19:18:59 +00:00
Bruce Momjian
0d5877ab0c Update for company URL.
Ian Barwick
2006-08-11 18:47:57 +00:00
Bruce Momjian
3638eff501 Add URLs
< * Allow encoding on a per-column basis
> * Allow encoding on a per-column basis optionally using the ICU library:
>   http://archives.postgresql.org/pgsql-patches/2005-08/msg00309.php
>   http://archives.postgresql.org/pgsql-patches/2006-03/msg00233.php
2006-08-11 15:53:39 +00:00
Bruce Momjian
64214a2f01 Add URL for typmod:
>   http://archives.postgresql.org/pgsql-hackers/2006-08/msg00149.php
2006-08-09 18:10:34 +00:00
Bruce Momjian
b1d78fc9c7 Add URL:
> 	  http://archives.postgresql.org/pgsql-performance/2004-08/msg00349.php
2006-08-09 16:42:19 +00:00
Bruce Momjian
c7fa4aa3e7 Add TODO items we don't want (Idea from Josh Berkus)
>
>
> Features We Do _Not_ Want
> =========================
>
> * All backends running as threads in a single process (not want)
>
>   This eliminates the process protection we get from the current setup.
>   Thread creation is usually the same overhead as process creation on
>   modern systems, so it seems unwise to use a pure threaded model.
>
> * Optimizer hints (not want)
>
>   Optimizer hints are used to work around problems in the optimizer.  We
>   would rather have the problems reported and fixed.
>   http://archives.postgresql.org/pgsql-hackers/2006-08/msg00506.php
2006-08-09 16:35:51 +00:00
Bruce Momjian
4f81337d9d Update packages:
< 		  A package would be a schema with public/private variables,
> 		  A package would be a schema with session-local variables,
> 		  http://archives.postgresql.org/pgsql-hackers/2006-08/msg00384.php
2006-08-09 14:55:39 +00:00
Bruce Momjian
baefb735ff Update packages description:
< 		  A package would be a schema with its own variables,
< 		  private functions, and initialization functions.  It
> 		  A package would be a schema with public/private variables,
> 		  public/private functions, and initialization functions.  It
2006-08-09 02:48:10 +00:00
Bruce Momjian
bed7d5f635 Update packages:
< 		  private functions, and initialization functions
> 		  private functions, and initialization functions.  It
> 		  is also possible to implement these capabilities
> 		  in all schemas and not use a separate "packages"
> 		  syntax at all.
2006-08-08 22:51:37 +00:00
Bruce Momjian
7f139b813c Update:
< 	o COPY FROM STDIN not implemented because not useful?
> 	o Implement COPY FROM STDIN
2006-08-08 22:39:09 +00:00
Tom Lane
b09bfcaa57 Add a feature for automatic initialization and finalization of dynamically
loaded libraries: call functions _PG_init() and _PG_fini() if the library
defines such symbols.  Hence we no longer need to specify an initialization
function in preload_libraries: we can assume that the library used the
_PG_init() convention, instead.  This removes one source of pilot error
in use of preloaded libraries.  Original patch by Ralf Engelschall,
preload_libraries changes by me.
2006-08-08 19:15:09 +00:00
Bruce Momjian
e00664da48 Reverse order of performance guides so powerpostgresql is first. 2006-08-08 19:05:24 +00:00
Bruce Momjian
cbf0468d66 Add detail on packages:
>
> 		  A package would be a schema with its own variables,
> 		  private functions, and initialization functions
>
2006-08-08 19:03:59 +00:00
Bruce Momjian
46d759cfff Add package item:
< 		o Add Oracle-style packages
> 		o Add Oracle-style packages  (Pavel)
> * Pavel is Pavel Stehule <pavel.stehule@hotmail.com>
2006-08-08 19:02:13 +00:00
Bruce Momjian
2392cdb795 Done:
< 	  o Automatically force archiving of partially-filled WAL files when
> 	  o -Automatically force archiving of partially-filled WAL files when
<
< 	    Doing this will allow administrators to know more easily when
< 	    the archive contains all the files needed for point-in-time
< 	    recovery.
< 	    http://archives.postgresql.org/pgsql-patches/2005-04/msg00121.php
<
< 	  o Add reporting of the current WAL file and offset, perhaps as
> 	  o -Add reporting of the current WAL file and offset, perhaps as
<
< 	    The offset allows parts of a WAL file to be archived using
< 	    an external program.
<
2006-08-08 17:40:02 +00:00
Michael Meskes
75b5630726 Clarified COPY FROM STDIN in ecpg todo 2006-08-08 11:52:51 +00:00
Bruce Momjian
d42cb5d880 Done:
< * Allow protocol-level BIND parameter values to be logged
<
<   http://archives.postgresql.org/pgsql-hackers/2006-02/msg00165.php
> * -Allow protocol-level BIND parameter values to be logged, if text mode
2006-08-08 01:24:36 +00:00
Bruce Momjian
3716f90c39 For protocol-level prepare/bind/execute:
o  print user name for all
	o  print portal name if defined for all
	o  print query for all
	o  reduce log_statement header to single keyword
	o  print bind parameters as DETAIL if text mode
2006-08-08 01:23:15 +00:00
Tom Lane
704ddaaa09 Add support for forcing a switch to a new xlog file; cause such a switch
to happen automatically during pg_stop_backup().  Add some functions for
interrogating the current xlog insertion point and for easily extracting
WAL filenames from the hex WAL locations displayed by pg_stop_backup
and friends.  Simon Riggs with some editorialization by Tom Lane.
2006-08-06 03:53:44 +00:00
Bruce Momjian
a83437fcfd Slight wording improvement in documentation. 2006-08-04 04:07:38 +00:00
Bruce Momjian
49954b4526 Add URL for terminate backend test:
>   http://archives.postgresql.org/pgsql-hackers/2006-08/msg00174.php
2006-08-04 01:24:49 +00:00
Tom Lane
7946f77220 Cause ALTER TABLE to perform ALTER COLUMN DROP DEFAULT operations during
the DROP pass rather than the ADD_CONSTR pass.  On examining the code I
think this was just an oversight rather than intentional, and it seems
to satisfy the principle of least surprise better than the alternative
solution that was discussed.  Add an example to the ref page showing how
to do ALTER TYPE and update the default in one command.  Per gripe from
Markus Bertheau that that wasn't possible.
2006-08-03 20:57:06 +00:00
Tom Lane
9649b182a1 Fix documentation error: GRANT/REVOKE for roles only accept role names
as grantees, not PUBLIC ... and you can't say GROUP either.  Noted by
Brian Hurt.
2006-08-02 16:29:49 +00:00
Bruce Momjian
97eefd6996 Update:
< 	o Add COPY TO STDIN / STDOUT handling
> 	o Add COPY TO STDIN handling
2006-08-02 13:36:45 +00:00
Bruce Momjian
f05fc17cf4 Add:
> 	o In rules, allow VALUES() to contain a mixture of 'old' and 'new'
> 	  references
2006-08-02 13:29:54 +00:00
Bruce Momjian
b5a5524342 Done:
o -Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)
2006-08-02 03:11:54 +00:00
Alvaro Herrera
5f69890e15 Editorialize a bit on the recent patch, reverting to the original versions
of the text where appropiate.
2006-08-01 19:17:18 +00:00
Bruce Momjian
c61607bd52 Add pg_dump -X no-data-for-failed-tables option to suppress loading data
if table creation failed (the table already exists).

Martin Pitt
2006-08-01 18:21:44 +00:00
Bruce Momjian
6d0f5ea574 Done:
< 	o %Allow pg_dump to use multiple -t and -n switches  [pg_dump]
<
< 	  http://archives.postgresql.org/pgsql-patches/2006-01/msg00190.php
<
> 	o -Allow pg_dump to use multiple -t and -n switches, exclusion
> 	   ability, and regular expression object matching
2006-08-01 18:07:36 +00:00
Bruce Momjian
aa88497a3a Remove TODO.detail/pg_dump. 2006-08-01 18:06:27 +00:00
Bruce Momjian
8977b68a42 Allow multiple -n (schema) and -t (table) pg_dump options, and add -T
and -N options to exclude objects.  Also support regular expressions for
option object names.

Greg Sabino Mullane
2006-08-01 18:05:04 +00:00
Bruce Momjian
8d5f3c8d89 Improvements to Maintenance and External Projects documentation.
Joshua D. Drake
Robert Treat
2006-08-01 00:09:06 +00:00
Bruce Momjian
ffb62be07a Add:
> * Consider compressed annealing to search for query plans
>
>   This might replace GEQO, http://sixdemonbag.org/Djinni.
2006-07-31 23:04:13 +00:00
Tom Lane
09d3670df3 Change the relation_open protocol so that we obtain lock on a relation
(table or index) before trying to open its relcache entry.  This fixes
race conditions in which someone else commits a change to the relation's
catalog entries while we are in process of doing relcache load.  Problems
of that ilk have been reported sporadically for years, but it was not
really practical to fix until recently --- for instance, the recent
addition of WAL-log support for in-place updates helped.

Along the way, remove pg_am.amconcurrent: all AMs are now expected to support
concurrent update.
2006-07-31 20:09:10 +00:00
Tom Lane
6e38e34d64 Change the bootstrap sequence so that toast tables for system catalogs are
created in the bootstrap phase proper, rather than added after-the-fact
by initdb.  This is cleaner than before because it allows us to retire the
undocumented ALTER TABLE ... CREATE TOAST TABLE command, but the real reason
I'm doing it is so that toast tables of shared catalogs will now have
predetermined OIDs.  This will allow a reasonably clean solution to the
problem of locking tables before we load their relcache entries, to appear
in a forthcoming patch.
2006-07-31 01:16:38 +00:00
Alvaro Herrera
638860ce35 Fix confusion between COPY FROM and COPY TO, per Gavin Sharry and Arul Shaji. 2006-07-31 01:10:56 +00:00
Bruce Momjian
d6603791ea Add:
> * Consider detoasting keys before sorting
2006-07-30 01:48:40 +00:00
Bruce Momjian
6dd2b7728b Add entry:
> * Add column to pg_stat_activity that shows the progress of long-running
>   commands like CREATE INDEX and VACUUM
2006-07-29 18:08:36 +00:00
Bruce Momjian
d06f44a811 Add:
> * Add support for SQL-standard GENERATED/IDENTITY columns
>
>   http://archives.postgresql.org/pgsql-hackers/2006-07/msg00543.php
2006-07-29 15:56:32 +00:00
Bruce Momjian
51175d1d00 Remove update TODO.detail item. 2006-07-28 19:28:08 +00:00
Bruce Momjian
e1992ebaf2 Updates per Tom:
> * Allow DISTINCT to work in multiple-argument aggregate calls
< 	o Allow UPDATE to handle complex aggregates [update]?
2006-07-28 19:00:45 +00:00
Tom Lane
1249cf8f38 SQL2003-standard statistical aggregates, by Sergey Koposov. I've added only
the float8 versions of the aggregates, which is all that the standard requires.
Sergey's original patch also provided versions using numeric arithmetic,
but given the size and slowness of the code, I doubt we ought to include
those in core.
2006-07-28 18:33:04 +00:00
Tom Lane
0fd087af83 Fix table title. 2006-07-28 16:21:57 +00:00
Tom Lane
b8cd6b4f25 Make it clearer that not every Postgres character set can be used as a
server-side character set.
2006-07-28 15:33:17 +00:00
Bruce Momjian
4917564f1b Update Tatsuo:
< * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> of Software Research Assoc.
> * Tatsuo is Tatsuo Ishii <ishii@sraoss.co.jp> of SRA OSS, Inc. Japan
2006-07-28 12:24:07 +00:00
Bruce Momjian
67cdc61369 Add URL for UPDATE/SET for multiple values. 2006-07-27 22:05:49 +00:00
Bruce Momjian
8de82ede51 Add for UPDATE SET for multiple values:
>
>           A subselect can also be used as the value source.
2006-07-27 22:01:34 +00:00
Tom Lane
108fe47301 Aggregate functions now support multiple input arguments. I also took
the opportunity to treat COUNT(*) as a zero-argument aggregate instead
of the old hack that equated it to COUNT(1); this is materially cleaner
(no more weird ANYOID cases) and ought to be at least a tiny bit faster.
Original patch by Sergey Koposov; review, documentation, simple regression
tests, pg_dump and psql support by moi.
2006-07-27 19:52:07 +00:00
Bruce Momjian
43c79378c8 Allow LDAP lookups from pg_service.conf.
Albe Laurenz
2006-07-27 13:20:24 +00:00
Peter Eisentraut
b517e65348 Allow units to be specified with configuration settings. 2006-07-27 08:30:41 +00:00
Bruce Momjian
5ffa0bb47a Reorder items:
< 	  o Allow point-in-time recovery to archive partially filled
< 	    write-ahead logs? [pitr]
> 	  o Add command to archive partially filled write-ahead logs? [pitr]
< 	    of a disk failure. This could be triggered by a user command or
< 	    a timer.
> 	    of a disk failure.
< 	    recovery.  A function call to do this would also be useful.
> 	    recovery.
> 	  o Add reporting of the current WAL file and offset, perhaps as
> 	    part of partial log file archiving
>
> 	    The offset allows parts of a WAL file to be archived using
> 	    an external program.
>
< 	  o Add reporting of the current WAL file and offset, perhaps as
< 	    part of partial log file archiving
<
< 	    The offset allows parts of a WAL file to be archived using
< 	    an external program.
2006-07-26 17:23:02 +00:00
Peter Eisentraut
79bc99a467 Convert effective_cache_size to an integer, for better integration with
upcoming units feature.
2006-07-26 11:35:56 +00:00
Bruce Momjian
88b39634cd Done:
> * -Change LIMIT/OFFSET and FETCH/MOVE to use int8
2006-07-26 00:35:01 +00:00
Bruce Momjian
edd49fcf69 Add reason for WAL offset reporting:
>
> 	    The offset allows parts of a WAL file to be archived using
> 	    an external program.
2006-07-25 16:23:42 +00:00
Bruce Momjian
8633a9cdff Add offset mention:
< 	  o Add reporting of the current WAL file, perhaps as part of
< 	    partial log file archiving
> 	  o Add reporting of the current WAL file and offset, perhaps as
> 	    part of partial log file archiving
2006-07-25 15:27:24 +00:00
Bruce Momjian
cb6f5f1552 Update PITR:
< 	    write-ahead logs [pitr]
> 	    write-ahead logs? [pitr]
< 	    recovery.
> 	    recovery.  A function call to do this would also be useful.
2006-07-25 15:21:48 +00:00
Bruce Momjian
a859695b7e Done:
> 	o -Allow customization of the known set of TZ names (generalize the
2006-07-25 04:11:24 +00:00
Tom Lane
d8b5c95ca8 Remove hard-wired lists of timezone abbreviations in favor of providing
configuration files that can be altered by a DBA.  The australian_timezones
GUC setting disappears, replaced by a timezone_abbreviations setting (set this
to 'Australia' to get the effect of australian_timezones).  The list of zone
names defined by default has undergone a bit of cleanup, too.  Documentation
still needs some work --- in particular, should we fix Table B-4, or just get
rid of it?  Joachim Wieland, with some editorializing by moi.
2006-07-25 03:51:23 +00:00
Peter Eisentraut
e9b4969062 DTrace support, with a small initial set of probes
by Robert Lor
2006-07-24 16:32:45 +00:00
Bruce Momjian
9652b79ae4 Update documentation on GRANT SCEMA USAGE, again. 2006-07-20 18:00:03 +00:00
Bruce Momjian
a8e44f0b1b Update GRANT USAGE on schema permission description. 2006-07-19 18:42:31 +00:00
Tom Lane
60cfe25e68 Adjust spawn_process() to avoid unnecessary overhead processes: we can
just exec instead of creating a subprocess.  This reduces process usage
from four processes per parallel test to two.  I have no idea whether
a comparable optimization is possible or useful in the Windows port.
2006-07-19 17:02:59 +00:00
Tom Lane
a38c85bd5d Rewrite pg_regress as a C program instead of a shell script.
This allows it to be used on Windows without installing mingw
(though you do still need 'diff'), and opens the door to future
improvements such as message localization.
Magnus Hagander and Tom Lane.
2006-07-19 02:37:00 +00:00
Bruce Momjian
c5fad5f35e Done:
o -Display IN, INOUT, and OUT parameters in \df
2006-07-18 18:20:51 +00:00
Neil Conway
c1e59cc5d9 Minor documentation tweak: in the tables of functions and operators,
don't include a space between the function name and the parenthesis
that begins its parameter list, for consistency.
2006-07-16 23:59:58 +00:00
Neil Conway
a10fc5f254 Minor doc tweak: replace a "--" with "&mdash;". 2006-07-14 00:13:05 +00:00
Neil Conway
f2a8aa0f89 Reorder the entries in the function section of the manual, to ensure they
are alphabetically ordered. I believe the tables were correctly ordered in
the past, but some of them had subsequently regressed.
2006-07-13 23:59:47 +00:00
Bruce Momjian
de7e81fff4 Update schema USAGE permission description. 2006-07-12 15:37:10 +00:00
Tom Lane
d29b66882a Tweak fillfactor code as per my recent proposal. Fix nbtsort.c so that
it can handle small fillfactors for ordinary-sized index entries without
failing on large ones; fix nbtinsert.c to distinguish leaf and nonleaf
pages; change the minimum fillfactor to 10% for all index types.
2006-07-11 21:05:57 +00:00
Neil Conway
2fa7a041f3 Correct the description of the pg_get_viewdef() function. Do some nearby
SGML cleanup: sort table entries alphabetically.
2006-07-11 19:11:26 +00:00
Bruce Momjian
0031f99bfa Add URL of code presentation to developers FAQ. 2006-07-11 17:02:16 +00:00
Bruce Momjian
f0cd764723 Add #include code to prevent multiple inclusion. 2006-07-10 21:03:58 +00:00
Bruce Momjian
ec3efa244b Update schema GRANT USAGE description. 2006-07-10 16:48:46 +00:00
Alvaro Herrera
d4cef0aa2a Improve vacuum code to track minimum Xids per table instead of per database.
To this end, add a couple of columns to pg_class, relminxid and relvacuumxid,
based on which we calculate the pg_database columns after each vacuum.

We now force all databases to be vacuumed, even template ones.  A backend
noticing too old a database (meaning pg_database.datminxid is in danger of
falling behind Xid wraparound) will signal the postmaster, which in turn will
start an autovacuum iteration to process the offending database.  In principle
this is only there to cope with frozen (non-connectable) databases without
forcing users to set them to connectable, but it could force regular user
database to go through a database-wide vacuum at any time.  Maybe we should
warn users about this somehow.  Of course the real solution will be to use
autovacuum all the time ;-)

There are some additional improvements we could have in this area: for example
the vacuum code could be smarter about not updating pg_database for each table
when called by autovacuum, and do it only once the whole autovacuum iteration
is done.

I updated the system catalogs documentation, but I didn't modify the
maintenance section.  Also having some regression tests for this would be nice
but it's not really a very straightforward thing to do.

Catalog version bumped due to system catalog changes.
2006-07-10 16:20:52 +00:00
Bruce Momjian
a07849df96 Test commit. 2006-07-10 15:44:31 +00:00
Bruce Momjian
a77275fe3b Please find attached two patches for documentation and regression tests
for the usage of full time zone names.

Joachim Wieland
2006-07-06 01:46:38 +00:00
Tom Lane
2d0c1d3102 Documentation fixes for FILLFACTOR patch. Minor other editorialization. 2006-07-04 18:07:24 +00:00
Bruce Momjian
655787bfaf Modify:
< 	o -Add PQescapeIdentifier()
> 	o Add PQescapeIdentifierConn()
2006-07-04 13:22:41 +00:00
Bruce Momjian
3fafac3f62 Remove libpq's PQescapeIdentifier(), not safe from injection attacks. 2006-07-04 13:22:15 +00:00
Tom Lane
b7b78d24f7 Code review for FILLFACTOR patch. Change WITH grammar as per earlier
discussion (including making def_arg allow reserved words), add missed
opt_definition for UNIQUE case.  Put the reloptions support code in a less
random place (I chose to make a new file access/common/reloptions.c).
Eliminate header inclusion creep.  Make the index options functions safely
user-callable (seems like client apps might like to be able to test validity
of options before trying to make an index).  Reduce overhead for normal case
with no options by allowing rd_options to be NULL.  Fix some unmaintainably
klugy code, including getting rid of Natts_pg_class_fixed at long last.
Some stylistic cleanup too, and pay attention to keeping comments in sync
with code.

Documentation still needs work, though I did fix the omissions in
catalogs.sgml and indexam.sgml.
2006-07-03 22:45:41 +00:00
Tom Lane
feed07350b Fix broken markup. 2006-07-03 16:43:14 +00:00
Bruce Momjian
277807bd9e Add FILLFACTOR to CREATE INDEX.
ITAGAKI Takahiro
2006-07-02 02:23:23 +00:00
Bruce Momjian
5d5c1416bf Done:
> * -Add fillfactor to control reserved free space during index creation
2006-07-02 02:22:39 +00:00
Bruce Momjian
ff3003e537 Done:
< 	o Add ALTER TABLE tab ADD/DROP INHERITS parent
<
< 	  This allows tables to be added/removed from an inheritance
< 	  hierarchy.  This is particularly useful for table partitioning.
< 	  http://archives.postgresql.org/pgsql-hackers/2006-05/msg00988.php
<
> 	o -Add ALTER TABLE tab INHERIT / NO INHERIT  parent
2006-07-02 01:59:46 +00:00
Bruce Momjian
8c092781f4 ALTER TABLE ... ADD/DROPS INHERIT (actually INHERIT / NO INHERIT)
Open items:

There were a few tangentially related issues that have come up that I think
are TODOs. I'm likely to tackle one or two of these next so I'm interested in
hearing feedback on them as well.

. Constraints currently do not know anything about inheritance. Tom suggested
  adding a coninhcount and conislocal like attributes have to track their
  inheritance status.

. Foreign key constraints currently do not get copied to new children (and
  therefore my code doesn't verify them). I don't think it would be hard to
  add them and treat them like CHECK constraints.

. No constraints at all are copied to tables defined with LIKE. That makes it
  hard to use LIKE to define new partitions. The standard defines LIKE and
  specifically says it does not copy constraints. But the standard already has
  an option called INCLUDING DEFAULTS; we could always define a non-standard
  extension LIKE table INCLUDING CONSTRAINTS that gives the user the option to
  request a copy including constraints.

. Personally, I think the whole attislocal thing is bunk. The decision about
  whether to drop a column from children tables or not is something that
  should be up to the user and trying to DWIM based on whether there was ever
  a local definition or the column was acquired purely through inheritance is
  hardly ever going to match up with user expectations.

. And of course there's the whole unique and primary key constraint issue. I
  think to get any traction at all on this you have a prerequisite of a real
  partitioned table implementation where the system knows what the partition
  key is so it can recognize when it's a leading part of an index key.

Greg Stark
2006-07-02 01:58:36 +00:00
Bruce Momjian
569e32a0f1 Update item for GUID:
< * Add 128-bit Universally Unique Identifier (UUID)
> * Add Globally/Universally Unique Identifier (GUID/UUID)
2006-06-30 15:04:32 +00:00
Tom Lane
51e400c9c6 Remove the separate 'stats buffer' process, letting backend stats messages
be delivered directly to the collector process.  The extra process context
swaps required to transfer data through the buffer process seem to outweigh
any value the buffering might have.  Per recent discussion and tests.
I modified Bruce's draft patch to use poll() rather than select() where
available (this makes a noticeable difference on my system), and fixed
up the EXEC_BACKEND case.
2006-06-29 20:00:08 +00:00
Bruce Momjian
bc9b6c22d5 Change URL for SITC:
<   http://momjian.us/cgi-bin/pgsitc
>   http://archives.postgresql.org/pgsql-hackers/2006-06/msg01534.php
2006-06-29 03:04:59 +00:00
Bruce Momjian
994aa6a611 Add:
> * Add 128-bit Universally Unique Identifier (UUID)
2006-06-29 01:33:36 +00:00
Neil Conway
6e9c974e43 Editorialization for the additions to the CREATE TABLE reference page
made as part of the recent INCLUDING CONSTRAINTS patch. The text could
stand further improvement, but this is at least a step in the right
direction.
2006-06-28 22:01:52 +00:00
Bruce Momjian
06bd3dba80 Add URL for SITC
>   http://momjian.us/cgi-bin/pgsitc
2006-06-28 21:05:22 +00:00
Bruce Momjian
15897332ed Update:
< 		o Add support for WITH HOLD cursors
> 		o Add support for WITH HOLD and SCROLL cursors
>
> 		  PL/pgSQL cursors should support the same syntax as
> 		  backend cursors.
>
2006-06-28 15:39:32 +00:00
Bruce Momjian
c2c4f3c30e Update Russian FAQ.
Viktor Vislobokov
2006-06-28 13:10:18 +00:00
Bruce Momjian
370a709c75 Add GUC update_process_title to control whether 'ps' display is updated
for every command, default to on.
2006-06-27 22:16:44 +00:00
Bruce Momjian
665c5e861a Default stats_command_string to 'on', now that its overhead is minimal. 2006-06-27 19:07:50 +00:00
Bruce Momjian
33b4ad66c9 Revert patch, doesn't do what it should:
* %Disallow changing default expression of a SERIAL column

Dhanaraj M
2006-06-27 18:35:05 +00:00
Bruce Momjian
e99507eaa1 Will revert in next patch more cleanly.
> * -Disallow changing DEFAULT expression of a SERIAL column
2006-06-27 16:42:00 +00:00
Bruce Momjian
0c99c0fecf Not done:
< * -Disallow changing DEFAULT expression of a SERIAL column
> * %Disallow changing DEFAULT expression of a SERIAL column
2006-06-27 16:39:27 +00:00
Bruce Momjian
dc2c25fc62 Add INCLUDING CONSTRAINTS to CREATE TABLE LIKE.
Greg Stark
2006-06-27 03:43:20 +00:00
Bruce Momjian
62f2693688 Done:
< * %Disallow changing DEFAULT expression of a SERIAL column?
<
<   This should be done only if the existing SERIAL problems cannot be
<   fixed.
<
> * -Disallow changing DEFAULT expression of a SERIAL column
2006-06-27 03:22:45 +00:00
Bruce Momjian
560feb474a Done:
> 	o -Add PQescapeIdentifier()
2006-06-27 00:03:44 +00:00
Bruce Momjian
3b1790f987 Add PQescapeIdentifier() to libpq
Christopher Kings-Lynne
2006-06-27 00:03:42 +00:00
Tom Lane
ca0d2197ca Change the row constructor syntax (ROW(...)) so that list elements foo.*
will be expanded to a list of their member fields, rather than creating
a nested rowtype field as formerly.  (The old behavior is still available
by omitting '.*'.)  This syntax is not allowed by the SQL spec AFAICS,
so changing its behavior doesn't violate the spec.  The new behavior is
substantially more useful since it allows, for example, triggers to check
for data changes with 'if row(new.*) is distinct from row(old.*)'.  Per
my recent proposal.
2006-06-26 17:24:41 +00:00
Bruce Momjian
6bf44d51ea Use Unix newlines, instead of DOS ones. 2006-06-26 13:04:05 +00:00
Bruce Momjian
bc28f58b8f Update my info:
> * Bruce is Bruce Momjian <bruce@momjian.us> of EnterpriseDB
2006-06-25 18:52:03 +00:00
Bruce Momjian
f5940e7b34 Add:
< * Reuse index tuples that point to rows that are not visible to anyone?
> * Reuse index tuples that point to heap tuples that are not visible to
>   anyone?
2006-06-25 16:27:41 +00:00
Bruce Momjian
ac7a126d0c Update entry:
< * Allow heap reuse of UPDATEd rows if old and new versions are on the
<   same heap page?
> * Allow heap reuse of UPDATEd rows if no indexed columns are changed,
>   and old and new versions are on the same heap page?
<   This is possible for same-page updates because a single index row
<   can point to both old and new values.
>   While vacuum handles DELETEs fine, updating of non-indexed columns, like
>   counters, are difficult for VACUUM to handle efficiently.  This method
>   is possible for same-page updates because a single index row can be
>   used to point to both old and new values.
2006-06-24 23:47:58 +00:00
Bruce Momjian
fc6a2293b5 Add UPDATE entry for row reuse.
>
> * Allow heap reuse of UPDATEd rows if old and new versions are on the
>   same heap page?
>
>   This is possible for same-page updates because a single index row
>   can point to both old and new values.
>   http://archives.postgresql.org/pgsql-hackers/2006-06/msg01305.php
2006-06-24 23:45:02 +00:00
Tom Lane
eaf8f312c7 Some editorial work on the documentation of the current-date/time
functions.
2006-06-19 16:13:01 +00:00
Tom Lane
b13c9686d0 Take the statistics collector out of the loop for monitoring backends'
current commands; instead, store current-status information in shared
memory.  This substantially reduces the overhead of stats_command_string
and also ensures that pg_stat_activity is fully up to date at all times.
Per my recent proposal.
2006-06-19 01:51:22 +00:00
Bruce Momjian
6075feed40 Update my email address. 2006-06-18 19:34:00 +00:00
Peter Eisentraut
5266f221a2 Merge postmaster and postgres command into just postgres. postmaster
symlink is kept for now for compatibility.  To call single-user mode, use
postgres --single.
2006-06-18 15:38:37 +00:00
Tom Lane
c892643a3c Code review for SELECT INTO STRICT patch: use saner choices of error
SQLSTATEs, fix some documentation problems.
2006-06-16 23:29:27 +00:00
Tom Lane
3ba3e6c8ce Clean up after someone's curious idea that it'd be good to strip
leading zeroes from the SQLSTATE codes.  They're strings, people,
not numbers.
2006-06-16 22:41:45 +00:00
Andrew Dunstan
e287fb27a5 docs for DROP ... IF EXISTS for the following cases:
language, tablespace, trigger, rule, opclass, function, aggregate. operator, and cast.
2006-06-16 22:27:55 +00:00
Bruce Momjian
bac6570e78 Add:
> 		o Allow PL/python to composite types and result sets
> 		  once buggy assert-enabled versions of python can be detected
>
> 		  http://archives.postgresql.org/pgsql-patches/2006-04/msg00087.php
2006-06-16 22:08:46 +00:00
Bruce Momjian
dceac3acc0 Add:
>
> * Fix CREATE CAST on DOMAINs
>
>   http://archives.postgresql.org/pgsql-hackers/2006-05/msg00072.php
2006-06-16 22:05:01 +00:00
Bruce Momjian
4fff9d7290 Document issues with non-default tablespaces and pg_dumpall restores.
Backpatch documentation addition to 8.1.X.
2006-06-16 22:01:17 +00:00
Bruce Momjian
b055f00ebb Add URL for ISO dates:
> 		  http://archives.postgresql.org/pgsql-bugs/2006-04/msg00248.php
2006-06-16 21:41:24 +00:00
Bruce Momjian
e79cc2db00 Add URL for currency type:
>   http://archives.postgresql.org/pgsql-general/2005-08/msg01432.php
2006-06-16 19:49:50 +00:00
Bruce Momjian
237756b1ce Add URL for updatable views:
>   http://archives.postgresql.org/pgsql-hackers/2006-03/msg00586.php
2006-06-16 18:50:24 +00:00
Bruce Momjian
1d9273b506 Add:
> * Consider shrinking expired tuples to just their headers
>   http://archives.postgresql.org/pgsql-patches/2006-03/msg00142.php
2006-06-16 18:48:42 +00:00
Bruce Momjian
b49ce32da1 Add URL to:
* Auto-fill the free space map by scanning the buffer cache or by
  checking pages written by the background writer
2006-06-16 18:38:39 +00:00
Bruce Momjian
64861671c9 Add URL for freespace map filling.
>
>   http://archives.postgresql.org/pgsql-hackers/2006-02/msg01125.php
>
2006-06-16 18:37:31 +00:00
Bruce Momjian
632545d15c >
> * Add support for public SYNONYMS
>
>   http://archives.postgresql.org/pgsql-hackers/2006-03/msg00519.php
2006-06-16 18:32:07 +00:00
Bruce Momjian
16d8e82221 > o Add PL/Python tracebacks
>
>                http://archives.postgresql.org/pgsql-patches/2006-02/msg00288.php
2006-06-16 18:11:03 +00:00
Bruce Momjian
dc86109eba Add:
> 		o Fix problems with RETURN NEXT on tables with
> 		  dropped/added columns after function creation
>
> 		  http://archives.postgresql.org/pgsql-patches/2006-02/msg00165.php
2006-06-16 17:44:43 +00:00
Bruce Momjian
ad44b464d1 Add URL for:
> * Allow protocol-level BIND parameter values to be logged
>
>   http://archives.postgresql.org/pgsql-hackers/2006-02/msg00165.php
2006-06-16 17:25:38 +00:00
Bruce Momjian
56e967f4ba Add to locale TODO.detail. 2006-06-16 17:14:32 +00:00
Bruce Momjian
cfe71bd35d Add URL for ISO date/time syntax:
>
> 		  http://archives.postgresql.org/pgsql-hackers/2006-01/msg00250.php
>
2006-06-16 16:59:30 +00:00
Bruce Momjian
28b0d6bf62 Add LDAP documentation missed in code patch.
Magnus Hagander
2006-06-16 15:16:16 +00:00
Bruce Momjian
8fc2a5afa7 Update preload_library magic block wording. 2006-06-16 12:47:49 +00:00
Bruce Momjian
91fc80d0d3 Fix:
< 		  get_employee_salary(emp_id AS 12345, tax_year AS 2001)
> 		  get_employee_salary(12345 AS emp_id, 2001 AS tax_year)
2006-06-16 04:04:52 +00:00
Bruce Momjian
57ffc4d78b Update magic block wording for preloaded libraries. 2006-06-16 04:02:35 +00:00
Bruce Momjian
a584c12426 Add STRICT to PL/pgSQL SELECT INTO, so exceptions are thrown if more or
less than one row is returned by the SELECT, for Oracle PL/SQL
compatibility.

Improve SELECT INTO documentation.

Matt Miller
2006-06-15 18:02:22 +00:00
Bruce Momjian
eb5558bce8 Fix to_ascii() markup error. 2006-06-15 17:52:48 +00:00