|
|
|
@ -1,33 +1,331 @@ |
|
|
|
|
|
|
|
|
|
Release Notes |
|
|
|
|
|
|
|
|
|
7.4 Development Branch |
|
|
|
|
|
|
|
|
|
Below is a subset of the changes that have gone into the development |
|
|
|
|
branch of PostgreSQL since version 7.3. For a complete list of |
|
|
|
|
changes, consult the CVS logs. |
|
|
|
|
|
|
|
|
|
Explicit JOINs no longer constrain query plan, unless |
|
|
|
|
JOIN_COLLAPSE_LIMIT = 1 |
|
|
|
|
Performance of "foo IN (SELECT ...)" queries has been considerably |
|
|
|
|
improved |
|
|
|
|
FETCH 0 now re-fetches cursor's current row, per SQL spec |
|
|
|
|
Revised executor state representation; plan trees are read-only |
|
|
|
|
to executor now |
|
|
|
|
Information schema |
|
|
|
|
Domains now support CHECK constraints |
|
|
|
|
psql backslash commands for listing conversions, casts, and schemas |
|
|
|
|
TRUNCATE TABLE is transaction-safe |
|
|
|
|
CLUSTER can re-cluster a previously clustered table, or all such tables |
|
|
|
|
Statement-level triggers |
|
|
|
|
System can use either hash- or sort-based strategy for grouped |
|
|
|
|
aggregation |
|
|
|
|
ON COMMIT options for temp tables |
|
|
|
|
extra_float_digits option allows pg_dump to dump float data accurately |
|
|
|
|
Long options for psql and pg_dump are now available on all platforms |
|
|
|
|
Read-only transactions |
|
|
|
|
Object owners can allow grantees to grant the privilege to others |
|
|
|
|
(grant option) |
|
|
|
|
|
|
|
|
|
Valid as of 2003-08-01. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Server Operation |
|
|
|
|
|
|
|
|
|
Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce, Tom, Kurt |
|
|
|
|
Roeckx, Andrew Dunstan) |
|
|
|
|
Fix SSL to handle errors cleanly (Nathan Mueller) |
|
|
|
|
SSL protocol security and performance improvements (Sean Chittenden) |
|
|
|
|
Print lock information when a deadlock is detected (Tom) |
|
|
|
|
Update /tmp socket files regularly to avoid their removal (Tom) |
|
|
|
|
Enable PAM for MAC OS X (Aaron Hillegass) |
|
|
|
|
Make btree indexes fully WAL-safe (Tom) |
|
|
|
|
Allow btree index compaction and empty page reuse (Tom) |
|
|
|
|
Fix inconsistent index lookups during split of first root page (Tom) |
|
|
|
|
Improve free space map allocation logic (Tom) |
|
|
|
|
Preserve free space information between postmaster restarts (Tom) |
|
|
|
|
Set proper schema permissions in initdb (Peter) |
|
|
|
|
Add start time to pg_stat_activity (Neil) |
|
|
|
|
New code to detect corrupt disk pages; erase with zero_damaged_pages (Tom) |
|
|
|
|
New client/server protocol: faster, no username length limit, allow |
|
|
|
|
clean exit |
|
|
|
|
Add transaction status, tableid, columnid to backend protocol (Tom) |
|
|
|
|
Add new binary I/O protocol (Tom) |
|
|
|
|
Remove autocommit server setting; move to client applications (Tom) |
|
|
|
|
New error message wording, error codes, and three levels of error detail (Tom) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Performance |
|
|
|
|
|
|
|
|
|
Add hashing for GROUP BY aggregates (Tom) |
|
|
|
|
Allow nested loops to be smarter about multicolumn indexes (Tom) |
|
|
|
|
Allow multi-key hash joins (Tom) |
|
|
|
|
Improve constant folding (Tom) |
|
|
|
|
Add ability to inline simple SQL functions (Tom) |
|
|
|
|
Reduce memory usage for queries using complex functions (Tom) |
|
|
|
|
Improve GEQO optimizer performance (Tom) |
|
|
|
|
Allow IN/NOT IN to be handled via hash tables (Tom) |
|
|
|
|
Improve NOT IN (subquery) performance (Tom) |
|
|
|
|
Allow most IN subqueries to be processed as joins (Tom) |
|
|
|
|
Improve reverse index scan performance (Tom) |
|
|
|
|
Improve optimizer cost computations, particularly for subqueries (Tom) |
|
|
|
|
Assume WHERE a.x = b.y and b.y = 42 also means a.x = 42 (Tom) |
|
|
|
|
Allow hash/merge joins on complex joins (Tom) |
|
|
|
|
Allow hash joins for more data types (Tom) |
|
|
|
|
Allow join optimization of ANSI joins, disable with join_collapse_limit (Tom) |
|
|
|
|
Add from_collapse_limit to control conversion of subqueries to joins (Tom) |
|
|
|
|
Use faster regex code from TCL (Henry Spencer, Tom) |
|
|
|
|
Use bit-mapped relation sets in the optimizer (Tom) |
|
|
|
|
Improve backend startup time (Tom) |
|
|
|
|
Improve trigger/constraint performance (Stephan) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Server Configuration |
|
|
|
|
|
|
|
|
|
Rename server parameter server_min_messages to log_min_messages (Bruce) |
|
|
|
|
Rename show_*_stats to log_*_stats (Bruce) |
|
|
|
|
Rename show_source_port to log_source_port (Bruce) |
|
|
|
|
Rename hostname_lookup to log_hostname (Bruce) |
|
|
|
|
Add checkpoint_warning to warn of excessive checkpointing (Bruce) |
|
|
|
|
Allow the postmaster to preload libraries using preload_libraries (Joe) |
|
|
|
|
New read-only server parameters for localization (Tom) |
|
|
|
|
Change debug server log messages to output as DEBUG rather than LOG (Bruce) |
|
|
|
|
Prevent server log variables from being turned off by non-super users (Bruce) |
|
|
|
|
log_min_messages/client_min_messages now controls debug_* output (Bruce) |
|
|
|
|
Add Rendezvous server support (Chris Campbell) |
|
|
|
|
Add ability to print only slow statements using log_min_duration_statement |
|
|
|
|
(Christopher) |
|
|
|
|
Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan) |
|
|
|
|
New is_superuser read-only variable (Tom) |
|
|
|
|
New server-side parameter log_error_verbosity to control error detail (Tom) |
|
|
|
|
postgres --help-config now dumps server config variables (Tom) |
|
|
|
|
Make default shared_buffers 1000 and max_connections 100, if possible (Tom) |
|
|
|
|
Add pg_settings table to see server settings (Joe) |
|
|
|
|
Prevent assign_session_authorization() from being confused by |
|
|
|
|
all-numeric user names (Tom) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Queries |
|
|
|
|
|
|
|
|
|
New SQL-standard information schema (Peter) |
|
|
|
|
Add read-only transactions (Peter) |
|
|
|
|
Add server variable regex_flavor to control regular expression |
|
|
|
|
processing (Tom) |
|
|
|
|
Allow ORDER BY in FROM subqueries to be honored by outer queries (Tom) |
|
|
|
|
Print key name in foreign-key violation messages (Dmitry Tkach) |
|
|
|
|
Allow users to see their own queries in pg_stat_activity (Kevin Brown) |
|
|
|
|
Allow subquery aggregates to reference upper query columns (?) (Tom) |
|
|
|
|
Add option to prevent auto-addition of tables referenced in query (Nigel J. |
|
|
|
|
Andrews) |
|
|
|
|
Allow dollar signs in identifiers, except as first character (Tom) |
|
|
|
|
Allow UPDATE ... SET col = DEFAULT (Rod) |
|
|
|
|
Allow expressions to be used in LIMIT/OFFSET (Tom) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Object Manipulation |
|
|
|
|
|
|
|
|
|
Make CREATE SEQUENCE grammar more SQL1999 standards compliant (Neil) |
|
|
|
|
Add FOR EACH STATEMENT statement-level triggers (Neil Conway) |
|
|
|
|
Add DOMAIN CHECK constraints (Rod) |
|
|
|
|
Add ALTER DOMAIN .. SET / DROP NOT NULL, SET / DROP DEFAULT, ADD / DROP |
|
|
|
|
CONSTRAINT (Rod) |
|
|
|
|
Allow zero-column tables (Tom) |
|
|
|
|
Have ALTER TABLE ... ADD PRIMARY KEY add NOT NULL constraint (Rod) |
|
|
|
|
Add ALTER DOMAIN OWNER (Rod) |
|
|
|
|
Add pg_trigger.tgenabled to disable triggers? (Neil) |
|
|
|
|
Add ALTER TABLE ... WITHOUT OIDS? (Rod) |
|
|
|
|
Have parser honor foreign-key constraints if created via ALTER TABLE ADD |
|
|
|
|
COLUMN? (Tom) |
|
|
|
|
Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values (Rod) |
|
|
|
|
Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera) |
|
|
|
|
Improve DOMAIN automatic type casting (Tom) |
|
|
|
|
Disallow dollar signs in operator names (Tom) |
|
|
|
|
Allow SQL200X inheritance syntax LIKE <subtable>, INCLUDING DEFAULTS? (Rod) |
|
|
|
|
Object owners can allow grantees to grant privilege to others? |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Utility Commands |
|
|
|
|
|
|
|
|
|
Add ON COMMIT PRESERVE ROWS for temp tables (Gavin) |
|
|
|
|
Allow cursors outside transactions using WITH HOLD (Neil) |
|
|
|
|
Make MOVE/FETCH 0 actually move/fetch 0 (Bruce) |
|
|
|
|
Add MOVE ALL to move to end of cursor (Bruce) |
|
|
|
|
Cause FETCH 1 to return the current cursor row, or zero if at |
|
|
|
|
beginning/end of cursor, per SQL spec (Bruce) |
|
|
|
|
Have MOVE return 0 or 1 depending on cursor position (Bruce) |
|
|
|
|
Properly handle SCROLL with cursors, or report an error (Tom) |
|
|
|
|
Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n options |
|
|
|
|
for FETCH and MOVE (Tom) |
|
|
|
|
Allow EXPLAIN on DECLARE CURSOR (Tom) |
|
|
|
|
Allow CLUSTER to use index marked as pre-clustered by default (Alvaro Herrera) |
|
|
|
|
Allow CLUSTER without tablename clusters all tables (Alvaro Herrera) |
|
|
|
|
Prevent CLUSTER on partial indexes (Tom) |
|
|
|
|
Allow \r and \r\n termination for COPY files (Bruce) |
|
|
|
|
Disallow literal carriage return as a data value, backslash-carriage-return |
|
|
|
|
and \r still allowed (Bruce) |
|
|
|
|
COPY changes (binary, \.)? (Tom) |
|
|
|
|
Recover from COPY IN/OUT failure cleanly (Tom) |
|
|
|
|
Reduce memory used by COPY (Tom) |
|
|
|
|
Make TRUNCATE transaction-safe (Rod) |
|
|
|
|
Multiple pg_dump fixes, including tar format and large objects |
|
|
|
|
Allow pg_dump to dump specific schemas (Neil) |
|
|
|
|
Allow pg_dump to preserve column storage characteristics (Christopher) |
|
|
|
|
Allow pg_dump to preserve CLUSTER characteristics (Christopher) |
|
|
|
|
Have pg_dumpall use GRANT/REVOKE to dump database-level permissions (Tom) |
|
|
|
|
Allow pg_dumpall to support the -a, -s, -x options of pg_dump (Tom) |
|
|
|
|
Prevent pg_dump from lowercasing identifiers specified on the command line (Tom) |
|
|
|
|
Allow EXPLAIN EXECUTE (Neil) |
|
|
|
|
Allow pg_get_constraintdef() to support UNIQUE, PRIMARY KEY and |
|
|
|
|
CHECK constraints (Christopher) |
|
|
|
|
Improve VACUUM performance on indexes by reducing WAL traffic (Tom) |
|
|
|
|
Allow pg_ctl to better handle non-standard ports (Greg) |
|
|
|
|
Functional indexes now support indexes on column expressions (Tom) |
|
|
|
|
Syntax errors now reported as 'syntax error' rather than 'parse error' (Tom) |
|
|
|
|
Have SHOW TRANSACTION_ISOLATION match input to SET TRANSACTION_ISOLATION (Tom) |
|
|
|
|
Have COMMENT ON DATABASE on non-local database generate a warning (Tom) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Data Types and Functions |
|
|
|
|
|
|
|
|
|
New extra_float_digits server parameter to control float precision display |
|
|
|
|
(Pedro Ferreira, Tom) |
|
|
|
|
Allow +1300 as a numeric timezone specifier, for FJST (Tom) |
|
|
|
|
Remove rarely used oidrand(), oidsrand(), and userfntest() functions (Neil) |
|
|
|
|
Add md5() function to main server, already in /contrib/pgcrypto (Joe) |
|
|
|
|
Increase date range of timestamp (John Cochran) |
|
|
|
|
Change EXTRACT(EPOCH FROM timestamp) so timestamp without time zone |
|
|
|
|
is assumed to be in local time, not GMT (Tom) |
|
|
|
|
Trap division by zero in case the operating system doesn't prevent it (Tom) |
|
|
|
|
Change the NUMERIC data type internally to base 10000 (Tom) |
|
|
|
|
New hostmast() function (Greg Wickham) |
|
|
|
|
Fixes for to_char() (Karel) |
|
|
|
|
Allow functions that can take any argument data type and return |
|
|
|
|
any data type, using ANYELEMENT and ANYARRAY (Joe) |
|
|
|
|
Arrays may now be specified as ARRAY[1,2,3], ARRAY[['a','b'],['c','d']], |
|
|
|
|
or ARRAY[ARRAY[ARRAY[2]]] (Joe) |
|
|
|
|
Allow proper comparisons for arrays (Joe) |
|
|
|
|
Allow indexes on array columns, and used in ORDER BY and DISTINCT (Joe) |
|
|
|
|
Allow WHERE qualifications of the form 'col IN/ANY/SOME/ALL (array) (?) (Joe) |
|
|
|
|
Allow SQL functions to return arrays and take them as params (Joe) |
|
|
|
|
Allow array concatenation with '||' and normal array comparisons (Joe) |
|
|
|
|
New array functions array_append(), array_cat(), array_lower(), |
|
|
|
|
array_prepend(), array_to_string(), array_upper(), string_to_array() (Joe) |
|
|
|
|
Allow assignments to empty arrays (Joe) |
|
|
|
|
Allow 60 in seconds fields of timestamp, time, interval input values (Tom) |
|
|
|
|
Allow PREPARE/bind of utility commands like FETCH and EXPLAIN (Tom) |
|
|
|
|
Allow CIDR data type to be cast to text (Tom) |
|
|
|
|
Allow the creation of special LIKE indexes for non-C locales (Peter) |
|
|
|
|
Disallow invalid timezone names (Tom) |
|
|
|
|
Trim trailing spaces when CHAR() data is cast to VARCHAR or TEXT (Tom) |
|
|
|
|
Make FLOAT(p) measure the precision p in bits, not decimal digits (Tom) |
|
|
|
|
Add IPv6 support to the inet and cidr data types (Michael Graff) |
|
|
|
|
Add family() function to report whether address is IPv4 or IPv6 (Michael Graff) |
|
|
|
|
Have SHOW DATESTYLE generate output similar to that used by SET DATESTYLE (Tom) |
|
|
|
|
Change DATESTYLE to output its value in a more common format (Tom) |
|
|
|
|
Make EXTRACT(TIMEZONE) and SET/SHOW TIMEZONE follow the SQL convention |
|
|
|
|
for the sign of timezone offsets, ie, positive is east from UTC (Tom) |
|
|
|
|
Fix date_trunc('quarter',...) (B?jthe Zolt?n) |
|
|
|
|
Make initcap() more compatible with Oracle (Mike Nolan) |
|
|
|
|
Honor only DateStyle setting for date entry without a four-digit year (Greg) |
|
|
|
|
Add new DateStyle values MDY, DMY, and YMD, honor US and European for |
|
|
|
|
backward compatibility (Tom) |
|
|
|
|
'now' will no longer work as a default, use now() (change required for prepared |
|
|
|
|
statements) (Tom) |
|
|
|
|
Assume NaN value to be larger than any other value in comparisons (Tom) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Server-side Languages |
|
|
|
|
|
|
|
|
|
Prevent PL/pgSQL crash when RETURN NEXT is used on a zero-row record (Tom) |
|
|
|
|
Make PL/python's spi_execute interface handle NULLs properly (Andrew Bosma) |
|
|
|
|
Allow PL/pgSQL to declare variables of composite types without %ROWTYPE (Tom) |
|
|
|
|
Fix PL/python _quote() function to handle big integers (?) |
|
|
|
|
Make PL/python an untrusted language, now called plpythonu (Kevin Jacobs, Tom) |
|
|
|
|
Change PL/pgSQL EXECUTE INTO to CREATE TABLE AS EXECUTE? (Peter) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Psql |
|
|
|
|
|
|
|
|
|
Add "\pset pager always" to always use pager (Greg) |
|
|
|
|
Improve tab completion (Rod, Ross Reedstrom, Ian Barwick) |
|
|
|
|
Reorder \? help into groupings (Harald Armin Massa, Bruce) |
|
|
|
|
Add schema, cast, and conversion backslash commands (Christopher) |
|
|
|
|
\encoding now tracks client_encoding server variable (Tom) |
|
|
|
|
Save edit history into readline history (Ross) |
|
|
|
|
Improve \d display (Christopher) |
|
|
|
|
Enhance HTML mode to be more standards-compliant (Greg) |
|
|
|
|
New '\set autocommit off' capability (Tom) |
|
|
|
|
New '\set verbosity' to control error detail (Tom) |
|
|
|
|
New %T prompt string to show transaction status (Tom) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Libpq |
|
|
|
|
|
|
|
|
|
Allow PQcmdTuples() to return row counts for MOVE and FETCH (Neil) |
|
|
|
|
Add PQfreemem() for freeing memory on Win32, suggest for NOTIFY (Bruce) |
|
|
|
|
Document service capability, and add sample file (Bruce) |
|
|
|
|
Make PQsetdbLogin() have the same defaults as PQconnectdb() (Tom) |
|
|
|
|
Allow libpq to cleanly fail when result sets are too large (Tom) |
|
|
|
|
Improve performance of PGunescapeBytea() (Ben Lamb) |
|
|
|
|
Allow threaded with --enable-thread-safety (Lee Kindness, Bruce) |
|
|
|
|
Allow pqInternalNotice() to accept a format string and args instead of |
|
|
|
|
just a preformatted message (Tom, Sean Chittenden) |
|
|
|
|
Allow control SSL negotiation with sslmode values "disable", "allow", |
|
|
|
|
"Prefer", and "require" (Jon Jensen) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
JDBC |
|
|
|
|
|
|
|
|
|
Allow setNull on updateable resultsets |
|
|
|
|
Allow executeBatch on a prepared statement (Barry) |
|
|
|
|
Support SSL connections (Barry) |
|
|
|
|
Handle schema names in result sets (Paul Sorenson) |
|
|
|
|
Add refcursor support (Nic Ferrier) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Miscellaneous Interfaces |
|
|
|
|
|
|
|
|
|
Prevent possible memory leak or core dump during libpgtcl shutdown (Tom) |
|
|
|
|
Add ecpg Informix compatibility (Michael) |
|
|
|
|
Add ecpg DECIMAL type that is fixed length, for Informix (Michael) |
|
|
|
|
Allow threaded ecpg with --enable-thread-safety (Lee Kindness, Bruce) |
|
|
|
|
Allow client interfaces to compile under MinGW/win32 (Bruce) |
|
|
|
|
Move python client interface to http://www.pygresql.org (Marc) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Source Code |
|
|
|
|
|
|
|
|
|
Prevent need for separate platform geometry regression result files (Tom) |
|
|
|
|
Improved PPC locking primitive (Reinhard Max) |
|
|
|
|
Embed LD_LIBRARY_PATH used for build process into binaries (Billy) |
|
|
|
|
New palloc0 to allocate and clear memory (Bruce) |
|
|
|
|
Fix locking code for s390x CPU (64-bit) (Tom) |
|
|
|
|
Allow OpenBSD to use local indent credentials (William Ahern) |
|
|
|
|
Allow read-only query plans (Tom) |
|
|
|
|
Add Darwin startup scripts (David Wheeler) |
|
|
|
|
Allow libpq to compile with Borland C++ compiler (Lester Godwin, Karl Waclawek) |
|
|
|
|
Use our own version of getopt_long() if needed (Peter) |
|
|
|
|
Convert administration scripts to C (Peter) |
|
|
|
|
Bison >=1.85 is now required for grammar changes |
|
|
|
|
Merge documentation into one book (Peter) |
|
|
|
|
Add Win32 compatibility functions (Bruce) |
|
|
|
|
New ereport() function for error reporting (Tom) |
|
|
|
|
Support Intel Linux compiler (Peter) |
|
|
|
|
Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil) |
|
|
|
|
Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Contrib |
|
|
|
|
|
|
|
|
|
Change dbmirror license to BSD |
|
|
|
|
Improve earthdistance (Bruno Wolff III) |
|
|
|
|
Portability improvements to pgcrypto (Marko Kreen) |
|
|
|
|
Prevent xml crash (John Gray, Michael Richards) |
|
|
|
|
Upgrade oracle |
|
|
|
|
Upgrade mysql |
|
|
|
|
Update cube (Bruno Wolff III) |
|
|
|
|
Update earthdistance to use cube (Bruno Wolff III) |
|
|
|
|
Update btree_gist (Oleg) |
|
|
|
|
Add hashes to tablefuncs (Joe) |
|
|
|
|
New pg_autovacuum allows automatic VACUUM (Matthew T. O'Connor) |
|
|
|
|
Allow pgbench to honor PGHOST, PGPORT, PGUSER env. variables (Tatsuo) |
|
|
|
|
Improve intarray (Teodor Sigaev) |
|
|
|
|
Improve pgstattuple (Rod) |
|
|
|
|
Fix second argument to metaphone() in fullystrmatch |
|
|
|
|
Add named persistent connections to dblink (Shridhar Daithanka) |
|
|
|
|
Improve adddepend (Rod) |
|
|
|
|
Update spi/timetravel (B?jthe Zolt?n) |
|
|
|
|
Fix dbase -s option (Thomas Behr) |
|
|
|
|
|
|
|
|
|
_________________________________________________________________ |
|
|
|
|
|
|
|
|
|
Release 7.3.3 |
|
|
|
|