rather than when returning to the idle loop. This makes no particular
difference for interactively-issued queries, but it makes a big difference
for queries issued within functions: trigger execution now occurs before
the calling function is allowed to proceed. This responds to numerous
complaints about nonintuitive behavior of foreign key checking, such as
http://archives.postgresql.org/pgsql-bugs/2004-09/msg00020.php, and
appears to be required by the SQL99 spec.
Also take the opportunity to simplify the data structures used for the
pending-trigger list, rename them for more clarity, and squeeze out a
bit of space.
<P>In pre-8.0 releases, indexes often can not be used unless the data
types exactly match the index's column types. This is particularly
true of int2, int8, and numeric column indexes.</P>
to allow DBA to choose the form in which log filenames reflect the
current time. Also allow for truncating instead of appending to
pre-existing files --- this is convenient when the log filename pattern
rewrites the same names cyclically. Per Ed L.
Fix TablespaceCreateDbspace() to be able to create a dummy directory
in place of a dropped tablespace's symlink. This eliminates the open
problem of a PANIC during WAL replay when a replayed action attempts
to touch a file in a since-deleted tablespace. It also makes for a
significant improvement in the usability of PITR replay.
< This would require some background daemon to maintain clustering
> This might require some background daemon to maintain clustering
397,398c397,398
< paritally filled for easier reorganization. It also might require
< creating a merged heap/index data file so an index lookup would
> paritally filled for easier reorganization. Another idea would
> be to create a merged heap/index data file so an index lookup would
< This would require some background daemon to restore clustering
> This would require some background daemon to maintain clustering
397c397,399
< paritally filled for easier reorganization.
> paritally filled for easier reorganization. It also might require
> creating a merged heap/index data file so an index lookup would
> automatically access the heap data too.
> * Merge hardwired timezone names with the TZ database; allow either kind
> everywhere a TZ name is currently taken
> * Allow customization of the known set of TZ names (generalize the
> present australian_timezones hack)
< * Implement dirty reads or shared row locks and use them in RI triggers (?)
> * Implement dirty reads or shared row locks and use them in RI triggers
>
> Adding shared locks requires recording the table/rows numbers in a
> shared area, and this could potentially be a large amount of data.
> One idea is to store the table/row numbers in a separate table and set
> a bit on the row indicating looking in this new table is required to
> find any shared row locks.
>
SGML markup, add a "deprecated features" section to the 8.0 release
notes, untabify release.sgml and runtime.sgml, and make some other
minor improvements.
< o Allow databases, schemas, and indexes to be moved to different
< tablespaces
> o Allow databases and schemas to be moved to different tablespaces
>
> One complexity is whether moving a schema should move all existing
> schema objects or just define the location for future object creation.
>
382c385
< o Add ALTER INDEX that works just like ALTER TABLE already does
> o -Add ALTER INDEX that works just like ALTER TABLE already does
384d386
< o Add ALTER INDEX syntax to work like ALTER TABLE indexname
< * -Have psql \dn show only visible temp schemas using current_schemas()
< * -Have psql '\i ~/<tab><tab>' actually load files it displays from home dir
484a483,484
> * -Have psql \dn show only visible temp schemas using current_schemas()
> * -Have psql '\i ~/<tab><tab>' actually load files it displays from home dir
516a517,527
>
> * psql tab completion
>
> o Provide a list of conversions after ALTER CONVERSION?
> o Support for ALTER SEQUENCE clauses
> o Add RENAME TO to ALTER TRIGGER
> o Support for ALTER USER
> o Fix ALTER (GROUP|DOMAIN|...) <sth> DROP
> o Support for ALTER LANGUAGE <sth> RENAME TO
> o Improve support for COPY
> o Improve support for ALTER TABLE
file variables:
< Another option is to allow commented values to return to their
< default values.
> This has to address environment variables that are then overridden
> by config file values. Another option is to allow commented values
> to return to their default values.
> pg_restore, as it seems that some people have scripts that rely on the
> previous "abort on error" default behavior when restoring data with a
> direct connection.
>
> Fabien Coelho
< * -Allow pg_dump to dump CREATE CONVERSION (Christopher)
< * -Make pg_restore continue after errors, so it acts more like pg_dump scripts
485,486d482
< * Allow pg_dumpall to use non-text output formats
< * Have pg_dump use multi-statement transactions for INSERT dumps
493,496d488
< * Allow pg_dump to use multiple -t and -n switches
<
< This should be done by allowing a '-t schema.table' syntax.
<
498a491,512
>
> * pg_dump
> o Allow pg_dumpall to use non-text output formats
> o Have pg_dump use multi-statement transactions for INSERT dumps
> o -Allow pg_dump to dump CREATE CONVERSION (Christopher)
> o -Make pg_restore continue after errors, so it acts more like pg_dump
> scripts
> o Allow pg_dump to use multiple -t and -n switches
>
> This should be done by allowing a '-t schema.table' syntax.
>
> o Add dumping of comments on composite type columns
> o Add dumping of comments on index columns
> o Replace crude DELETE FROM method of pg_dumpall for cleaning of
> users and groups with separate DROP commands
> o Add dumping and restoring of LOB comments
> o Stop dumping CASCADE on DROP TYPE commands in clean mode
> o Add full object name to the tag field. eg. for operators we need
> '=(integer, integer)', instead of just '='.
> o Add pg_dumpall custom format dumps. This is probably best done by
> combining pg_dump and pg_dumpall into a single binary
> o Add CSV output format
< * -Allow savepoints / nested transactions [transactions] (Alvaro)
> * -Allow savepoints / nested transactions (Alvaro)
348a349,353
> * Add an option to automatically use savepoints for each statement in a
> multi-statement transaction.
>
> When enabled, this would allow errors in multi-statement transactions
> to be automatically ignored.
> * Set proper permissions on non-system schemas during db creation
>
> Currently all schemas are owned by the super-user because they are
> copied from the template1 database.
>
>
> * Allow buffered WAL writes and fsync
>
> Instead of guaranteeing recovery of all committed transactions, this
> would provide improved performance by delaying WAL writes and fsync
> so an abrupt operating system restart might lose a few seconds of
> committed transactions but still be consistent. We could perhaps
> remove the 'fsync' parameter (which results in an an inconsistent
> database) in favor of this capability.
by the SQL standard. For backwards compatibility, however, continue to
accept the syntax without. Minor editorialization in the reference pages
for these commands, too.
> * Allow finer control over the caching of prepared query plans
>
> Currently, queries prepared via the libpq API are planned on first
> execute using the supplied parameters --- allow SQL PREPARE to do the
> same. Also, allow control over replanning prepared queries either
> manually or automatically when statistics for execute parameters
> differ dramatically from those used during planning.
>
< * Allow DELETE to handle table aliases for self-joins
> * Allow an alias to be provided for the target table in UPDATE/DELETE
276,279c276,282
< There is no way to create a table alias for the deleted table for use
< in the DELETE WHERE clause. The agreed approach is to allow a USING
< clause to specify additional tables. UPDATE already has an optional
< FROM clause for this purpose.
> This is not SQL-spec but many DBMSs allow it.
>
> * Allow additional tables to be specified in DELETE for joins
>
> UPDATE already allows this (UPDATE...FROM) but we need similar
> functionality in DELETE. It's been agreed that the keyword should
> be USING, to avoid anything as confusing as DELETE FROM a FROM b.
was previously allowed in odd places with odd results now causes an ERROR.
Also changed behavior with respect to whitespace -- trailing whitespace is
now ignored as well as leading whitespace (which has always been ignored).
Documentation updated to reflect change in whitespace handling. Also some
refactoring to what I believe is a more sensible order of several paragraphs.
function parameters and dollar quoting in examples; do some polishing
of the existing dollar-quoting docs). The 'how to port from Oracle'
section is looking pretty respectable these days ...
> * Un-comment all variables in postgresql.conf
84,85c84,85
< By removing comments we prevent the confusion that commenting a line
< returns a modified value to its default, which it does not.
> By not showing commented-out variables, we discourage people from
> thinking that re-commenting a variable returns it to its default.
recommend that people go get Apache's rotatelogs program. Additional
benefits are that configuration is done through GUC, rather than
externally, and that the postmaster can monitor the log rotator and
restart it after failure (though we certainly hope that won't happen
often).
Andreas Pflug, some rework by Tom Lane.
subarrays of a given dimension have the same number of elements/subarrays.
Also repair a longstanding undocumented (as far as I can see) ability to
explicitly set array bounds in the array literal syntax. It now can
deal properly with negative array indicies. Modify array_out so that
arrays with non-standard lower bounds (i.e. not 1) are output with
the expicit dimension syntax. This fixes a longstanding issue whereby
arrays with non-default lower bounds had them changed to default
after a dump/reload cycle.
Modify regression tests and docs to suit, and add some minimal
documentation regarding the explicit dimension syntax.
and history files as per recent discussion. While at it, remove
pg_terminate_backend, since we have decided we do not have time during
this release cycle to address the reliability concerns it creates.
Split the 'Miscellaneous Functions' documentation section into
'System Information Functions' and 'System Administration Functions',
which hopefully will draw the eyes of those looking for such things.
number of active subtransaction XIDs in each backend's PGPROC entry,
and use this to avoid expensive probes into pg_subtrans during
TransactionIdIsInProgress. Extend EOXactCallback API to allow add-on
modules to get control at subxact start/end. (This is deliberately
not compatible with the former API, since any uses of that API probably
need manual review anyway.) Add basic reference documentation for
SAVEPOINT and related commands. Minor other cleanups to check off some
of the open issues for subtransactions.
Alvaro Herrera and Tom Lane.
more nearly Oracle-equivalent. Allow matching by category as well as
specific error code. Document the set of available condition names
(or more accurately, synchronize it with the existing documentation). In
passing, update errcodes.sgml to include codes added during 7.5 development.
There are still some things that need refinement; in particular I fear
that the recognized set of error condition names probably has little in
common with what Oracle recognizes. But it's a start.
recovery more manageable. Also, undo recent change to add FILE_HEADER
and WASTED_SPACE records to XLOG; instead make the XLOG page header
variable-size with extra fields in the first page of an XLOG file.
This should fix the boundary-case bugs observed by Mark Kirkwood.
initdb forced due to change of XLOG representation.