mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-11 23:08:07 +02:00
3130 lines
129 KiB
Plaintext
3130 lines
129 KiB
Plaintext
------------------------------------------------------------------------
|
||
Release 7.2
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.2 (2001-??-??)
|
||
|
||
|
||
This release improved PostgreSQL for use in high volume applications.
|
||
|
||
Major changes in this release:
|
||
|
||
VACUUM - VACUUM no longer locks tables, allowing normal user
|
||
access during the VACUUM. A new VACUUM FULL command does old-style
|
||
vacuum by locking the table and shrinking the on-disk copy of the table.
|
||
|
||
Transactions - There is no longer a problem with installations
|
||
that exceed four billion transactions.
|
||
|
||
OID's - OID's are now optional. Users can now create tables
|
||
without OID's for cases where OID usage is excessive.
|
||
|
||
Optimizer - The system now computes histogram column statistics
|
||
during ANALYZE, allowing much better optimizer choices.
|
||
|
||
Security - A new MD5 encryption option allows much more secure
|
||
storage and transfer of passwords. A new unix-domain socket
|
||
authentication option is available on Linux and *BSD systems.
|
||
|
||
Statistics - Administrators can use the new table access
|
||
statistics module to get fine-grained information about table and index
|
||
usage.
|
||
|
||
Migration to 7.1
|
||
|
||
A dump/restore using pg_dump is required for those wishing to migrate
|
||
data from any previous release. One significant change is that
|
||
SELECT ... LIMIT 10,20 now uses the 10 as the OFFSET and the 20 as
|
||
the LIMIT. Previous versions had this reversed. This change was
|
||
made for MySQL compatibility.
|
||
|
||
|
||
|
||
AS OF 2001-09-13
|
||
|
||
Bug Fixes
|
||
---------
|
||
Prevent unadorned relations names in target list (Bruce)
|
||
Change UPDATE, DELETE permissions to be distinct (Peter E)
|
||
PLpgSQL fix for SELECT... FOR UPDATE (Tom)
|
||
Fix for PL/pgSQL PERFORM returning multiple rows (Tom)
|
||
Fix for inherited CHECK constraints (Stephan Szabo)
|
||
Fix bug in permission modifications in newly created table (Tom)
|
||
Disallow access to pg_statistic for non-super user (Tom)
|
||
Fix SERIAL in temporary tables (Bruce)
|
||
Fire INSERT rules after statement (Jan)
|
||
Fix INITIALLY DEFERRED bug in ecpg
|
||
Remove VACUUM warning about index tuples fewer than heap (Martijn van Oosterhout)
|
||
Disable COPY TO/FROM on views (Bruce)
|
||
Fix problem with LIMIT and subqueries (Tom)
|
||
Fix for LIMIT, DISTINCT ON pushed into subqueryies (Tom)
|
||
PL/pgSQL memory leak fix (Jan, Tom)
|
||
Fix nested EXCEPT/INTERSECT (Tom)
|
||
Python fix fetchone() (Gerhard H<>ring)
|
||
ECPG fixes (Michael, Christof Petig)
|
||
|
||
|
||
Enhancements
|
||
------------
|
||
VACUUM now does not lock table (Tom)
|
||
New VACUUM FULL to force reclaimation of disk space (Tom)
|
||
Statistical collector for table, index access (Jan)
|
||
SPI portal creation of prepared/saved plans (Jan)
|
||
PL/pgSQL uses portals for SELECT loops allowing huge result sets (Jan)
|
||
PL/pgSQL CURSOR and REFCURSOR support (Jan)
|
||
PL/pgSQL can now return open cursors (Jan)
|
||
Add ELSEIF to PL/pgSQL (Klaus Reger)
|
||
New REFERENCES, TRIGGER privileges (Peter E)
|
||
Have psql \d display indexes in unique, primary groupings (Christopher Kings-Lynne)
|
||
Improve PL/pgSQL error reporting (Tom)
|
||
Add DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne)
|
||
PL/pgSQL Allow IS and FOR in cursors (Bruce)
|
||
Native language error messages, psql, pg_dump, libpq, configure --enable-nls (Peter E)
|
||
Allow NULL to appear at beginning/end based on ORDER BY (Tom)
|
||
Add %TYPE capability to CREATE TYPE (Ian Lance Taylor)
|
||
Truncate extra-long sequence names to a reasonable value (Tom)
|
||
Add RESET ALL, SHOW ALL (Marko Kreen)
|
||
Allow GRANT/REVOKE to/from with more than one user (Peter E)
|
||
New has_table_privilege() function (Joe Conway)
|
||
Allow non-super user to vacuum database (Tom)
|
||
New Australian timezone GUC setting (Bruce)
|
||
Untrusted PlPerl (Alex Pilosov)
|
||
New IS UNKNOWN, IS NOT UNKNOWN boolean tests (Tom)
|
||
Fork postmaster before doing authentication to prevent hangs (Peter E)
|
||
Add Temporary sequences (Bruce)
|
||
New GUC set default isolation level (Peter E)
|
||
New SHARE UPDATE EXCLUSIVE lock mode (Tom)
|
||
CREATE/ALTER USER/GROUP now allows options in any order (Vince)
|
||
New encode() function installed by default (Marko Kreen)
|
||
Enable partial indexes (Martijn van Oosterhout)
|
||
Add unix domain socket user authentication in Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
|
||
Pltcl add spi_lastoid capability (bob@redivi.com)
|
||
Add LOCK A,B,C functionality(Neil Padgett)
|
||
Make OID's optional using WITHOUT OIDS (Tom)
|
||
Allow column renaming in views
|
||
SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
|
||
Add convert(), convert2() (Tatsuo)
|
||
Add MD5 encryption (Bruce)
|
||
Allow encryption of stored passwords using MD5 (Bruce)
|
||
Greater randomization of encryption keys using MD5 (Bruce)
|
||
New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
|
||
Sequences now use int8 internally (Tom)
|
||
New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom)
|
||
New option to output SET SESSION AUTHORIZATION commands (Peter E)
|
||
Add automatic return type data casting for SQL functions (Tom)
|
||
Allow safe transaction id wraparound (Tom)
|
||
Use UTF, Unicode in TCL where appropriate (Vsevolod Lobko, Reinhard Max)
|
||
Improved to_*() conversion functions (Karel Zak)
|
||
PAM authentication (Dominic J. Eidson)
|
||
Fix TCL COPY TO/FROM (ljb)
|
||
Allow ALTER TABLE ADD UNIQUE (Christopher Kings-Lynne)
|
||
Super-user id now defaults to 1 (Peter E)
|
||
Reject invalid multibyte character sequences (Tatsuo)
|
||
New libpq PQescapeString() function to escape query strings (Florian Weimer)
|
||
|
||
Types
|
||
-----
|
||
CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo)
|
||
CHAR(), VARCHAR() now returns error on storage of too long string (Peter E)
|
||
BIT, BIT VARYING now returns error on too long input (Peter E)
|
||
New function bit_length() (Peter E)
|
||
inet, cidr text conversion functions (Alex Pilosov)
|
||
inet, cidr operators << and <<= indexable (Alex Pilosov)
|
||
Bytea comparison improvements (Joe Conway)
|
||
|
||
Performance
|
||
-----------
|
||
Optimizer improvements (Tom)
|
||
New histogram column statistics for optimizer (Tom)
|
||
Reuse write-ahead log files rather than discarding them (Tom)
|
||
Cache improvements (Tom)
|
||
IS NULL, IS NOT NULL optimizer improvement (Tom)
|
||
Load pg_hba.conf only on startup and SIGHUP (Bruce)
|
||
|
||
Interfaces
|
||
----------
|
||
JDBC
|
||
return oid of INSERT (Ken K)
|
||
hande more data types (Ken K)
|
||
handle single quotes and newlines in strings (Ken K)
|
||
handle NULL variables (Ken K)
|
||
fix for timezone handling (Barry Lind)
|
||
Improved Druid support
|
||
Allow eight-bit characters with non-multibyte server (Barry Lind)
|
||
support BIT, BINARY types (Ned Wolpert)
|
||
reduce memory usage (Michael Stephens, Dave Cramer)
|
||
update DatabaseMetaData (Peter E)
|
||
add DatabaseMetaData.getCatalogs() (Peter E)
|
||
encoding fixes (Anders Bengtsson)
|
||
get/setCatalog methods (Jason Davies)
|
||
DatabaseMetaData.getColumns() now returns column defaults (Jason Davies)
|
||
jdbc1 and jdbc2 merging (Anders Bengtsson)
|
||
transaction performance improvements (Barry Lind)
|
||
array fixes (Greg Zoller)
|
||
Serialize addition
|
||
fix batch processing (Ren? Pijlman)
|
||
ExecSQL method reorganization (Anders Bengtsson)
|
||
getColumn() fixes (Jeroen van Vianen)
|
||
fix isWriteable() function (Ren? Pijlman)
|
||
Improved passage of jdbc2 conformance tests (Ren? Pijlman)
|
||
Add bytea type capability (Barry Lind)
|
||
ODBC
|
||
remove query limit (Hiroshi)
|
||
remove text field size limit (Hiroshi)
|
||
fix for SQLPrimaryKeys() (Hiroshi)
|
||
procedure calls (Hiroshi)
|
||
FETCH first fix (Aidan Mountford)
|
||
updatable cursors (Hiroshi)
|
||
Most configure options on setable via DSN (Hiroshi)
|
||
multibyte, performance fixes (Hiroshi)
|
||
|
||
|
||
Source Code
|
||
-----------
|
||
Configure, dynamic loader, and shared library fixes (Peter E)
|
||
Watcom fixes (Bernd Tegge)
|
||
QNX fixes
|
||
Cygwin, Win32 server fixes (Jason Tishler)
|
||
Cygwin, Win32 fixes for TCL, perl, Python, PlPython, psql, libpq, libpq++ (Jason Tishler, Gerhard H?ring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)
|
||
Remove SEP_CHAR (Bruce)
|
||
GIST index improvements (Oleg Bartunov, Teodor Sigaev, Tom)
|
||
New contrib/rtree_gist ((Oleg Bartunov, Teodor Sigaev)
|
||
Create temporary files into a separate directory (Bruce)
|
||
Delete orphanded temporary files on postmaster startup (Bruce)
|
||
Add unique index to some system tables (Tom)
|
||
New GUC hooks (Tom)
|
||
Add /contrib/dblink for remote database access (Joe Conway)
|
||
/contrib/ora2pg Oracle conversion utility (Gilles Darold)
|
||
Merge GUC and command line handling (Marko Kreen)
|
||
Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
|
||
/contrib/xml XML conversion utility (John Gray)
|
||
Correct description of translate() function (Bruce)
|
||
/contrib/fulltextindex fixes (Christopher Kings-Lynne)
|
||
Fix for Win32 socket communication failures (Magnus, Mikhail Terekhov)
|
||
/contrib/intarray fixes (Oleg Bartunov)
|
||
Hurd compile fix (Oliver Elphick)
|
||
New /contrib/fuzzystrmatch with lievnshtein and metaphone, soundex merged (Joe Conway)
|
||
Beos fixes (Cyril VELTER)
|
||
Remove OID's from some system tables (Tom)
|
||
/contrib/pgcrypto improvements (Marko Kreen)
|
||
System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom)
|
||
Rename config.h to pg_config.h (Peter E)
|
||
pg_log now pg_clog (Tom)
|
||
PL/Perl compile fixes (Peter E)
|
||
PL/Python now builds by default on some platforms (Peter E)
|
||
Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom)
|
||
Client header reorganization (Peter E)
|
||
Please SQL language manual pages into OS-specific directories (Peter E)
|
||
Better cleanup for semaphore resource failure (Tatsuo, Tom)
|
||
Remove compile-time limit on number of backends (Tom)
|
||
Enable SIGTERM, SIGQUIT to kill backends (Jan)
|
||
New pgjindent utility to indent java code (Bruce)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.1.3
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.1.3 (2001-08-15)
|
||
|
||
Migration to v7.1.3
|
||
|
||
A dump/restore is not required for those running 7.1.X.
|
||
|
||
Changes
|
||
-------
|
||
Remove unused WAL segements of large transactions (Tom)
|
||
Multiaction rule fix (Tom)
|
||
Pl/pgSQL memory allocation fix (Jan)
|
||
VACUUM buffer fix (Tom)
|
||
Regression test fixes (Tom)
|
||
pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
|
||
Fix subselects with DISTINCT ON or LIMIT (Tom)
|
||
BEOS fix
|
||
Disable COPY TO/FROM a view (Tom)
|
||
Cygwin build (Jason Tishler)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.1.2
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.1.2 (2001-05-11)
|
||
|
||
One fix from 7.1.1.
|
||
|
||
Migration to v7.1.2
|
||
|
||
A dump/restore is not required for those running 7.1.X.
|
||
|
||
Changes
|
||
-------
|
||
Fix PL/PgSQL SELECTs when returning no rows
|
||
Fix for psql backslash core dump
|
||
Referential integrity permission fix
|
||
Optimizer fixes
|
||
pg_dump cleanups
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.1.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.1.1 (2001-05-05)
|
||
|
||
This has a variety of fixes from 7.1.
|
||
|
||
Migration to v7.1.1
|
||
|
||
A dump/restore is not required for those running 7.1.
|
||
|
||
Changes
|
||
-------
|
||
Fix for numeric MODULO operator (Tom)
|
||
pg_dump fixes (Philip)
|
||
pg_dump can dump 7.0 databases (Philip)
|
||
readline 4.2 fixes (Peter E)
|
||
JOIN fixes (Tom)
|
||
AIX, MSWIN, VAX,N32K fixes (Tom)
|
||
Multibytes fixes (Tom)
|
||
Unicode fixes (Tatsuo)
|
||
Optimizer improvements (Tom)
|
||
Fix for whole tuples in functions (Tom)
|
||
Fix for pg_ctl and option strings with spaces (Peter E)
|
||
ODBC fixes (Hiroshi)
|
||
EXTRACT can now take string argument (Thomas)
|
||
Python fixes (Darcy)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.1 (2001-04-13)
|
||
|
||
|
||
This release focuses on removing limitations that have existed in the
|
||
PostgreSQL code for many years.
|
||
|
||
Major changes in this release:
|
||
|
||
Write-ahead Log (WAL) - To maintain database consistency in
|
||
case of an operating system crash, previous releases of PostgreSQL
|
||
have forced all data modifications to disk before each transaction
|
||
commit. With WAL, only one log file must be flushed to disk, greatly
|
||
improving performance. If you have been using -F in previous releases
|
||
to disable disk flushes, you may want to consider discontinuing its
|
||
use.
|
||
|
||
TOAST - Previous releases had a compiled-in row length limit,
|
||
typically 8 - 32 kB. This limit made storage of long text fields
|
||
difficult. With TOAST, long rows of any length can be stored with
|
||
good performance.
|
||
|
||
Outer Joins - We now support outer joins. The UNION/NOT IN
|
||
workaround for outer joins is no longer required. We use the SQL92
|
||
outer join syntax.
|
||
|
||
Function Manager - The previous C function manager did not
|
||
handle NULLs properly, nor did it support 64-bit CPU's (Alpha). The
|
||
new function manager does. You can continue using your old custom
|
||
functions, but you may want to rewrite them in the future to use the
|
||
new function manager call interface.
|
||
|
||
Complex Queries - A large number of complex queries that were
|
||
unsupported in previous releases now work. Many combinations of
|
||
views, aggregates, UNION, LIMIT, cursors, subqueries, and inherited
|
||
tables now work properly. Inherited tables are now accessed by
|
||
default. Subqueries in FROM are now supported.
|
||
|
||
Migration to 7.1
|
||
|
||
A dump/restore using pg_dump is required for those wishing to migrate
|
||
data from any previous release.
|
||
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
Many multi-byte/Unicode/locale fixes (Tatsuo and others)
|
||
More reliable ALTER TABLE RENAME (Tom)
|
||
Kerberos V fixes (David Wragg)
|
||
Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
|
||
Prompt username/password on standard error (Bruce)
|
||
Large objects inv_read/inv_write fixes (Tom)
|
||
Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel,
|
||
Daniel Baldoni)
|
||
Prevent query expressions from leaking memory (Tom)
|
||
Allow UPDATE of arrays elements (Tom)
|
||
Wake up lock waiters during cancel (Hiroshi)
|
||
Fix rare cursor crash when using hash join (Tom)
|
||
Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
|
||
Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
|
||
Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
|
||
Fix PL/perl (Alex Kapranoff)
|
||
Disallow LOCK on views (Mark Hollomon)
|
||
Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
|
||
Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
|
||
Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
|
||
Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
|
||
Fix rare failure with TRUNCATE command (Tom)
|
||
Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views,
|
||
DISTINCT, ORDER BY, SELECT...INTO (Tom)
|
||
Fix parser failures during aborted transactions (Tom)
|
||
Allow temporary relations to properly clean up indexes (Bruce)
|
||
Fix VACUUM problem with moving rows in same page (Tom)
|
||
Modify pg_dump to better handle user-defined items in template1 (Philip)
|
||
Allow LIMIT in VIEW (Tom)
|
||
Require cursor FETCH to honor LIMIT (Tom)
|
||
Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
|
||
Allow ORDER BY, LIMIT in sub-selects (Tom)
|
||
Allow UNION in CREATE RULE (Tom)
|
||
Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
|
||
Store initdb collation in pg_control so collation cannot be changed (Tom)
|
||
Fix INSERT...SELECT with rules (Tom)
|
||
Fix FOR UPDATE inside views and subselects (Tom)
|
||
Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
|
||
Fix lpad() and rpad() to handle length less than input string (Tom)
|
||
Fix use of NOTIFY in some rules (Tom)
|
||
Overhaul btree code (Tom)
|
||
Fix NOT NULL use in Pl/PgSQL variables (Tom)
|
||
Overhaul GIST code (Oleg)
|
||
Fix CLUSTER to preserve constraints and column default (Tom)
|
||
Improved deadlock detection handling (Tom)
|
||
Allow multiple SERIAL columns in a table (Tom)
|
||
Prevent occasional index corruption (Vadim)
|
||
|
||
Enhancements
|
||
------------
|
||
Add OUTER JOINs (Tom)
|
||
Function manager overhaul (Tom)
|
||
Allow ALTER TABLE RENAME on indexes (Tom)
|
||
Improve CLUSTER (Tom)
|
||
Improve ps status display for more platforms (Peter E, Marc)
|
||
Improve CREATE FUNCTION failure message (Ross)
|
||
JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
|
||
Gunnar)
|
||
Grand Unified Configuration scheme/GUC. Many options can now be set in
|
||
data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
|
||
Improved handling of file descriptor cache (Tom)
|
||
New warning code about auto-created table alias entries (Bruce)
|
||
Overhaul initdb process (Tom, Peter E)
|
||
Overhaul of inherited tables; inherited tables now accessed by default;
|
||
new ONLY keyword prevents it (Chris Bitmead, Tom)
|
||
ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
|
||
Michael Fork)
|
||
Allow renaming of temp tables (Tom)
|
||
Overhaul memory manager contexts (Tom)
|
||
pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
|
||
Overhaul pg_dump (Philip Warner)
|
||
Allow pg_hba.conf secondary password file to specify only username (Peter E)
|
||
Allow TEMPORARY or TEMP keyword when creating temporary tables (Bruce)
|
||
New memory leak checker (Karel)
|
||
New SET SESSION CHARACTERISTICS (Thomas)
|
||
Allow nested block comments (Thomas)
|
||
Add WITHOUT TIME ZONE type qualifier (Thomas)
|
||
New ALTER TABLE ADD CONSTRAINT (Stephan)
|
||
Use NUMERIC accumulators for INTEGER aggregates (Tom)
|
||
Overhaul aggregate code (Tom)
|
||
New VARIANCE and STDDEV() aggregates
|
||
Improve dependency ordering of pg_dump (Philip)
|
||
New pg_restore command (Philip)
|
||
New pg_dump tar output option (Philip)
|
||
New pg_dump of large objects (Philip)
|
||
New ESCAPE option to LIKE (Thomas)
|
||
New case-insensitive LIKE - ILIKE (Thomas)
|
||
Allow functional indexes to use binary-compatible type (Tom)
|
||
Allow SQL functions to be used in more contexts (Tom)
|
||
New pg_config utility (Peter E)
|
||
New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
|
||
(Jan)
|
||
New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
|
||
New quote_identifiers() and quote_literal() functions (Jan)
|
||
New ALTER TABLE table OWNER TO user command (Mark Hollomon)
|
||
Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
|
||
Update PyGreSQL to version 3.1 (D'Arcy)
|
||
Store tables as files named by OID (Vadim)
|
||
New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
|
||
Require DROP VIEW to remove views, no DROP TABLE (Mark)
|
||
Allow DROP VIEW view1, view2 (Mark)
|
||
Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
|
||
Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
|
||
New /contrib/pgcrypto hashing functions (Marko Kreen)
|
||
New pg_dumpall --globals-only option (Peter E)
|
||
New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
|
||
New AT TIME ZONE syntax (Thomas)
|
||
Allow location of Unix domain socket to be configurable (David J. MacKenzie)
|
||
Allow postmaster to listen on a specific IP address (David J. MacKenzie)
|
||
Allow socket path name to be specified in hostname by using leading slash
|
||
(David J. MacKenzie)
|
||
Allow CREATE DATABASE to specify template database (Tom)
|
||
New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
|
||
New /contrib/rserv replication toolkit (Vadim)
|
||
New file format for COPY BINARY (Tom)
|
||
New /contrib/oid2name to map numeric files to table names (B Palmer)
|
||
New "idle in transaction" ps status message (Marc)
|
||
Update to pgaccess 0.98.7 (Constantin Teodorescu)
|
||
pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
|
||
Add rudimentary dependency checking to pg_dump (Philip)
|
||
|
||
Types
|
||
-----
|
||
Fix INET/CIDR type ordering and add new functions (Tom)
|
||
Make OID behave as an unsigned type (Tom)
|
||
Allow BIGINT as synonym for INT8 (Peter E)
|
||
New int2 and int8 comparison operators (Tom)
|
||
New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
|
||
CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
|
||
New GIST seg/cube examples (Gene Selkov)
|
||
Improved round(numeric) handling (Tom)
|
||
Fix CIDR output formatting (Tom)
|
||
New CIDR abbrev() function (Tom)
|
||
|
||
Performance
|
||
-----------
|
||
Write-Ahead Log (WAL) to provide crash recovery with less performance
|
||
overhead (Vadim)
|
||
ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
|
||
Reduced file seeks (Denis Perchine)
|
||
Improve BTREE code for duplicate keys (Tom)
|
||
Store all large objects in a single table (Denis Perchine, Tom)
|
||
Improve memory allocation performance (Karel, Tom)
|
||
|
||
Source Code
|
||
-----------
|
||
New function manager call conventions (Tom)
|
||
SGI portability fixes (David Kaelbling)
|
||
New configure --enable-syslog option (Peter E)
|
||
New BSDI README (Bruce)
|
||
configure script moved to top level, not /src (Peter E)
|
||
Makefile/configuration/compilation overhaul (Peter E)
|
||
New configure --with-python option (Peter E)
|
||
Solaris cleanups (Peter E)
|
||
Overhaul /contrib Makefiles (Karel)
|
||
New OpenSSL configuration option (Magnus, Peter E)
|
||
AIX fixes (Andreas)
|
||
QNX fixes (Maurizio)
|
||
New heap_open(), heap_openr() API (Tom)
|
||
Remove colon and semi-colon operators (Thomas)
|
||
New pg_class.relkind value for views (Mark Hollomon)
|
||
Rename ichar() to chr() (Karel)
|
||
New documentation for btrim(), ascii(), chr(), repeat() (Karel)
|
||
Fixes for NT/Cygwin (Pete Forman)
|
||
AIX port fixes (Andreas)
|
||
New BeOS port (David Reid, Cyril Velter)
|
||
Add proofreader's changes to docs (Addison-Wesley, Bruce)
|
||
New Alpha spinlock code (Adriaan Joubert, Compaq)
|
||
Unixware port overhaul (Peter E)
|
||
New Darwin/Mac OSX port (Peter Bierman, Bruce Hartzler)
|
||
New FreeBSD Alpha port (Alfred)
|
||
Overhaul shared memory segments (Tom)
|
||
Add IBM S/390 support (Neale Ferguson)
|
||
Moved macmanuf to /contrib (Larry Rosenman)
|
||
Syslog improvements (Larry Rosenman)
|
||
New template0 database that contains no user additions (Tom)
|
||
New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
|
||
Allow NetBSD's libedit instead of readline (Peter)
|
||
Improved assembly language source code format (Bruce)
|
||
New contrib/pg_logger
|
||
New --template option to createdb
|
||
New contrib/pg_control utility (Oliver)
|
||
New FreeBSD tools ipc_check, start-scripts/freebsd
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.0.3
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.0.3 (2000-11-11)
|
||
|
||
This has a variety of fixes from 7.0.2.
|
||
|
||
Migration to v7.0.3
|
||
|
||
A dump/restore is not required for those running 7.0.*.
|
||
|
||
Changes
|
||
-------
|
||
Jdbc fixes (Peter)
|
||
Large object fix (Tom)
|
||
Fix lean in COPY WITH OIDS leak (Tom)
|
||
Fix backwards-index-scan (Tom)
|
||
Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
|
||
Add --enable-syslog to configure (Marc)
|
||
Fix abort transaction at backend exit in rare cases (Tom)
|
||
Fix for psql \l+ when multi-byte enabled (Tatsuo)
|
||
Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
|
||
Make vacuum always flush buffers (Tom)
|
||
Fix to allow cancel while waiting for a lock (Hiroshi)
|
||
Fix for memory aloocation problem in user authentication code (Tom)
|
||
Remove bogus use of int4out() (Tom)
|
||
Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
|
||
Fix for failure of triggers on heap open in certain cases (Jeroen van
|
||
Vianen)
|
||
Fix for erroneous selectivity of not-equals (Tom)
|
||
Fix for erroneous use of strcmp() (Tom)
|
||
Fix for bug where storage manager accesses items beyond end of file
|
||
(Tom)
|
||
Fix to include kernel errno message in all smgr elog messages (Tom)
|
||
Fix for '.' not in PATH at build time (SL Baur)
|
||
Fix for out-of-file-descriptors error (Tom)
|
||
Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
|
||
Fix for subselect in targetlist of Append node (Tom)
|
||
Fix for mergejoin plans (Tom)
|
||
Fix TRUNCATE failure on relations with indexes (Tom)
|
||
Avoid database-wide restart on write error (Hiroshi)
|
||
Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
|
||
Fix VACUUM problem with moving chain of update tuples when source and
|
||
destination of a tuple lie on the same page (Tom)
|
||
Fix user.c CommandCounterIncrement (Tom)
|
||
Fix for AM/PM boundary problem in to_char() (Karel Zak)
|
||
Fix TIME aggregate handling (Tom)
|
||
Fix to_char() to avoid coredump on NULL input (Tom)
|
||
Buffer fix (Tom)
|
||
Fix for inserting/copying longer multibyte strings into char() data
|
||
types (Tatsuo)
|
||
Fix for crash of backend, on abort (Tom)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.0.2
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.0.2 (2000-06-05)
|
||
|
||
This is a repackaging of 7.0.1 with added documentation.
|
||
|
||
Migration to v7.0.2
|
||
|
||
A dump/restore is not required for those running 7.*.
|
||
|
||
Changes
|
||
-------
|
||
Added documentation to tarball.
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.0.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.0.1 (2000-06-01)
|
||
|
||
This is basically a cleanup release for 7.0.1
|
||
|
||
Migration to v7.0.1
|
||
|
||
A dump/restore is not required for those running 7.0.
|
||
|
||
Changes
|
||
-------
|
||
Fix many CLUSTER failures (Tom)
|
||
Allow ALTER TABLE RENAME works on indexes (Tom)
|
||
Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
|
||
New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
|
||
Fix the off by one errors in ResultSet from 6.5.3, and more.
|
||
jdbc ResultSet fixes (Joseph Shraibman)
|
||
optimizer tunings (Tom)
|
||
Fix create user for pgaccess
|
||
Fix for UNLISTEN failure
|
||
IRIX fixes (David Kaelbling)
|
||
QNX fixes (Andreas Kardos)
|
||
Reduce COPY IN lock level (Tom)
|
||
Change libpqeasy to use PQconnectdb() style parameters (Bruce)
|
||
Fix pg_dump to handle OID indexes (Tom)
|
||
Fix small memory leak (Tom)
|
||
Solaris fix for createdb/dropdb (Tatsuo)
|
||
Fix for non-blocking connections (Alfred Perlstein)
|
||
Fix improper recovery after RENAME TABLE failures (Tom)
|
||
Copy pg_ident.conf.sample into /lib directory in install (Bruce)
|
||
Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
|
||
Fix too long syslog message (Tatsuo)
|
||
Fix problem with quoted indexes that are too long (Tom)
|
||
JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
|
||
ecpg changes (Michael)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 7.0
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 7.0 (2000-05-08)
|
||
|
||
This release shows the continued growth of PostgreSQL. There are more
|
||
changes in 7.0 than in any previous release. Don't be concerned this
|
||
is a dot-zero release. We do our best to put out only solid releases,
|
||
and this one is no exception.
|
||
|
||
Major changes in this release:
|
||
|
||
Foreign Keys
|
||
Foreign keys are now implemented, with the exception of PARTIAL
|
||
MATCH foreign keys. Many users have been asking for this
|
||
feature, and we are pleased to offer it.
|
||
|
||
Optimizer Overhaul
|
||
Continuing on work started a year ago, the optimizer has been
|
||
overhauled, allowing improved query execution and better
|
||
performance with less memory usage.
|
||
|
||
Updated psql
|
||
psql, our interactive terminal monitor, has been updated with a
|
||
variety of new features. See the psql manual page for details.
|
||
|
||
Upcoming Features
|
||
In 7.1 or 7.2, we plan to have outer joins, storage for very
|
||
long rows, and a write-ahead logging system.
|
||
|
||
Migration to v7.0
|
||
|
||
A dump/restore using pg_dump is required for those wishing to migrate
|
||
data from any previous release. For those upgrading from 6.5.*, you
|
||
can use pg_upgrade to upgrade to this release.
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
Prevent function calls with more than maximum number of arguments (Tom)
|
||
Improve CASE construct (Tom)
|
||
Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
|
||
Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
|
||
Fix GROUP BY scan bug (Tom)
|
||
Improvements in SQL grammar processing (Tom)
|
||
Fix for views involved in INSERT ... SELECT ... (Tom)
|
||
Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
|
||
Fix for subselects in INSERT ... SELECT (Tom)
|
||
Prevent INSERT ... SELECT ... ORDER BY (Tom)
|
||
Fixes for relations greater than 2GB, including vacuum
|
||
Improve communication of system table changes to other running backends (Tom)
|
||
Improve communication of user table modifications to other running backends (Tom)
|
||
Fix handling of temp tables in complex situations (Bruce, Tom)
|
||
Allow table locking when tables opened, improving concurrent reliability (Tom)
|
||
Properly quote sequence names in pg_dump (Ross J. Reedstrom)
|
||
Prevent DROP DATABASE while others accessing
|
||
Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
|
||
Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
|
||
Fix pg_upgrade so it works for MVCC(Tom)
|
||
Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
|
||
Fix for "f1 datetime DEFAULT 'now'" (Tom)
|
||
Fix problems with CURRENT_DATE used in DEFAULT (Tom)
|
||
Allow comment-only lines, and ;;; lines too. (Tom)
|
||
Improve recovery after failed disk writes, disk full (Hiroshi)
|
||
Fix cases where table is mentioned in FROM but not joined (Tom)
|
||
Allow HAVING clause without aggregate functions (Tom)
|
||
Fix for "--" comment and no trailing newline, as seen in Perl
|
||
Improve pg_dump failure error reports (Bruce)
|
||
Allow sorts and hashes to exceed 2GB file sizes (Tom)
|
||
Fix for pg_dump dumping of inherited rules (Tom)
|
||
Fix for NULL handling comparisons (Tom)
|
||
Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
|
||
Fix for dbname with dash
|
||
Prevent DROP INDEX from interfering with other backends (Tom)
|
||
Fix file descriptor leak in verify_password()
|
||
Fix for "Unable to identify an operator =$" problem
|
||
Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
|
||
Fix for recursive exit call (Massimo)
|
||
Fix for extra-long timezones (Jeroen van Vianen)
|
||
Make pg_dump preserve primary key information (Peter E)
|
||
Prevent databases with single quotes (Peter E)
|
||
Prevent DROP DATABASE inside transaction (Peter E)
|
||
ecpg memory leak fixes (Stephen Birch)
|
||
Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
|
||
Y2K timestamp fix (Massimo)
|
||
Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
|
||
Fix for views with tables/columns containing spaces (Tom)
|
||
Prevent permissions on indexes (Peter E)
|
||
Fix for spinlock stuck problem when error is generated (Hiroshi)
|
||
Fix ipcclean on Linux
|
||
Fix handling of NULL constraint conditions (Tom)
|
||
Fix memory leak in odbc driver (Nick Gorham)
|
||
Fix for permission check on UNION tables (Tom)
|
||
Fix to allow SELECT 'a' LIKE 'a' (Tom)
|
||
Fix for SELECT 1 + NULL (Tom)
|
||
Fixes to CHAR
|
||
Fix log() on numeric type (Tom)
|
||
Deprecate ':' and ';' operators
|
||
Allow vacuum of temporary tables
|
||
Disallow inherited columns with the same name as new columns
|
||
Recover or force failure when disk space is exhausted(Hiroshi)
|
||
Fix INSERT INTO ... SELECT with AS columns matching result columns
|
||
Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns(Tom)
|
||
Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT(Tom)
|
||
Fix UNION with LIMIT
|
||
Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
|
||
Fix CREATE TABLE test(col char(2) DEFAULT user)
|
||
Fix mismatched types in CREATE TABLE ... DEFAULT
|
||
Fix SELECT * FROM pg_class where oid in (0,-1)
|
||
Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
|
||
Prevent user who can create databases can modifying pg_database table(Peter E)
|
||
Fix btree to give a useful elog when key > 1/2 (page - overhead)(Tom)
|
||
Fix INSERT of 0.0 into DECIMAL(4,4) field(Tom)
|
||
|
||
Enhancements
|
||
------------
|
||
New CLI interface include file sqlcli.h, based on SQL3/SQL98
|
||
Remove all limits on query length, row length limit still exists (Tom)
|
||
Update jdbc protocol to 2.0 (<ulink url="mailto:jens@jens.de">Jens Glaser</ulink>)
|
||
Add TRUNCATE command to quickly truncate relation (Mike Mascari)
|
||
Fix to give super user and createdb user proper update catalog rights (Peter E)
|
||
Allow ecpg bool variables to have NULL values (Christof)
|
||
Issue ecpg error if NULL value is returned to variable with no NULL
|
||
indicator (Christof)
|
||
Allow ^C to cancel COPY command (Massimo)
|
||
Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
|
||
Function name overloading for dynamically-loaded C functions (Frankpitt)
|
||
Add CmdTuples() to libpq++(Vince)
|
||
New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
|
||
Allow CREATE FUNCTION/WITH clause to be used for all language types
|
||
configure --enable-debug adds -g (Peter E)
|
||
configure --disable-debug removes -g (Peter E)
|
||
Allow more complex default expressions (Tom)
|
||
First real FOREIGN KEY constraint trigger functionality (Jan)
|
||
Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
|
||
Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
|
||
Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
|
||
Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
|
||
Change pgeasy connectdb() parameter ordering (Bruce)
|
||
Add DEC and SESSION_USER as reserved words (Thomas)
|
||
Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
|
||
Add Oracle's COMMENT ON command (<ulink url="mailto:mascarim@yahoo">Mike Mascari</ulink>)
|
||
libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
|
||
Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
|
||
Make USING in COPY optional (Bruce)
|
||
Allow subselects in the target list (Tom)
|
||
Allow subselects on the left side of comparison operators (Tom)
|
||
New parallel regression test (Jan)
|
||
Change backend-side COPY to write files with permissions 644 not 666 (Tom)
|
||
Force permissions on PGDATA directory to be secure, even if it exists (Tom)
|
||
Added psql LASTOID variable to return last inserted oid (Peter E)
|
||
Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
|
||
Add permissions check so only Postgres superuser or table owner can
|
||
vacuum (Peter E)
|
||
New libpq functions to allow asynchronous connections: PQconnectStart(),
|
||
PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
|
||
PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
|
||
New libpq PQsetenv() function (Ewan Mellor)
|
||
create/alter user extension (Peter E)
|
||
New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
|
||
New scripts for create/drop user/db (Peter E)
|
||
Major psql overhaul(Peter E)
|
||
Add const to libpq interface(Peter E)
|
||
New libpq function PQoidValue (Peter E)
|
||
Show specific non-aggregate causing problem with GROUP BY (Tom)
|
||
Make changes to pg_shadow recreate pg_pwd file (Peter E)
|
||
Add aggregate(DISTINCT ...) (Tom)
|
||
Allow flag to control COPY input/output of NULLs (Peter E)
|
||
Make postgres user have a password by default (Peter E)
|
||
Add CREATE/ALTER/DROP GROUP (Peter E)
|
||
All administration scripts now support --long options (Peter E, Karel)
|
||
Vacuumdb script now supports --all option (Peter E)
|
||
ecpg new portable FETCH syntax
|
||
Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF
|
||
and EXEC SQL ENDIF directives
|
||
Add pg_ctl script to control backend start-up (Tatsuo)
|
||
Add postmaster.opts.default file to store start-up flags (Tatsuo)
|
||
Allow --with-mb=SQL_ASCII
|
||
Increase maximum number of index keys to 16 (Bruce)
|
||
Increase maximum number of function arguments to 16 (Bruce)
|
||
Allow configuration of maximum number of index keys and arguments (Bruce)
|
||
Allow unprivileged users to change their passwords (Peter E)
|
||
Password authentication enabled; required for new users (Peter E)
|
||
Disallow dropping a user who owns a database (Peter E)
|
||
Change initdb option --with-mb to --enable-multibyte
|
||
Add option for initdb to prompts for superuser password (Peter E)
|
||
Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
|
||
Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
|
||
New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
|
||
Libpq non-blocking mode (Alfred Perlstein)
|
||
Improve conversion of types in casts that don't specify a length
|
||
New plperl internal programming language (Mark Hollomon)
|
||
Allow COPY IN to read file that do not end with a newline (Tom)
|
||
Indicate when long identifiers are truncated (Tom)
|
||
Allow aggregates to use type equivalency (Peter E)
|
||
Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
|
||
conversion functions (Karel Zak <zakkr@zf.jcu.cz>)
|
||
Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
|
||
Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
|
||
Add NUMERIC and int8 types to ODBC
|
||
Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
|
||
Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
|
||
Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
|
||
Enable backward sequential scan even after reaching EOF (Hiroshi)
|
||
Add btree indexing of boolean values, >= and <= (Don Baccus)
|
||
Print current line number when COPY FROM fails (Massimo)
|
||
Recognize special case of POSIX time zone: "GMT+8" and "GMT-8" (Thomas)
|
||
Add DEC as synonym for "DECIMAL" (Thomas)
|
||
Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas)
|
||
Implement column aliases (aka correlation names) and join syntax (Thomas)
|
||
Allow queries like SELECT a FROM t1 tx (a) (Thomas)
|
||
Allow queries like SELECT * FROM t1 NATURAL JOIN t2 (Thomas)
|
||
Make INTERVAL reserved word allowed as a column identifier (Thomas)
|
||
Implement REINDEX command (Hiroshi)
|
||
Accept ALL in aggregate function SUM(ALL col) (Tom)
|
||
Prevent GROUP BY from using column aliases (Tom)
|
||
New psql \encoding option (Tatsuo)
|
||
Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
|
||
Allow negation of a negative number in all cases
|
||
Add ecpg descriptors (Christof, Michael)
|
||
Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
|
||
Allow casts with length, like foo::char(8)
|
||
New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
|
||
Add support for SJIS user defined characters (Tatsuo)
|
||
Larger views/rules supported
|
||
Make libpq's PQconndefaults() thread-safe (Tom)
|
||
Disable // as comment to be ANSI conforming, should use -- (Tom)
|
||
Allow column aliases on views CREATE VIEW name (collist)
|
||
Fixes for views with subqueries (Tom)
|
||
Allow UPDATE table SET fld = (SELECT ...) (Tom)
|
||
SET command options no longer require quotes
|
||
Update pgaccess to 0.98.6
|
||
New SET SEED command
|
||
New pg_options.sample file
|
||
New SET FSYNC command (Massimo)
|
||
Allow pg_descriptions when creating tables
|
||
Allow pg_descriptions when creating types, columns, and functions
|
||
Allow psql \copy to allow delimiters(Peter E)
|
||
Allow psql to print nulls as distinct from "" [null](Peter E)
|
||
|
||
Types
|
||
-----
|
||
Many array fixes (Tom)
|
||
Allow bare column names to be subscripted as arrays (Tom)
|
||
Improve type casting of int and float constants (Tom)
|
||
Cleanups for int8 inputs, range checking, and type conversion (Tom)
|
||
Fix for SELECT timespan('21:11:26'::time) (Tom)
|
||
Fix for netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0
|
||
(Oleg Sharoiko)
|
||
Add btree index on NUMERIC(Jan)
|
||
Perl fix for large objects containing NUL characters (Douglas Thomson)
|
||
ODBC fix for for large objects (free)
|
||
Fix indexing of cidr data type
|
||
Fix for Ethernet MAC addresses (macaddr type) comparisons
|
||
Fix for date/time types when overflows happened in computations (Tom)
|
||
Allow array on int8 (Peter E)
|
||
Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
|
||
Allow NUMERIC arrays
|
||
Fix bugs in NUMERIC ceil() and floor() functions (Tom)
|
||
Make char_length()/octet_length including trailing blanks (Tom)
|
||
Made abstime/reltime use int4 instead of time_t (Peter E)
|
||
New lztext data type for compressed text fields
|
||
Revise code to handle coercion of int and float constants (Tom)
|
||
New C-routines to implement a BIT and BIT VARYING type in /contrib
|
||
(Adriaan Joubert)
|
||
NUMERIC now accepts scientific notation (Tom)
|
||
NUMERIC to int4 rounds (Tom)
|
||
Convert float4/8 to NUMERIC properly (Tom)
|
||
Allow type conversion with NUMERIC (Thomas)
|
||
Make ISO date style (2000-02-16 09:33) the default (Thomas)
|
||
Add NATIONAL CHAR [ VARYING ]
|
||
Allow NUMERIC round and trunc to accept negative scales (Tom)
|
||
New TIME WITH TIME ZONE type (Thomas)
|
||
Add MAX()/MIN() on time type (Thomas)
|
||
Add abs(), mod(), fac() for int8 (Thomas)
|
||
Add round(), sqrt(), cbrt(), pow()
|
||
Rename NUMERIC power() to pow()
|
||
Improved TRANSLATE() function
|
||
Allow X=-Y operators (Tom)
|
||
Add exp() and ln() as NUMERIC types
|
||
Allow SELECT float8(COUNT(*)) / (SELECT COUNT(*) FROM int4_tbl) FROM int4_tbl
|
||
GROUP BY f1; (Tom)
|
||
Allow LOCALE to use indexes in regular expression searches(Tom)
|
||
Allow creation of functional indexes to use default types
|
||
|
||
Performance
|
||
-----------
|
||
Prevent exponential space consumption with many AND's and OR's (Tom)
|
||
Collect attribute selectivity values for system columns (Tom)
|
||
Reduce memory usage of aggregates (Tom)
|
||
Fix for LIKE optimization to use indexes with multi-byte encodings (Tom)
|
||
Fix r-tree index optimizer selectivity (Thomas)
|
||
Improve optimizer selectivity computations and functions (Tom)
|
||
Optimize btree searching for cases where many equal keys exist (Tom)
|
||
Enable fast LIKE index processing only if index present (Tom)
|
||
Re-use free space on index pages with duplicates (Tom)
|
||
Improve hash join processing (Tom)
|
||
Prevent descending sort if result is already sorted(Hiroshi)
|
||
Allow commuting of index scan query qualifications (Tom)
|
||
Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
|
||
Allocate large memory requests in fix-sized chunks for performance (Tom)
|
||
Fix vacuum's performance by reducing memory allocation requests (Tom)
|
||
Implement constant-expression simplification (Bernard Frankpitt, Tom)
|
||
Allow more than first column to be used to determine start of index scan
|
||
(Hiroshi)
|
||
Prevent quadruple use of disk space when doing internal sorting (Tom)
|
||
Faster sorting by calling fewer functions (Tom)
|
||
Create system indexes to match all system caches (Bruce, Hiroshi)
|
||
Make system caches use system indexes(Bruce)
|
||
Make all system indexes unique(Bruce)
|
||
Improve pg_statistics management for VACUUM speed improvement (Tom)
|
||
Flush backend cache less frequently (Tom, Hiroshi)
|
||
COPY now reuses previous memory allocation, improving performance (Tom)
|
||
Improve optimization cost estimation (Tom)
|
||
Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
|
||
Use DNF instead of CNF where appropriate (Tom, Taral)
|
||
Further cleanup for OR-of-AND WHERE-clauses (Tom)
|
||
Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
|
||
Smarter optimizer computations for random index page access (Tom)
|
||
New SET variable to control optimizer costs (Tom)
|
||
Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
|
||
Reduce optimizer internal housekeeping of join paths for speedup (Tom)
|
||
Major subquery speedup (Tom)
|
||
Fewer fsync writes when fsync is not disabled(Tom)
|
||
Improved LIKE optimizer estimates(Tom)
|
||
Prevent fsync in SELECT-only queries(Vadim)
|
||
Make index creation use psort code, because it is now faster(Tom)
|
||
Allow creation of sort temp tables > 1 Gig
|
||
|
||
Source Tree Changes
|
||
-------------------
|
||
Fix for linux PPC compile
|
||
New generic expression-tree-walker subroutine (Tom)
|
||
Change form() to varargform() to prevent portability problems.
|
||
Improved range checking for large integers on Alphas
|
||
Clean up #include in /include directory (Bruce)
|
||
Add scripts for checking includes (Bruce)
|
||
Remove un-needed #include's from *.c files (Bruce)
|
||
Change #include's to use <> and "" as appropriate (Bruce)
|
||
Enable WIN32 compilation of libpq
|
||
Alpha spinlock fix from <ulink url="mailto:gatgul@voicenet.com">Uncle George</ulink>
|
||
Overhaul of optimizer data structures (Tom)
|
||
Fix to cygipc library (Yutaka Tanida)
|
||
Allow pgsql to work on newer Cygwin snapshots(Dan)
|
||
New catalog version number (Tom)
|
||
Add Linux ARM.
|
||
Rename heap_replace to heap_update
|
||
Update for QNX (Dr. Andreas Kardos)
|
||
New platform-specific regression handling (Tom)
|
||
Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
|
||
Included all yacc and lex files into the distribution (Peter E.)
|
||
Remove lextest, no longer needed (Peter E)
|
||
Fix for libpq and psql on Win32 (Magnus)
|
||
Internally change datetime and timespan into timestamp and interval (Thomas)
|
||
Fix for plpgsql on BSDI
|
||
Add SQL_ASCII test case to the regression test (Tatsuo)
|
||
configure --with-mb now deprecated (Tatsuo)
|
||
NT fixes
|
||
NetBSD fixes <ulink url="mailto:lamj@stat.cmu.edu">Johnny C. Lam</ulink>
|
||
Fixes for Alpha compiles
|
||
New multibyte encodings
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.5.3
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.5.3 (1999-10-13)
|
||
|
||
This is basically a cleanup release for 6.5.2. We have added a new pgaccess
|
||
that was missing in 6.5.2, and installed an NT-specific fix.
|
||
|
||
Migration to v6.5.3
|
||
|
||
A dump/restore is not required for those running 6.5.*.
|
||
|
||
Changes
|
||
-------
|
||
Updated version of pgaccess 0.98
|
||
NT-specific patch
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.5.2
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.5.2 (1999-09-15)
|
||
|
||
This is basically a cleanup release for 6.5.1. We have fixed a variety of
|
||
problems reported by 6.5.1 users.
|
||
|
||
Migration to v6.5.2
|
||
|
||
A dump/restore is not required for those running 6.5.*.
|
||
|
||
Changes
|
||
-------
|
||
subselect+CASE fixes(Tom)
|
||
Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
|
||
Fixes for CASE in WHERE join clauses(Tom)
|
||
Fix BTScan abort(Tom)
|
||
Repair the check for redundant UNIQUE and PRIMARY KEY indices(Thomas)
|
||
Improve it so that it checks for multi-column constraints(Thomas)
|
||
Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
|
||
Allow BSD yacc and bison to compile pl code(Bruce)
|
||
Fix SET NAMES working
|
||
int8 fixes(Thomas)
|
||
Fix vacuum's memory consumption(Hiroshi,Tatsuo)
|
||
Reduce the total memory consumption of vacuum(Tom)
|
||
Fix for timestamp(datetime)
|
||
Rule deparsing bugfixes(Tom)
|
||
Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
|
||
This is to re-use space on index pages freed by vacuum(Vadim)
|
||
document -x for pg_dump(Bruce)
|
||
Fix for unary operators in rule deparser(Tom)
|
||
Comment out FileUnlink of excess segments during mdtruncate()(Tom)
|
||
Irix linking fix from Yu Cao yucao@falcon.kla-tencor.com
|
||
Repair logic error in LIKE: should not return LIKE_ABORT
|
||
when reach end of pattern before end of text(Tom)
|
||
Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
|
||
Updated version of pgaccess 0.98
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.5.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.5.1 (1999-07-15)
|
||
|
||
This is basically a cleanup release for 6.5. We have fixed a variety of
|
||
problems reported by 6.5 users.
|
||
|
||
Migration to v6.5.1
|
||
|
||
A dump/restore is not required for those running 6.5.
|
||
|
||
Changes
|
||
-------
|
||
Add NT README file
|
||
Portability fixes for linux_ppc, Irix, linux_alpha, OpenBSD, alpha
|
||
Remove QUERY_LIMIT, use SELECT...LIMIT
|
||
Fix for EXPLAIN on inheritance(Tom)
|
||
Patch to allow vacuum on multi-segment tables(Hiroshi)
|
||
R-Tree optimizer selectivity fix(Tom)
|
||
ACL file descriptor leak fix(Atsushi Ogawa)
|
||
New expresssion subtree code(Tom)
|
||
Avoid disk writes for read-only transactions(Vadim)
|
||
Fix for removal of temp tables if last transaction was aborted(Bruce)
|
||
Fix to prevent too large tuple from being created(Bruce)
|
||
plpgsql fixes
|
||
Allow port numbers 32k - 64k(Bruce)
|
||
Add ^ precidence(Bruce)
|
||
Rename sort files called pg_temp to pg_sorttemp(Bruce)
|
||
Fix for microseconds in time values(Tom)
|
||
Tutorial source cleanup
|
||
New linux_m68k port
|
||
Fix for sorting of NULL's in some cases(Tom)
|
||
Shared library dependencies fixed (Tom)
|
||
Fixed glitches affecting GROUP BY in subselects(Tom)
|
||
Fix some compiler warnings (Tomoaki Nishiyama)
|
||
Add Win1250 (Czech) support (Pavel Behal)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.5
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.5 (1999-06-09)
|
||
|
||
This release marks a major step in the development team's mastery of the
|
||
source code we inherited from Berkeley. You will see we are now easily
|
||
adding major features, thanks to the increasing size and experience of our
|
||
world-wide development team.
|
||
|
||
Here is a brief summary of the more notable changes:
|
||
|
||
Multi-version concurrency control(MVCC)
|
||
|
||
This removes our old table-level locking, and replaces it with a
|
||
locking system that is superior to most commercial database systems. In
|
||
a traditional system, each row that is modified is locked until
|
||
committed, preventing reads by other users. MVCC uses the natural
|
||
multi-version nature of PostgreSQL to allow readers to continue reading
|
||
consistent data during writer activity. Writers continue to use the
|
||
compact pg_log transaction system. This is all performed without having
|
||
to allocate a lock for every row like traditional database systems. So,
|
||
basically, we no longer are restricted by simple table-level locking;
|
||
we have something better than row-level locking.
|
||
|
||
Hot backups from pg_dump
|
||
|
||
pg_dump takes advantage of the new MVCC features to give a consistant
|
||
database dump/backup while the database stays online and available for
|
||
queries.
|
||
|
||
Numeric data type
|
||
|
||
We now have a true numeric data type, with user-specified precision.
|
||
|
||
Temporary tables
|
||
|
||
Temporary tables are guaranteed to have unique names within a database
|
||
session, and are destroyed on session exit.
|
||
|
||
New SQL features
|
||
|
||
We now have CASE, INTERSECT, and EXCEPT statement support. We have new
|
||
LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT ... FOR UPDATE,
|
||
and an improved LOCK TABLE command.
|
||
|
||
Speedups
|
||
|
||
We continue to speed up PostgreSQL, thanks to the variety of talents
|
||
within our team. We have sped up memory allocation, optimization, table
|
||
joins, and row transfer routines.
|
||
|
||
Ports
|
||
|
||
We continue to expand our port list, this time including WinNT/ix86 and
|
||
NetBSD/arm32.
|
||
|
||
Interfaces
|
||
|
||
Most interfaces have new versions, and existing functionality has been
|
||
improved.
|
||
|
||
Documentation
|
||
|
||
New and updated material is present throughout the documentation. New
|
||
FAQs have been contributed for SGI and AIX platforms. The Tutorial has
|
||
introductory information on SQL from Stefan Simkovics. For the User's
|
||
Guide, there are reference pages covering the postmaster and more
|
||
utility programs, and a new appendix contains details on date/time
|
||
behavior. The Administrator's Guide has a new chapter on
|
||
troubleshooting from Tom Lane. And the Programmer's Guide has a
|
||
description of query processing, also from Stefan, and details on
|
||
obtaining the Postgres source tree via anonymous CVS and CVSup.
|
||
|
||
Migration to v6.5
|
||
|
||
A dump/restore using pg_dump is required for those wishing to migrate data
|
||
from any previous release of Postgres. pg_upgrade can not be used to upgrade
|
||
to this release because the on-disk structure of the tables has changed
|
||
compared to previous releases.
|
||
|
||
The new Multi-Version Concurrency Control (MVCC) features can give somewhat
|
||
different behaviors in multi-user environments. Read and understand the
|
||
following section to ensure that your existing applications will give you
|
||
the behavior you need.
|
||
|
||
Multi-Version Concurrency Control
|
||
|
||
Because readers in 6.5 don't lock data, regardless of transaction isolation
|
||
level, data read by one transaction can be overwritten by another. In other
|
||
words, if a row is returned by SELECT it doesn't mean that this row really
|
||
exists at the time it is returned (i.e. sometime after the statement or
|
||
transaction began) nor that the row is protected from being deleted or
|
||
updated by concurrent transactions before the current transaction does a
|
||
commit or rollback.
|
||
|
||
To ensure the actual existence of a row and protect it against concurrent
|
||
updates one must use SELECT FOR UPDATE or an appropriate LOCK TABLE
|
||
statement. This should be taken into account when porting applications from
|
||
previous releases of Postgres and other environments.
|
||
|
||
Keep the above in mind if you are using contrib/refint.* triggers for
|
||
referential integrity. Additional technics are required now. One way is to
|
||
use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command if a transaction
|
||
is going to update/delete a primary key and use LOCK parent_table IN SHARE
|
||
MODE command if a transaction is going to update/insert a foreign key.
|
||
|
||
Note: Note that if you run a transaction in SERIALIZABLE mode then
|
||
you must execute the LOCK commands above before execution of any
|
||
DML statement (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the
|
||
transaction.
|
||
|
||
These inconveniences will disappear in the future when the ability to read
|
||
dirty (uncommitted) data (regardless of isolation level) and true
|
||
referential integrity will be implemented.
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
Fix text<->float8 and text<->float4 conversion functions(Thomas)
|
||
Fix for creating tables with mixed-case constraints(Billy)
|
||
Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
|
||
Fix bug in pg_dump -z
|
||
Memory overrun cleanups(Tatsuo)
|
||
Fix for lo_import crash(Tatsuo)
|
||
Adjust handling of data type names to suppress double quotes(Thomas)
|
||
Use type coersion for matching columns and DEFAULT(Thomas)
|
||
Fix deadlock so it only checks once after one second of sleep(Bruce)
|
||
Fixes for aggregates and PL/pgsql(Hiroshi)
|
||
Fix for subquery crash(Vadim)
|
||
Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
|
||
Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
|
||
Fix for pg_dump -d or -D and quote special characters in INSERT
|
||
Repair serious problems with dynahash(Tom)
|
||
Fix INET/CIDR portability problems
|
||
Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
|
||
Fix executor so mergejoin of different column types works(Tom)
|
||
Fix for Alpha OR selectivity bug
|
||
Fix OR index selectivity problem(Bruce)
|
||
Fix so \d shows proper length for char()/varchar()(Ryan)
|
||
Fix tutorial code(Clark)
|
||
Improve destroyuser checking(Oliver)
|
||
Fix for Kerberos(Rodney McDuff)
|
||
Fix for dropping database while dirty buffers(Bruce)
|
||
Fix so sequence nextval() can be case-sensitive(Bruce)
|
||
Fix !!= operator
|
||
Drop buffers before destroying database files(Bruce)
|
||
Fix case where executor evaluates functions twice(Tatsuo)
|
||
Allow sequence nextval actions to be case-sensitive(Bruce)
|
||
Fix optimizer indexing not working for negative numbers(Bruce)
|
||
Fix for memory leak in executor with fjIsNull
|
||
Fix for aggregate memory leaks(Erik Riedel)
|
||
Allow username containing a dash GRANT permissions
|
||
Cleanup of NULL in inet types
|
||
Clean up system table bugs(Tom)
|
||
Fix problems of PAGER and \? command(Masaaki Sakaida)
|
||
Reduce default multi-segment file size limit to 1GB(Peter)
|
||
Fix for dumping of CREATE OPERATOR(Tom)
|
||
Fix for backward scanning of cursors(Hiroshi Inoue)
|
||
Fix for COPY FROM STDIN when using \i(Tom)
|
||
Fix for subselect is compared inside an expression(Jan)
|
||
Fix handling of error reporting while returning rows(Tom)
|
||
Fix problems with reference to array types(Tom,Jan)
|
||
Prevent UPDATE SET oid(Jan)
|
||
Fix pg_dump so -t option can handle case-sensitive tablenames
|
||
Fixes for GROUP BY in special cases(Tom, Jan)
|
||
Fix for memory leak in failed queries(Tom)
|
||
DEFAULT now supports mixed-case identifiers(Tom)
|
||
Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde)
|
||
Disable use of pg_dump with both -o and -d options(Bruce)
|
||
Allow pg_dump to properly dump GROUP permissions(Bruce)
|
||
Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
|
||
Fix for computations in views(Jan)
|
||
Fix for aggregates on array indexes(Tom)
|
||
Fix for DEFAULT handles single quotes in value requiring too many quotes
|
||
Fix security problem with non-super users importing/exporting large objects(Tom)
|
||
Rollback of transaction that creates table cleaned up properly(Tom)
|
||
Fix to allow long table and column names to generate proper serial names(Tom)
|
||
|
||
Enhancements
|
||
------------
|
||
Add "vacuumdb" utility
|
||
Speed up libpq by allocating memory better(Tom)
|
||
EXPLAIN all indices used(Tom)
|
||
Implement CASE, COALESCE, NULLIF expression(Thomas)
|
||
New pg_dump table output format(Constantin)
|
||
Add string min()/max() functions(Thomas)
|
||
Extend new type coersion techniques to aggregates(Thomas)
|
||
New moddatetime contrib(Terry)
|
||
Update to pgaccess 0.96(Constantin)
|
||
Add routines for single-byte "char" type(Thomas)
|
||
Improved substr() function(Thomas)
|
||
Improved multi-byte handling(Tatsuo)
|
||
Multi-version concurrency control/MVCC(Vadim)
|
||
New Serialized mode(Vadim)
|
||
Fix for tables over 2gigs(Peter)
|
||
New SET TRANSACTION ISOLATION LEVEL(Vadim)
|
||
New LOCK TABLE IN ... MODE(Vadim)
|
||
Update ODBC driver(Byron)
|
||
New NUMERIC data type(Jan)
|
||
New SELECT FOR UPDATE(Vadim)
|
||
Handle "NaN" and "Infinity" for input values(Jan)
|
||
Improved date/year handling(Thomas)
|
||
Improved handling of backend connections(Magnus)
|
||
New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
|
||
New TCL_ARRAYS option(Massimo)
|
||
New INTERSECT and EXCEPT(Stefan)
|
||
New pg_index.indisprimary for primary key tracking(D'Arcy)
|
||
New pg_dump option to allow dropping of tables before creation(Brook)
|
||
Speedup of row output routines(Tom)
|
||
New READ COMMITTED isolation level(Vadim)
|
||
New TEMP tables/indexes(Bruce)
|
||
Prevent sorting if result is already sorted(Jan)
|
||
New memory allocation optimization(Jan)
|
||
Allow psql to do \p\g(Bruce)
|
||
Allow multiple rule actions(Jan)
|
||
Added LIMIT/OFFSET functionality(Jan)
|
||
Improve optimizer when joining a large number of tables(Bruce)
|
||
New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
|
||
New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
|
||
Improved int8 support(Ryan Bradetich, Thomas, Tom)
|
||
New routines to convert between int8 and text/varchar types(Thomas)
|
||
New bushy plans, where meta-tables are joined(Bruce)
|
||
Enable right-hand queries by default(Bruce)
|
||
Allow reliable maximum number of backends to be set at configure time
|
||
(--with-maxbackends and postmaster switch (-N backends))(Tom)
|
||
GEQO default now 10 tables because of optimizer speedups(Tom)
|
||
Allow NULL=Var for MS-SQL portability(Michael, Bruce)
|
||
Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand)
|
||
Allow psql \d on a view show query(Ryan)
|
||
Speedup for LIKE(Bruce)
|
||
Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
|
||
JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
|
||
Make % operator have precedence like /(Bruce)
|
||
Add new postgres -O option to allow system table structure changes(Bruce)
|
||
Update contrib/pginterface/findoidjoins script(Tom)
|
||
Major speedup in vacuum of deleted rows with indexes(Vadim)
|
||
Allow non-SQL functions to run different versions based on arguments(Tom)
|
||
Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
|
||
Add version number in start-up banners for psql(Masaaki Sakaida)
|
||
New contrib/vacuumlo removes large objects not referenced(Peter)
|
||
New initialization for table sizes so non-vacuumed tables perform better(Tom)
|
||
Improve error messages when a connection is rejected(Tom)
|
||
Support for arrays of char() and varchar() fields(Massimo)
|
||
Overhaul of hash code to increase reliability and performance(Tom)
|
||
Update to PyGreSQL 2.4(D'Arcy)
|
||
Changed debug options so -d4 and -d5 produce different node displays(Jan)
|
||
New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
|
||
Better optimization statistics for system table access(Tom)
|
||
Better handling of non-default block sizes(Massimo)
|
||
Improve GEQO optimizer memory consumption(Tom)
|
||
UNION now suppports ORDER BY of columns not in target list(Jan)
|
||
Major libpq++ improvements(Vince Vielhaber)
|
||
pg_dump now uses -z(ACL's) as default(Bruce)
|
||
backend cache, memory speedups(Tom)
|
||
have pg_dump do everything in one snapshot transaction(Vadim)
|
||
fix for large object memory leakage, fix for pg_dumping(Tom)
|
||
INET type now respects netmask for comparisons
|
||
Make VACUUM ANALYZE only use a readlock(Vadim)
|
||
Allow VIEWs on UNIONS(Jan)
|
||
pg_dump now can generate consistent snapshots on active databases(Vadim)
|
||
|
||
Source Tree Changes
|
||
-------------------
|
||
Improve port matching(Tom)
|
||
Portability fixes for SunOS
|
||
Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak)
|
||
New port to Cobalt Qube(Mips) running Linux(Tatsuo)
|
||
Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
|
||
Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
|
||
Port to NetBSD/macppc(Toshimi Aoki)
|
||
Fix for tcl/tk configuration(Vince)
|
||
Removed CURRENT keyword for rule queries(Jan)
|
||
NT dynamic loading now works(Daniel Horak)
|
||
Add ARM32 support(Andrew McMurry)
|
||
Better support for HPUX 11 and Unixware
|
||
Improve file handling to be more uniform, prevent file descriptor leak(Tom)
|
||
New install commands for plpgsql(Jan)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.4.2
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.4.2 (1998-12-20)
|
||
|
||
The 6.4.1 release was improperly packaged. This also has one additional bug
|
||
fix.
|
||
|
||
Migration to v6.4.2
|
||
|
||
A dump/restore is not required for those running 6.4.*.
|
||
|
||
Changes
|
||
-------
|
||
Fix for datetime constant problem on some platforms(Thomas)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.4.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.4.1 (1998-12-18)
|
||
|
||
This is basically a cleanup release for 6.4. We have fixed a variety of
|
||
problems reported by 6.4 users.
|
||
|
||
Migration to v6.4.1
|
||
|
||
A dump/restore is not required for those running 6.4.
|
||
|
||
Changes
|
||
-------
|
||
Add pg_dump -N flag to force double quotes around identifiers. This is
|
||
the default(Thomas)
|
||
Fix for NOT in where clause causing crash(Bruce)
|
||
EXPLAIN VERBOSE coredump fix(Vadim)
|
||
Fix shared-library problems on Linux
|
||
Fix test for table existance to allow mixed-case and whitespace in
|
||
the table name(Thomas)
|
||
Fix a couple of pg_dump bugs
|
||
Configure matches template/.similar entries better(Tom)
|
||
Change builtin function names from SPI_* to spi_*
|
||
OR WHERE clause fix(Vadim)
|
||
Fixes for mixed-case table names(Billy)
|
||
contrib/linux/postgres.init.csh/sh fix(Thomas)
|
||
libpq memory overrun fix
|
||
SunOS fixes(Tom)
|
||
Change exp() behavior to generate error on underflow(Thomas)
|
||
pg_dump fixes for memory leak, inheritance constraints, layout change
|
||
update pgaccess to 0.93
|
||
Fix prototype for 64-bit platforms
|
||
Multi-byte fixes(Tatsuo)
|
||
New ecpg man page
|
||
Fix memory overruns(Tatsuo)
|
||
Fix for lo_import() crash(Bruce)
|
||
Better search for install program(Tom)
|
||
Timezone fixes(Tom)
|
||
HPUX fixes(Tom)
|
||
Use implicit type coersion for matching DEFAULT values(Thomas)
|
||
Add routines to help with single-byte (internal) character type(Thomas)
|
||
Compilation of libpq for Win32 fixes(Magnus)
|
||
Upgrade to PyGreSQL 2.2(D'Arcy)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.4
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.4 (1998-10-30)
|
||
|
||
There are many new features and improvements in this release. Thanks to our
|
||
developers and maintainers, nearly every aspect of the system has received
|
||
some attention since the previous release. Here is a brief, incomplete
|
||
summary:
|
||
|
||
* Views and rules are now functional thanks to extensive new code in the
|
||
rewrite rules system from Jan Wieck. He also wrote a chapter on it for
|
||
the Programmer's Guide.
|
||
|
||
* Jan also contributed a second procedural language, PL/pgSQL, to go with
|
||
the original PL/pgTCL procedural language he contributed last release.
|
||
|
||
* We have optional multiple-byte character set support from Tatsuo Iishi
|
||
to complement our existing locale support.
|
||
|
||
* Client/server communications has been cleaned up, with better support
|
||
for asynchronous messages and interrupts thanks to Tom Lane.
|
||
|
||
* The parser will now perform automatic type coersion to match arguments
|
||
to available operators and functions, and to match columns and
|
||
expressions with target columns. This uses a generic mechanism which
|
||
supports the type extensibility features of Postgres. There is a new
|
||
chapter in the User's Guide which covers this topic.
|
||
|
||
* Three new data types have been added. Two types, inet and cidr, support
|
||
various forms of IP network, subnet, and machine addressing. There is
|
||
now an 8-byte integer type available on some platforms. See the chapter
|
||
on data types in the User's Guide for details. A fourth type, serial,
|
||
is now supported by the parser as an amalgam of the int4 type, a
|
||
sequence, and a unique index.
|
||
|
||
* Several more SQL92-compatible syntax features have been added,
|
||
including INSERT DEFAULT VALUES
|
||
|
||
* The automatic configuration and installation system has received some
|
||
attention, and should be more robust for more platforms than it has
|
||
ever been.
|
||
|
||
Migration to 6.4
|
||
|
||
A dump/restore using pg_dump or pg_dumpall is required for those wishing to
|
||
migrate data from any previous release of Postgres.
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
|
||
Remove char2-16 data types, use char/varchar(Darren)
|
||
Pqfn not handles a NOTICE message(Anders)
|
||
Reduced busywaiting overhead for spinlocks with many backends (dg)
|
||
Stuck spinlock detection (dg)
|
||
Fix up "ISO-style" timespan decoding and encoding(Thomas)
|
||
Fix problem with table drop after rollback of transaction(Vadim)
|
||
Change error message and remove non-functional update message(Vadim)
|
||
Fix for COPY array checking
|
||
Fix for SELECT 1 UNION SELECT NULL
|
||
Fix for buffer leaks in large object calls(Pascal)
|
||
Change owner from oid to int4 type(Bruce)
|
||
Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
|
||
Fix for shared invalidation cache overflow(Massimo)
|
||
Prevent file descriptor leaks in failed COPY's(Bruce)
|
||
Fix memory leak in libpgtcl's pg_select(Constantin)
|
||
Fix problems with username/passwords over 8 characters(Tom)
|
||
Fix problems with handling of asynchronous NOTIFY in backend(Tom)
|
||
Fix of many bad system table entries(Tom)
|
||
|
||
Enhancements
|
||
------------
|
||
Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
|
||
Show the index used in an EXPLAIN(Zeugswetter)
|
||
EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan)
|
||
Multi-byte awareness of many data types and functions, via configure(Tatsuo)
|
||
New configure --with-mb option(Tatsuo)
|
||
New initdb --pgencoding option(Tatsuo)
|
||
New createdb -E multibyte option(Tatsuo)
|
||
Select version(); now returns PostgreSQL version(Jeroen)
|
||
Libpq now allows asynchronous clients(Tom)
|
||
Allow cancel from client of backend query(Tom)
|
||
Psql now cancels query with Control-C(Tom)
|
||
Libpq users need not issue dummy queries to get NOTIFY messages(Tom)
|
||
NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
|
||
PGresult struct now includes associated error message, if any(Tom)
|
||
Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
|
||
Add routines to convert between varchar and bpchar(Thomas)
|
||
Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
|
||
Add bit flags to support timezonehour and minute in data retrieval(Thomas)
|
||
Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
|
||
Fixes for unary minus parsing with leading spaces(Thomas)
|
||
Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
|
||
Check for and properly ignore FOREIGN KEY column constraints(Thomas)
|
||
Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
|
||
Enable HAVING clause but no fixes elsewhere yet.
|
||
Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
|
||
Save string type if specified for DEFAULT clause handling(Thomas)
|
||
Coerce operations involving different data types(Thomas)
|
||
Allow some index use for columns of different types(Thomas)
|
||
Add capabilities for automatic type conversion(Thomas)
|
||
Cleanups for large objects, so file is truncated on open(Peter)
|
||
Readline cleanups(Tom)
|
||
Allow psql \f \ to make spaces as delimiter(Bruce)
|
||
Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
|
||
Msql compatibility library in /contrib(Aldrin)
|
||
Remove the requirement that ORDER/GROUP BY clause identifiers be
|
||
included in the target list(David)
|
||
Convert columns to match columns in UNION clauses(Thomas)
|
||
Remove fork()/exec() and only do fork()(Bruce)
|
||
Jdbc cleanups(Peter)
|
||
Show backend status on ps command line(only works on some platforms)(Bruce)
|
||
Pg_hba.conf now has a sameuser option in the database field
|
||
Make lo_unlink take oid param, not int4
|
||
New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce)
|
||
Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
|
||
libpgtcl cleanups(Tom)
|
||
Add -error option to libpgtcl's pg_result command(Tom)
|
||
New locale patch, see docs/README/locale(Oleg)
|
||
Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
|
||
New contrib/lo code for large object orphan removal(Peter)
|
||
New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes
|
||
feature, see /doc/README.mb(Tatsuo)
|
||
/contrib/noupdate code to revoke update permission on a column
|
||
Libpq can now be compiled on win32(Magnus)
|
||
Add PQsetdbLogin() in libpq
|
||
New 8-byte integer type, checked by configure for OS support(Thomas)
|
||
Better support for quoted table/column names(Thomas)
|
||
Surround table and column names with double-quotes in pg_dump(Thomas)
|
||
PQreset() now works with passwords(Tom)
|
||
Handle case of GROUP BY target list column number out of range(David)
|
||
Allow UNION in subselects
|
||
Add auto-size to screen to \d? commands(Bruce)
|
||
Use UNION to show all \d? results in one query(Bruce)
|
||
Add \d? field search feature(Bruce)
|
||
Pg_dump issues fewer \connect requests(Tom)
|
||
Make pg_dump -z flag work better, document it in manual page(Tom)
|
||
Add HAVING clause with full support for subselects and unions(Stephan)
|
||
Full text indexing routines in contrib/fulltextindex(Maarten)
|
||
Transaction ids now stored in shared memory(Vadim)
|
||
New PGCLIENTENCODING when issuing COPY command(Tatsuo)
|
||
Support for SQL92 syntax "SET NAMES"(Tatsuo)
|
||
Support for LATIN2-5(Tatsuo)
|
||
Add UNICODE regression test case(Tatsuo)
|
||
Lock manager cleanup, new locking modes for LLL(Vadim)
|
||
Allow index use with OR clauses(Bruce)
|
||
Allows "SELECT NULL ORDER BY 1;"
|
||
Explain VERBOSE prints the plan, and now pretty-prints the plan to
|
||
the postmaster log file(Bruce)
|
||
Add Indices display to \d command(Bruce)
|
||
Allow GROUP BY on functions(David)
|
||
New pg_class.relkind for large objects(Bruce)
|
||
New way to send libpq NOTICE messages to a different location(Tom)
|
||
New \w write command to psql(Bruce)
|
||
New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
|
||
Allow binary-compatible indices to be considered when checking for valid
|
||
indices for restriction clauses containing a constant(Thomas)
|
||
New ISBN/ISSN code in /contrib/isbn_issn
|
||
Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
|
||
New rewrite system fixes many problems with rules and views(Jan)
|
||
* Rules on relations work
|
||
* Event qualifications on insert/update/delete work
|
||
* New OLD variable to reference CURRENT, CURRENT will be remove in future
|
||
* Update rules can reference NEW and OLD in rule qualifications/actions
|
||
* Insert/update/delete rules on views work
|
||
* Multiple rule actions are now supported, surrounded by parentheses
|
||
* Regular users can create views/rules on tables they have RULE permits
|
||
* Rules and views inherit the permissions on the creator
|
||
* No rules at the column level
|
||
* No UPDATE NEW/OLD rules
|
||
* New pg_tables, pg_indexes, pg_rules and pg_views system views
|
||
* Only a single action on SELECT rules
|
||
* Total rewrite overhaul, perhaps for 6.5
|
||
* handle subselects
|
||
* handle aggregates on views
|
||
* handle insert into select from view works
|
||
System indexes are now multi-key(Bruce)
|
||
Oidint2, oidint4, and oidname types are removed(Bruce)
|
||
Use system cache for more system table lookups(Bruce)
|
||
New backend programming language PL/pgSQL in backend/pl(Jan)
|
||
New SERIAL data type, auto-creates sequence/index(Thomas)
|
||
Enable assert checking without a recompile(Massimo)
|
||
User lock enhancements(Massimo)
|
||
New setval() command to set sequence value(Massimo)
|
||
Auto-remove unix socket file on start-up if no postmaster running(Massimo)
|
||
Conditional trace package(Massimo)
|
||
New UNLISTEN command(Massimo)
|
||
Psql and libpq now compile under win32 using win32.mak(Magnus)
|
||
Lo_read no longer stores trailing NULL(Bruce)
|
||
Identifiers are now truncated to 31 characters internally(Bruce)
|
||
Createuser options now availble on the command line
|
||
Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
|
||
Prevent file descriptor leaf from failed COPY(Bruce)
|
||
New pg_upgrade command(Bruce)
|
||
Updated /contrib directories(Massimo)
|
||
New CREATE TABLE DEFAULT VALUES statement available(Thomas)
|
||
New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
|
||
New DECLARE and FETCH feature(Thomas)
|
||
libpq's internal structures now not exported(Tom)
|
||
Allow up to 8 key indexes(Bruce)
|
||
Remove ARCHIVE keyword, that is no longer used(Thomas)
|
||
pg_dump -n flag to supress quotes around indentifiers
|
||
disable system columns for views(Jan)
|
||
new INET and CIDR types for network addresses(TomH, Paul)
|
||
no more double quotes in psql output
|
||
pg_dump now dumps views(Terry)
|
||
new SET QUERY_LIMIT(Tatsuo,Jan)
|
||
|
||
Source Tree Changes
|
||
-------------------
|
||
/contrib cleanup(Jun)
|
||
Inline some small functions called for every row(Bruce)
|
||
Alpha/linux fixes
|
||
Hp/UX cleanups(Tom)
|
||
Multi-byte regression tests(Soonmyung.)
|
||
Remove --disabled options from configure
|
||
Define PGDOC to use POSTGRESDIR by default
|
||
Make regression optional
|
||
Remove extra braces code to pgindent(Bruce)
|
||
Add bsdi shared library support(Bruce)
|
||
New --without-CXX support configure option(Brook)
|
||
New FAQ_CVS
|
||
Update backend flowchart in tools/backend(Bruce)
|
||
Change atttypmod from int16 to int32(Bruce, Tom)
|
||
Getrusage() fix for platforms that do not have it(Tom)
|
||
Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
|
||
NS32K platform fixes(Phil Nelson, John Buller)
|
||
Sco 7/UnixWare 2.x fixes(Billy,others)
|
||
Sparc/Solaris 2.5 fixes(Ryan)
|
||
Pgbuiltin.3 is obsolete, move to doc files(Thomas)
|
||
Even more documention(Thomas)
|
||
Nextstep support(Jacek)
|
||
Aix support(David)
|
||
pginterface manual page(Bruce)
|
||
shared libraries all have version numbers
|
||
merged all OS-specific shared library defines into one file
|
||
smarter TCL/TK configuration checking(Billy)
|
||
smarter perl configuration(Brook)
|
||
configure uses supplied install-sh if no install script found(Tom)
|
||
new Makefile.shlib for shared library configuration(Tom)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.3.2
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.3.2 (1998-04-07)
|
||
|
||
This is a bugfix release for 6.3.x. Refer to the release notes for v6.3 for
|
||
a more complete summary of new features.
|
||
|
||
Summary:
|
||
|
||
* Repairs automatic configuration support for some platforms, including
|
||
Linux, from breakage inadvertently introduced in v6.3.1.
|
||
|
||
* Correctly handles function calls on the left side of BETWEEN and LIKE
|
||
clauses.
|
||
|
||
A dump/restore is NOT required for those running 6.3 or 6.3.1. A 'make
|
||
distclean', 'make', and 'make install' is all that is required. This last
|
||
step should be performed while the postmaster is not running. You should
|
||
re-link any custom applications that use Postgres libraries.
|
||
|
||
For upgrades from pre-v6.3 installations, refer to the installation and
|
||
migration instructions for v6.3.
|
||
|
||
|
||
Changes
|
||
-------
|
||
Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
|
||
Manual page improvements(Bruce)
|
||
BETWEEN and LIKE fix(Thomas)
|
||
fix for psql \connect used by pg_dump(Oliver Elphick)
|
||
New odbc driver
|
||
pgaccess, version 0.86
|
||
qsort removed, now uses libc version, cleanups(Jeroen)
|
||
fix for buffer over-runs detected(Maurice Gittens)
|
||
fix for buffer overrun in libpgtcl(Randy Kunkee)
|
||
fix for UNION with DISTINCT or ORDER BY(Bruce)
|
||
gettimeofday configure check(Doug Winterburn)
|
||
Fix "indexes not used" bug(Vadim)
|
||
docs additions(Thomas)
|
||
Fix for backend memory leak(Bruce)
|
||
libreadline cleanup(Erwan MAS)
|
||
Remove DISTDIR(Bruce)
|
||
Makefile dependency cleanup(Jeroen van Vianen)
|
||
ASSERT fixes(Bruce)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.3.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.3.1 (1998-03-23)
|
||
|
||
Summary:
|
||
|
||
* Additional support for multi-byte character sets.
|
||
|
||
* Repair byte ordering for mixed-endian clients and servers.
|
||
|
||
* Minor updates to allowed SQL syntax.
|
||
|
||
* Improvements to the configuration autodetection for installation.
|
||
|
||
A dump/restore is NOT required for those running 6.3. A 'make distclean',
|
||
'make', and 'make install' is all that is required. This last step should be
|
||
performed while the postmaster is not running. You should re-link any custom
|
||
applications that use Postgres libraries.
|
||
|
||
For upgrades from pre-v6.3 installations, refer to the installation and
|
||
migration instructions for v6.3.
|
||
|
||
|
||
Changes
|
||
-------
|
||
ecpg cleanup/fixes, now version 1.1(Michael Meskes)
|
||
pg_user cleanup(Bruce)
|
||
large object fix for pg_dump and tclsh (alvin)
|
||
LIKE fix for multiple adjacent underscores
|
||
fix for redefining builtin functions(Thomas)
|
||
ultrix4 cleanup
|
||
upgrade to pg_access 0.83
|
||
updated CLUSTER manual page
|
||
multi-byte character set support, see doc/README.mb(Tatsuo)
|
||
configure --with-pgport fix
|
||
pg_ident fix
|
||
big-endian fix for backend communications(Kataoka)
|
||
SUBSTR() and substring() fix(Jan)
|
||
several jdbc fixes(Peter)
|
||
libpgtcl improvements, see libptcl/README(Randy Kunkee)
|
||
Fix for "Datasize = 0" error(Vadim)
|
||
Prevent \do from wrapping(Bruce)
|
||
Remove duplicate Russian character set entries
|
||
Sunos4 cleanup
|
||
Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas)
|
||
CREATE SEQUENCE options to allow a negative integer(Thomas)
|
||
Add "PASSWORD" as an allowed column identifier(Thomas)
|
||
Add checks for UNION target fields(Bruce)
|
||
Fix Alpha port(Dwayne Bailey)
|
||
Fix for text arrays containing quotes(Doug Gibson)
|
||
Solaris compile fix(Albert Chin-A-Young)
|
||
Better identify tcl and tk libs and includes(Bruce)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.3
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.3 (1998-03-01)
|
||
|
||
There are many new features and improvements in this release. Here is a
|
||
brief, incomplete summary:
|
||
|
||
* Many new SQL features, including full SQL92 subselect capability
|
||
(everything is here but target-list subselects).
|
||
|
||
* Support for client-side environment variables to specify time zone and
|
||
date style.
|
||
|
||
* Socket interface for client/server connection. This is the default now
|
||
so you may need to start postmaster with the "-i" flag.
|
||
|
||
* Better password authorization mechanisms. Default table permissions
|
||
have changed.
|
||
|
||
* Old-style "time travel" has been removed. Performance has been
|
||
improved.
|
||
|
||
Note: Bruce Momjian wrote the following notes to introduce the new
|
||
release.
|
||
|
||
There are some general 6.3 issues that I want to mention. These are only the
|
||
big items that can not be described in one sentence. A review of the
|
||
detailed changes list is still needed.
|
||
|
||
First, we now have subselects. Now that we have them, I would like to
|
||
mention that without subselects, SQL is a very limited language. Subselects
|
||
are a major feature, and you should review your code for places where
|
||
subselects provide a better solution for your queries. I think you will find
|
||
that there are more uses for subselects than you may think. Vadim has put us
|
||
on the big SQL map with subselects, and fully functional ones too. The only
|
||
thing you can't do with subselects is to use them in the target list.
|
||
|
||
Second, 6.3 uses unix domain sockets rather than TCP/IP by default. To
|
||
enable connections from other machines, you have to use the new postmaster
|
||
-i option, and of course edit pg_hba.conf. Also, for this reason, the format
|
||
of pg_hba.conf has changed.
|
||
|
||
Third, char() fields will now allow faster access than varchar() or text.
|
||
Specifically, the text and varchar() have a penalty for access to any
|
||
columns after the first column of this type. char() used to also have this
|
||
access penalty, but it no longer does. This may suggest that you redesign
|
||
some of your tables, especially if you have short character columns that you
|
||
have defined as varchar() or text. This and other changes make 6.3 even
|
||
faster than earlier releases.
|
||
|
||
We now have passwords definable independent of any Unix file. There are new
|
||
SQL USER commands. See the pg_hba.conf manual page for more information.
|
||
There is a new table, pg_shadow, which is used to store user information and
|
||
user passwords, and it by default only SELECT-able by the postgres
|
||
super-user. pg_user is now a view of pg_shadow, and is SELECT-able by
|
||
PUBLIC. You should keep using pg_user in your application without changes.
|
||
|
||
User-created tables now no longer have SELECT permission to PUBLIC by
|
||
default. This was done because the ANSI standard requires it. You can of
|
||
course GRANT any permissions you want after the table is created. System
|
||
tables continue to be SELECT-able by PUBLIC.
|
||
|
||
We also have real deadlock detection code. No more sixty-second timeouts.
|
||
And the new locking code implements a FIFO better, so there should be less
|
||
resource starvation during heavy use.
|
||
|
||
Many complaints have been made about inadequate documenation in previous
|
||
releases. Thomas has put much effort into many new manuals for this release.
|
||
Check out the doc/ directory.
|
||
|
||
For performance reasons, time travel is gone, but can be implemented using
|
||
triggers (see pgsql/contrib/spi/README). Please check out the new \d command
|
||
for types, operators, etc. Also, views have their own permissions now, not
|
||
based on the underlying tables, so permissions on them have to be set
|
||
separately. Check /pgsql/interfaces for some new ways to talk to Postgres.
|
||
|
||
This is the first release that really required an explanation for existing
|
||
users. In many ways, this was necessary because the new release removes many
|
||
limitations, and the work-arounds people were using are no longer needed.
|
||
|
||
Migration to v6.3
|
||
|
||
A dump/restore using pg_dump or pg_dumpall is required for those wishing to
|
||
migrate data from any previous release of Postgres.
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
Fix binary cursors broken by MOVE implementation(Vadim)
|
||
Fix for tcl library crash(Jan)
|
||
Fix for array handling, from Gerhard Hintermayer
|
||
Fix acl error, and remove duplicate pqtrace(Bruce)
|
||
Fix psql \e for empty file(Bruce)
|
||
Fix for textcat on varchar() fields(Bruce)
|
||
Fix for DBT Sendproc (Zeugswetter Andres)
|
||
Fix vacuum analyze syntax problem(Bruce)
|
||
Fix for international identifiers(Tatsuo)
|
||
Fix aggregates on inherited tables(Bruce)
|
||
Fix substr() for out-of-bounds data
|
||
Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
|
||
Fix notty output to show status result. -q option still turns it off(Bruce)
|
||
Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
|
||
Fix cluster(Bruce)
|
||
Fix for PQtrace start/stop several times(Bruce)
|
||
Fix a variety of locking problems like newer lock waiters getting
|
||
lock before older waiters, and having readlock people not share
|
||
locks if a writer is waiting for a lock, and waiting writers not
|
||
getting priority over waiting readers(Bruce)
|
||
Fix crashes in psql when executing queries from external files(James)
|
||
Fix problem with multiple order by columns, with the first one having
|
||
NULL values(Jeroen)
|
||
Use correct hash table support functions for float8 and int4(Thomas)
|
||
Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
|
||
Change precedence for boolean operators to match expected behavior(Thomas)
|
||
Generate elog(ERROR) on over-large integer(Bruce)
|
||
Allow multiple-argument functions in constraint clauses(Thomas)
|
||
Check boolean input literals for 'true','false','yes','no','1','0'
|
||
and throw elog(ERROR) if unrecognized(Thomas)
|
||
Major large objects fix
|
||
Fix for GROUP BY showing duplicates(Vadim)
|
||
Fix for index scans in MergeJion(Vadim)
|
||
|
||
Enhancements
|
||
------------
|
||
Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
|
||
New User Manual(Thomas, others)
|
||
Speedup by inlining some frequently-called functions
|
||
Real deadlock detection, no more timeouts(Bruce)
|
||
Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
|
||
CURRENT_USER(Thomas)
|
||
Modify constraint syntax to be SQL92-compliant(Thomas)
|
||
Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
|
||
Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
|
||
Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
|
||
Allow Postgres-style casting ("::") of non-constants(Thomas)
|
||
Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
|
||
Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
|
||
Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
|
||
Allow SQL92 delimited identifiers(Thomas)
|
||
Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
|
||
Support SQL92 syntax for type coercion of literal strings
|
||
(e.g. "DATETIME 'now'")(Thomas)
|
||
Add conversions for int2, int4, and OID types to and from text(Thomas)
|
||
Use shared lock when building indices(Vadim)
|
||
Free memory allocated for an user query inside transaction block after
|
||
this query is done, was turned off in <= 6.2.1(Vadim)
|
||
New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
|
||
New Postgres Procedural Language (PL) backend interface(Jan)
|
||
Rename pg_dump -H option to -h(Bruce)
|
||
Add Java support for passwords, European dates(Peter)
|
||
Use indices for LIKE and ~, !~ operations(Bruce)
|
||
Add hash functions for datetime and timespan(Thomas)
|
||
Time Travel removed(Vadim, Bruce)
|
||
Add paging for \d and \z, and fix \i(Bruce)
|
||
Add Unix domain socket support to backend and to frontend library(Goran)
|
||
Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
|
||
Allow more SQL92 and/or Postgres reserved words as column identifiers(Thomas)
|
||
Augment support for SQL92 SET TIME ZONE...(Thomas)
|
||
SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
|
||
Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
|
||
Enable SET TIME ZONE using TZ environment variable(Thomas)
|
||
Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
|
||
Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
|
||
frontend library initialization environment variables(Thomas)
|
||
Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
|
||
Add pg_description table for info on tables, columns, operators, types, and
|
||
aggregates(Bruce)
|
||
Increase 16 char limit on system table/index names to 32 characters(Bruce)
|
||
Rename system indices(Bruce)
|
||
Add 'GERMAN' option to SET DATESTYLE(Thomas)
|
||
Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
|
||
Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
|
||
Validate numeric input more carefully for delta times(Thomas)
|
||
Implement day of year as possible input to date_part()(Thomas)
|
||
Define timespan_finite() and text_timespan() functions(Thomas)
|
||
Remove archive stuff(Bruce)
|
||
Allow for a pg_password authentication database that is separate from
|
||
the system password file(Todd)
|
||
Dump ACLs, GRANT, REVOKE permissions(Matt)
|
||
Define text, varchar, and bpchar string length functions(Thomas)
|
||
Fix Query handling for inheritance, and cost computations(Bruce)
|
||
Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
|
||
Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
|
||
Implement UNIONs for SELECT(Bruce)
|
||
Add UNION, GROUP, DISTINCT to INSERT(Bruce)
|
||
varchar() stores only necessary bytes on disk(Bruce)
|
||
Fix for BLOBs(Peter)
|
||
Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
|
||
Remove unused "option" from PQconnectdb()
|
||
New LOCK command and lock manual page describing deadlocks(Bruce)
|
||
Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
|
||
Enhance psql \z to show sequences(Bruce)
|
||
Show NOT NULL and DEFAULT in psql \d table(Bruce)
|
||
New psql .psqlrc file start-up(Andrew)
|
||
Modify sample start-up script in contrib/linux to show syslog(Thomas)
|
||
New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
|
||
Unix system time conversions with date/time types in contrib/unixdate(Thomas)
|
||
Update of contrib stuff(Massimo)
|
||
Add Unix socket support to DBD::Pg(Goran)
|
||
New python interface (PyGreSQL 2.0)(D'Arcy)
|
||
New frontend/backend protocol has a version number, network byte order(Phil)
|
||
Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
|
||
CHAR() now faster access than VARCHAR() or TEXT
|
||
ecpg embedded SQL preprocessor
|
||
Reduce system column overhead(Vadmin)
|
||
Remove pg_time table(Vadim)
|
||
Add pg_type attribute to identify types that need length (bpchar, varchar)
|
||
Add report of offending line when COPY command fails
|
||
Allow VIEW permissions to be set separately from the underlying tables.
|
||
For security, use GRANT/REVOKE on views as appropriate(Jan)
|
||
Tables now have no default GRANT SELECT TO PUBLIC. You must
|
||
explicitly grant such permissions.
|
||
Clean up tutorial examples(Darren)
|
||
|
||
Source Tree Changes
|
||
-------------------
|
||
Add new html development tools, and flow chart in /tools/backend
|
||
Fix for SCO compiles
|
||
Stratus computer port Robert Gillies
|
||
Added support for shlib for BSD44_derived & i386_solaris
|
||
Make configure more automated(Brook)
|
||
Add script to check regression test results
|
||
Break parser functions into smaller files, group together(Bruce)
|
||
Rename heap_create to heap_create_and_catalog, rename heap_creatr
|
||
to heap_create()(Bruce)
|
||
Sparc/Linux patch for locking(TomS)
|
||
Remove PORTNAME and reorganize port-specific stuff(Marc)
|
||
Add optimizer README file(Bruce)
|
||
Remove some recursion in optimizer and clean up some code there(Bruce)
|
||
Fix for NetBSD locking(Henry)
|
||
Fix for libptcl make(Tatsuo)
|
||
AIX patch(Darren)
|
||
Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
|
||
function calls to istrue() or isfalse() to allow optimization(Thomas)
|
||
Various fixes NetBSD/Sparc related(TomH)
|
||
Alpha linux locking(Travis,Ryan)
|
||
Change elog(WARN) to elog(ERROR)(Bruce)
|
||
FAQ for FreeBSD(Marc)
|
||
Bring in the PostODBC source tree as part of our standard distribution(Marc)
|
||
A minor patch for HP/UX 10 vs 9(Stan)
|
||
New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
|
||
Unixware patches(Billy)
|
||
New i386 'lock' for spin lock asm(Billy)
|
||
Support for multiplexed backends is removed
|
||
Start an OpenBSD port
|
||
Start an AUX port
|
||
Start a Cygnus port
|
||
Add string functions to regression suite(Thomas)
|
||
Expand a few function names formerly truncated to 16 characters(Thomas)
|
||
Remove un-needed malloc() calls and replace with palloc()(Bruce)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.2.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.2.1 (1997-10-17)
|
||
|
||
This is a bug-fix and usability release on v6.2.
|
||
|
||
Summary:
|
||
|
||
* Allow strings to span lines, per SQL92.
|
||
|
||
* Include example trigger function for inserting user names on table
|
||
updates.
|
||
|
||
This is a minor bug-fix release on v6.2. For upgrades from pre-v6.2 systems,
|
||
a full dump/reload is required. Refer to the v6.2 release notes for
|
||
instructions.
|
||
|
||
Migration from v6.2 to v6.2.1
|
||
|
||
This is a minor bug-fix release. A dump/reload is not required from v6.2,
|
||
but is required from any release prior to v6.2.
|
||
|
||
In upgrading from v6.2, if you choose to dump/reload you will find that
|
||
avg(money) is now calculated correctly. All other bug fixes take effect upon
|
||
updating the executables.
|
||
|
||
Another way to avoid dump/reload is to use the following SQL command from
|
||
psql to update the existing system table:
|
||
|
||
update pg_aggregate set aggfinalfn = 'cash_div_flt8'
|
||
where aggname = 'avg' and aggbasetype = 790;
|
||
|
||
This will need to be done to every existing database, including template1.
|
||
|
||
|
||
Changes
|
||
-------
|
||
Allow TIME and TYPE column names(Thomas)
|
||
Allow larger range of true/false as boolean values(Thomas)
|
||
Support output of "now" and "current"(Thomas)
|
||
Handle DEFAULT with INSERT of NULL properly(Vadim)
|
||
Fix for relation reference counts problem in buffer manager(Vadim)
|
||
Allow strings to span lines, like ANSI(Thomas)
|
||
Fix for backward cursor with ORDER BY(Vadim)
|
||
Fix avg(cash) computation(Thomas)
|
||
Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
|
||
Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
|
||
Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.2
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.2 (1997-10-02)
|
||
|
||
|
||
A dump/restore is required for those wishing to migrate data from previous
|
||
releases of Postgres.
|
||
|
||
Migration from v6.1 to v6.2
|
||
|
||
This migration requires a complete dump of the 6.1 database and a restore of
|
||
the database in 6.2.
|
||
|
||
Note that the pg_dump and pg_dumpall utility from 6.2 should be used to dump
|
||
the 6.1 database.
|
||
|
||
Migration from v1.x to v6.2
|
||
|
||
Those migrating from earlier 1.* releases should first upgrade to 1.09
|
||
because the COPY output format was improved from the 1.02 release.
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
|
||
Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
|
||
from Solaris(Diab Jerius)
|
||
Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
|
||
Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
|
||
Catch non-functional delete attempts(Vadim)
|
||
Change time function names to be more consistent(Michael Reifenberg)
|
||
Check for zero divides(Michael Reifenberg)
|
||
Fix very old bug which made tuples changed/inserted by a commnd
|
||
visible to the command itself (so we had multiple update of
|
||
updated tuples, etc)(Vadim)
|
||
Fix for SELECT null, 'fail' FROM pg_am (Patrick)
|
||
SELECT NULL as EMPTY_FIELD now allowed(Patrick)
|
||
Remove un-needed signal stuff from contrib/pginterface
|
||
Fix OR (where x != 1 or x isnull didn't return tuples with x NULL) (Vadim)
|
||
Fix time_cmp function (Vadim)
|
||
Fix handling of functions with non-attribute first argument in
|
||
WHERE clauses (Vadim)
|
||
Fix GROUP BY when order of entries is different from order
|
||
in target list (Vadim)
|
||
Fix pg_dump for aggregates without sfunc1 (Vadim)
|
||
|
||
Enhancements
|
||
------------
|
||
Default genetic optimizer GEQO parameter is now 8(Bruce)
|
||
Allow use parameters in target list having aggregates in functions(Vadim)
|
||
Added JDBC driver as an interface(Adrian & Peter)
|
||
pg_password utility
|
||
Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
|
||
Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
|
||
SPI (Server Programming Interface) allows execution of queries inside
|
||
C-functions (Vadim)
|
||
NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
|
||
Include reserved words for string handling, outer joins, and unions(Thomas)
|
||
Implement extended comments ("/* ... */") using exclusive states(Thomas)
|
||
Add "//" single-line comments(Bruce)
|
||
Remove some restrictions on characters in operator names(Thomas)
|
||
DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas)
|
||
Add text concatenation operator and function (SQL92)(Thomas)
|
||
Support WITH TIME ZONE syntax (SQL92)(Thomas)
|
||
Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
|
||
Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
|
||
and CHARACTER VARYING (SQL92)(Thomas)
|
||
Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
|
||
Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
|
||
Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
|
||
Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
|
||
Add more reserved words, mostly for SQL92 compliance(Thomas)
|
||
Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
|
||
Add center() routines for lseg, path, polygon(Thomas)
|
||
Add distance() routines for circle-polygon, polygon-polygon(Thomas)
|
||
Check explicitly for points and polygons contained within polygons
|
||
using an axis-crossing algorithm(Thomas)
|
||
Add routine to convert circle-box(Thomas)
|
||
Merge conflicting operators for different geometric data types(Thomas)
|
||
Replace distance operator "<===>" with "<->"(Thomas)
|
||
Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
|
||
Add routines for text trimming on both ends, substring, and string position(Thomas)
|
||
Added conversion routines circle(box) and poly(circle)(Thomas)
|
||
Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
|
||
Allow functions and operators on internally-identical types to succeed(Bruce)
|
||
Speed up backend start-up after profiling analysis(Bruce)
|
||
Inline frequently called functions for performance(Bruce)
|
||
Reduce open() calls(Bruce)
|
||
psql: Add PAGER for \h and \?,\C fix
|
||
Fix for psql pager when no tty(Bruce)
|
||
New entab utility(Bruce)
|
||
General trigger functions for referential integrity (Vadim)
|
||
General trigger functions for time travel (Vadim)
|
||
General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
|
||
MOVE implementation (Vadim)
|
||
|
||
Source Tree Changes
|
||
-------------------
|
||
HPUX 10 patches (Vladimir Turin)
|
||
Added SCO support, (Daniel Harris)
|
||
mkLinux patches (Tatsuo Ishii)
|
||
Change geometric box terminology from "length" to "width"(Thomas)
|
||
Deprecate temporary unstored slope fields in geometric code(Thomas)
|
||
Remove restart instructions from INSTALL(Bruce)
|
||
Look in /usr/ucb first for install(Bruce)
|
||
Fix c++ copy example code(Thomas)
|
||
Add -o to psql manual page(Bruce)
|
||
Prevent relname unallocated string length from being copied into database(Bruce)
|
||
Cleanup for NAMEDATALEN use(Bruce)
|
||
Fix pg_proc names over 15 chars in output(Bruce)
|
||
Add strNcpy() function(Bruce)
|
||
remove some (void) casts that are unnecessary(Bruce)
|
||
new interfaces directory(Marc)
|
||
Replace fopen() calls with calls to fd.c functions(Bruce)
|
||
Make functions static where possible(Bruce)
|
||
enclose unused functions in #ifdef NOT_USED(Bruce)
|
||
Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas)
|
||
Changes for Digital Unix
|
||
Portability fix for pg_dumpall(Bruce)
|
||
Rename pg_attribute.attnvals to attdispersion(Bruce)
|
||
"intro/unix" manual page now "pgintro"(Bruce)
|
||
"built-in" manual page now "pgbuiltin"(Bruce)
|
||
"drop" manual page now "drop_table"(Bruce)
|
||
Add "create_trigger", "drop_trigger" manual pages(Thomas)
|
||
Add constraints regression test(Vadim & Thomas)
|
||
Add comments syntax regression test(Thomas)
|
||
Add PGINDENT and support program(Bruce)
|
||
Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
|
||
Files moved to /src/tools directory(Bruce)
|
||
SPI and Trigger programming guides (Vadim & D'Arcy)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.1.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.1.1 (1997-07-22)
|
||
|
||
Migration from v6.1 to v6.1.1
|
||
|
||
This is a minor bug-fix release. A dump/reload is not required from v6.1,
|
||
but is required from any release prior to v6.1. Refer to the release notes
|
||
for v6.1 for more details.
|
||
|
||
|
||
Changes
|
||
-------
|
||
fix for SET with options (Thomas)
|
||
allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
|
||
new psql \connect option allows changing usernames without changing databases
|
||
fix for initdb --debug option(Yoshihiko Ichikawa))
|
||
lextest cleanup(Bruce)
|
||
hash fixes(Vadim)
|
||
fix date/time month boundary arithmetic(Thomas)
|
||
fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
|
||
timestamp overhauled to use standard functions(Thomas)
|
||
other code cleanup in date/time routines(Thomas)
|
||
psql's \d now case-insensitive(Bruce)
|
||
psql's backslash commands can now have trailing semicolon(Bruce)
|
||
fix memory leak in psql when using \g(Bruce)
|
||
major fix for endian handling of communication to server(Thomas, Tatsuo)
|
||
Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
|
||
allow underscores in usernames(Bruce)
|
||
pg_dumpall now returns proper status, portability fix(Bruce)
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.1
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.1 (1997-06-08)
|
||
|
||
|
||
The regression tests have been adapted and extensively modified for the v6.1
|
||
release of Postgres.
|
||
|
||
Three new data types (datetime, timespan, and circle) have been added to the
|
||
native set of Postgres types. Points, boxes, paths, and polygons have had
|
||
their output formats made consistant across the data types. The polygon
|
||
output in misc.out has only been spot-checked for correctness relative to
|
||
the original regression output.
|
||
|
||
Postgres v6.1 introduces a new, alternate optimizer which uses genetic
|
||
algorithms. These algorithms introduce a random behavior in the ordering of
|
||
query results when the query contains multiple qualifiers or multiple tables
|
||
(giving the optimizer a choice on order of evaluation). Several regression
|
||
tests have been modified to explicitly order the results, and hence are
|
||
insensitive to optimizer choices. A few regression tests are for data types
|
||
which are inherently unordered (e.g. points and time intervals) and tests
|
||
involving those types are explicitly bracketed with set geqo to 'off' and
|
||
reset geqo.
|
||
|
||
The interpretation of array specifiers (the curly braces around atomic
|
||
values) appears to have changed sometime after the original regression tests
|
||
were generated. The current ./expected/*.out files reflect this new
|
||
interpretation, which may not be correct!
|
||
|
||
The float8 regression test fails on at least some platforms. This is due to
|
||
differences in implementations of pow() and exp() and the signaling
|
||
mechanisms used for overflow and underflow conditions.
|
||
|
||
The "random" results in the random test should cause the "random" test to be
|
||
"failed", since the regression tests are evaluated using a simple diff.
|
||
However, "random" does not seem to produce random results on my test machine
|
||
(Linux/gcc/i686).
|
||
|
||
Migration to v6.1
|
||
|
||
This migration requires a complete dump of the 6.0 database and a restore of
|
||
the database in 6.1.
|
||
|
||
Those migrating from earlier 1.* releases should first upgrade to 1.09
|
||
because the COPY output format was improved from the 1.02 release.
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
packet length checking in library routines
|
||
lock manager priority patch
|
||
check for under/over flow of float8(Bruce)
|
||
multi-table join fix(Vadim)
|
||
SIGPIPE crash fix(Darren)
|
||
large object fixes(Sven)
|
||
allow btree indexes to handle NULLs(Vadim)
|
||
timezone fixes(D'Arcy)
|
||
select SUM(x) can return NULL on no rows(Thomas)
|
||
internal optimizer, executor bug fixes(Vadim)
|
||
fix problem where inner loop in < or <= has no rows(Vadim)
|
||
prevent re-commuting join index clauses(Vadim)
|
||
fix join clauses for multiple tables(Vadim)
|
||
fix hash, hashjoin for arrays(Vadim)
|
||
fix btree for abstime type(Vadim)
|
||
large object fixes(Raymond)
|
||
fix buffer leak in hash indices (Vadim)
|
||
fix rtree for use in inner scan (Vadim)
|
||
fix gist for use in inner scan, cleanups (Vadim, Andrea)
|
||
avoid unnecessary local buffers allocation (Vadim, Massimo)
|
||
fix local buffers leak in transaction aborts (Vadim)
|
||
fix file manager memmory leaks, cleanups (Vadim, Massimo)
|
||
fix storage manager memmory leaks (Vadim)
|
||
fix btree duplicates handling (Vadim)
|
||
fix deleted tuples re-incarnation caused by vacuum (Vadim)
|
||
fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
|
||
many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
|
||
|
||
Enhancements
|
||
------------
|
||
attribute optimization statistics(Bruce)
|
||
much faster new btree bulk load code(Paul)
|
||
BTREE UNIQUE added to bulk load code(Vadim)
|
||
new lock debug code(Massimo)
|
||
massive changes to libpg++(Leo)
|
||
new GEQO optimizer speeds table multi-table optimization(Martin)
|
||
new WARN message for non-unique insert into unique key(Marc)
|
||
update x=-3, no spaces, now valid(Bruce)
|
||
remove case-sensitive identifier handling(Bruce,Thomas,Dan)
|
||
debug backend now pretty-prints tree(Darren)
|
||
new Oracle character functions(Edmund)
|
||
new plaintext password functions(Dan)
|
||
no such class or insufficient privilege changed to distinct messages(Dan)
|
||
new ANSI timestamp function(Dan)
|
||
new ANSI Time and Date types (Thomas)
|
||
move large chunks of data in backend(Martin)
|
||
multi-column btree indexes(Vadim)
|
||
new SET var TO value command(Martin)
|
||
update transaction status on reads(Dan)
|
||
new locale settings for character types(Oleg)
|
||
new SEQUENCE serial number generator(Vadim)
|
||
GROUP BY function now possible(Vadim)
|
||
re-organize regression test(Thomas,Marc)
|
||
new optimizer operation weights(Vadim)
|
||
new psql \z grant/permit option(Marc)
|
||
new MONEY data type(D'Arcy,Thomas)
|
||
tcp socket communication speed improved(Vadim)
|
||
new VACUUM option for attribute statistics, and for certain columns (Vadim)
|
||
many geometric type improvements(Thomas,Keith)
|
||
additional regression tests(Thomas)
|
||
new datestyle variable(Thomas,Vadim,Martin)
|
||
more comparison operators for sorting types(Thomas)
|
||
new conversion functions(Thomas)
|
||
new more compact btree format(Vadim)
|
||
allow pg_dumpall to preserve database ownership(Bruce)
|
||
new SET GEQO=# and R_PLANS variable(Vadim)
|
||
old (!GEQO) optimizer can use right-sided plans (Vadim)
|
||
typechecking improvement in SQL parser(Bruce)
|
||
new SET, SHOW, RESET commands(Thomas,Vadim)
|
||
new \connect database USER option
|
||
new destroydb -i option (Igor)
|
||
new \dt and \di psql commands (Darren)
|
||
SELECT "\n" now escapes newline (A. Duursma)
|
||
new geometry conversion functions from old format (Thomas)
|
||
|
||
Source tree changes
|
||
-------------------
|
||
new configuration script(Marc)
|
||
readline configuration option added(Marc)
|
||
OS-specific configuration options removed(Marc)
|
||
new OS-specific template files(Marc)
|
||
no more need to edit Makefile.global(Marc)
|
||
re-arrange include files(Marc)
|
||
nextstep patches (Gregor Hoffleit)
|
||
removed WIN32-specific code(Bruce)
|
||
removed postmaster -e option, now only postgres -e option (Bruce)
|
||
merge duplicate library code in front/backends(Martin)
|
||
now works with eBones, international Kerberos(Jun)
|
||
more shared library support
|
||
c++ include file cleanup(Bruce)
|
||
warn about buggy flex(Bruce)
|
||
DG-UX, Ultrix, Irix, AIX portability fixes
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 6.0
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 6.0 (1997-01-29)
|
||
|
||
|
||
A dump/restore is required for those wishing to migrate data from previous
|
||
releases of Postgres.
|
||
|
||
Migration from v1.09 to v6.0
|
||
|
||
This migration requires a complete dump of the 1.09 database and a restore
|
||
of the database in 6.0.
|
||
|
||
Migration from pre-v1.09 to v6.0
|
||
|
||
Those migrating from earlier 1.* releases should first upgrade to 1.09
|
||
because the COPY output format was improved from the 1.02 release.
|
||
|
||
|
||
Bug Fixes
|
||
---------
|
||
ALTER TABLE bug - running postgress process needs to re-read table definition
|
||
Allow vacuum to be run on one table or entire database(Bruce)
|
||
Array fixes
|
||
Fix array over-runs of memory writes(Kurt)
|
||
Fix elusive btree range/non-range bug(Dan)
|
||
Fix for hash indexes on some types like time and date
|
||
Fix for pg_log size explosion
|
||
Fix permissions on lo_export()(Bruce)
|
||
Fix unitialized reads of memory(Kurt)
|
||
Fixed ALTER TABLE ... char(3) bug(Bruce)
|
||
Fixed a few small memory leaks
|
||
Fixed EXPLAIN handling of options and changed full_path option name
|
||
Fixed output of group acl permissions
|
||
Memory leaks (hunt and destroy with tools like Purify(Kurt)
|
||
Minor improvements to rules system
|
||
NOTIFY fixes
|
||
New asserts for run-checking
|
||
Overhauled parser/analyze code to properly report errors and increase speed
|
||
Pg_dump -d now handles NULL's properly(Bruce)
|
||
Prevent SELECT NULL from crashing server (Bruce)
|
||
Properly report errors when INSERT ... SELECT columns did not match
|
||
Properly report errors when insert column names were not correct
|
||
Psql \g filename now works(Bruce)
|
||
Psql fixed problem with multiple statements on one line with multiple outputs
|
||
Removed duplicate system oid's
|
||
SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
|
||
Several fixes for queries that crashed the backend
|
||
Starting quote in insert string errors(Bruce)
|
||
Submitting an empty query now returns empty status, not just " " query(Bruce)
|
||
|
||
Enhancements
|
||
------------
|
||
Add EXPLAIN manual page(Bruce)
|
||
Add UNIQUE index capability(Dan)
|
||
Add hostname/user level access control rather than just hostname and user
|
||
Add synonym of != for (Bruce)
|
||
Allow "select oid,* from table"
|
||
Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
|
||
Allow COPY from the frontend(Bryan)
|
||
Allow GROUP BY to use alias column name(Bruce)
|
||
Allow actual compression, not just reuse on the same page(Vadim)
|
||
Allow installation-configuration option to auto-add all local users(Bryan)
|
||
Allow libpq to distinguish between text value '' and null(Bruce)
|
||
Allow non-postgres users with createdb privs to destroydb's
|
||
Allow restriction on who can create C functions(Bryan)
|
||
Allow restriction on who can do backend COPY(Bryan)
|
||
Can shrink tables, pg_time and pg_log(Vadim & Erich)
|
||
Change debug level 2 to print queries only, changed debug heading layout(Bruce)
|
||
Change default decimal constant representation from float4 to float8(Bruce)
|
||
European date format now set when postmaster is started
|
||
Execute lowercase function names if not found with exact case
|
||
Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
|
||
Gist now included in the distrubution(Marc)
|
||
Idend authentication of local users(Bryan)
|
||
Implement BETWEEN qualifier(Bruce)
|
||
Implement IN qualifier(Bruce)
|
||
Libpq has PQgetisnull()(Bruce)
|
||
Libpq++ improvements
|
||
New options to initdb(Bryan)
|
||
Pg_dump allow dump of oid's(Bruce)
|
||
Pg_dump create indexes after tables are loaded for speed(Bruce)
|
||
Pg_dumpall dumps all databases, and the user table
|
||
Pginterface additions for NULL values(Bruce)
|
||
Prevent postmaster from being run as root
|
||
Psql \h and \? is now readable(Bruce)
|
||
Psql allow backslashed, semicolons anywhere on the line(Bruce)
|
||
Psql changed command prompt for lines in query or in quotes(Bruce)
|
||
Psql char(3) now displays as (bp)char in \d output(Bruce)
|
||
Psql return code now more accurate(Bryan?)
|
||
Psql updated help syntax(Bruce)
|
||
Re-visit and fix vacuum(Vadim)
|
||
Reduce size of regression diffs, remove timezone name difference(Bruce)
|
||
Remove compile-time parameters to enable binary distributions(Bryan)
|
||
Reverse meaning of HBA masks(Bryan)
|
||
Secure Authentication of local users(Bryan)
|
||
Speed up vacuum(Vadim)
|
||
Vacuum now had VERBOSE option(Bruce)
|
||
|
||
Source tree changes
|
||
-------------------
|
||
All functions now have prototypes that are compared against the calls
|
||
Allow asserts to be disabled easly from Makefile.global(Bruce)
|
||
Change oid constants used in code to #define names
|
||
Decoupled sparc and solaris defines(Kurt)
|
||
Gcc -Wall compiles cleanly with warnings only from unfixable constructs
|
||
Major include file reorganization/reduction(Marc)
|
||
Make now stops on compile failure(Bryan)
|
||
Makefile restructuring(Bryan, Marc)
|
||
Merge bsdi_2_1 to bsdi(Bruce)
|
||
Monitor program removed
|
||
Name change from Postgres95 to PostgreSQL
|
||
New config.h file(Marc, Bryan)
|
||
PG_VERSION now set to 6.0 and used by postmaster
|
||
Portability additions, including Ultrix, DG/UX, AIX, and Solaris
|
||
Reduced the number of #define's, centeralized #define's
|
||
Remove duplicate OIDS in system tables(Dan)
|
||
Remove duplicate system catalog info or report mismatches(Dan)
|
||
Removed many os-specific #define's
|
||
Restructured object file generation/location(Bryan, Marc)
|
||
Restructured port-specific file locations(Bryan, Marc)
|
||
Unused/uninialized variables corrected
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 1.09
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release v1.09 (1996-11-04)
|
||
|
||
Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the
|
||
changes listed in 6.0 were actually included in the 1.02.1 to 1.09
|
||
releases.
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 1.02
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Release 1.02 (1996-08-01)
|
||
|
||
Migration from v1.02 to v1.02.1
|
||
|
||
Here is a new migration file for 1.02.1. It includes the 'copy' change and a
|
||
script to convert old ascii files.
|
||
|
||
Note: The following notes are for the benefit of users who want to
|
||
migrate databases from postgres95 1.01 and 1.02 to postgres95
|
||
1.02.1.
|
||
|
||
If you are starting afresh with postgres95 1.02.1 and do not need
|
||
to migrate old databases, you do not need to read any further.
|
||
|
||
In order to upgrade older postgres95 version 1.01 or 1.02 databases to
|
||
version 1.02.1, the following steps are required:
|
||
|
||
1. Start up a new 1.02.1 postmaster
|
||
|
||
2. Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02
|
||
databases. This is done by running the new 1.02.1 server against your
|
||
own 1.01 or 1.02 database and applying the queries attached at the end
|
||
of thie file. This can be done easily through psql. If your 1.01 or
|
||
1.02 database is named "testdb" and you have cut the commands from the
|
||
end of this file and saved them in addfunc.sql:
|
||
|
||
% psql testdb -f addfunc.sql
|
||
|
||
Those upgrading 1.02 databases will get a warning when executing the
|
||
last two statements in the file because they are already present in
|
||
1.02. This is not a cause for concern.
|
||
|
||
Dump/Reload Procedure
|
||
|
||
If you are trying to reload a pg_dump or text-mode 'copy tablename to
|
||
stdout' generated with a previous version, you will need to run the attached
|
||
sed script on the ASCII file before loading it into the database. The old
|
||
format used '.' as end-of-data, while '\.' is now the end-of-data marker.
|
||
Also, empty strings are now loaded in as '' rather than NULL. See the copy
|
||
manual page for full details.
|
||
|
||
sed 's/^\.$/\\./g' in_file out_file
|
||
|
||
If you are loading an older binary copy or non-stdout copy, there is no
|
||
end-of-data character, and hence no conversion necessary.
|
||
|
||
-- following lines added by agc to reflect the case-insensitive
|
||
-- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
|
||
create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
|
||
create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
|
||
create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
|
||
create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
|
||
|
||
Detailed Change List
|
||
|
||
Source code maintenance and development
|
||
* worldwide team of volunteers
|
||
* the source tree now in CVS at ftp.ki.net
|
||
|
||
Enhancements
|
||
* psql (and underlying libpq library) now has many more options for
|
||
formatting output, including HTML
|
||
* pg_dump now output the schema and/or the data, with many fixes to
|
||
enhance completeness.
|
||
* psql used in place of monitor in administration shell scripts.
|
||
monitor to be depreciated in next release.
|
||
* date/time functions enhanced
|
||
* NULL insert/update/comparison fixed/enhanced
|
||
* TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
|
||
|
||
Bug Fixes (almost too numerous to mention)
|
||
* indexes
|
||
* storage management
|
||
* check for NULL pointer before dereferencing
|
||
* Makefile fixes
|
||
|
||
New Ports
|
||
* added SolarisX86 port
|
||
* added BSDI 2.1 port
|
||
* added DGUX port
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 1.01
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Postgres95 Release 1.01 (1996-02-23)
|
||
|
||
|
||
Migration from v1.0 to v1.01
|
||
|
||
The following notes are for the benefit of users who want to migrate
|
||
databases from postgres95 1.0 to postgres95 1.01.
|
||
|
||
If you are starting afresh with postgres95 1.01 and do not need to migrate
|
||
old databases, you do not need to read any further.
|
||
|
||
In order to postgres95 version 1.01 with databases created with postgres95
|
||
version 1.0, the following steps are required:
|
||
|
||
1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 and
|
||
OIDNAMELEN to 20.
|
||
|
||
2. Decide whether you want to use Host based authentication.
|
||
|
||
a. If you do, you must create a file name "pg_hba" in your top-level
|
||
data directory (typically the value of your $PGDATA).
|
||
src/libpq/pg_hba shows an example syntax.
|
||
|
||
b. If you do not want host-based authentication, you can comment out
|
||
the line
|
||
|
||
HBA = 1
|
||
|
||
in src/Makefile.global
|
||
|
||
Note that host-based authentication is turned on by default, and
|
||
if you do not take steps A or B above, the out-of-the-box 1.01
|
||
will not allow you to connect to 1.0 databases.
|
||
|
||
3. Compile and install 1.01, but DO NOT do the initdb step.
|
||
|
||
4. Before doing anything else, terminate your 1.0 postmaster, and backup
|
||
your existing $PGDATA directory.
|
||
|
||
5. Set your PGDATA environment variable to your 1.0 databases, but set up
|
||
path up so that 1.01 binaries are being used.
|
||
|
||
6. Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1
|
||
|
||
7. Start up a new 1.01 postmaster
|
||
|
||
8. Add the new built-in functions and operators of 1.01 to 1.0 databases.
|
||
This is done by running the new 1.01 server against your own 1.0
|
||
database and applying the queries attached and saving in the file
|
||
1.0_to_1.01.sql. This can be done easily through psql. If your 1.0
|
||
database is name "testdb":
|
||
|
||
% psql testdb -f 1.0_to_1.01.sql
|
||
|
||
and then execute the following commands (cut and paste from here):
|
||
|
||
-- add builtin functions that are new to 1.01
|
||
|
||
create function int4eqoid (int4, oid) returns bool as 'foo'
|
||
language 'internal';
|
||
create function oideqint4 (oid, int4) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char2icregexeq (char2, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char2icregexne (char2, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char4icregexeq (char4, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char4icregexne (char4, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char8icregexeq (char8, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char8icregexne (char8, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char16icregexeq (char16, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function char16icregexne (char16, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function texticregexeq (text, text) returns bool as 'foo'
|
||
language 'internal';
|
||
create function texticregexne (text, text) returns bool as 'foo'
|
||
language 'internal';
|
||
|
||
-- add builtin functions that are new to 1.01
|
||
|
||
create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
|
||
create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
|
||
create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
|
||
create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
|
||
create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
|
||
create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
|
||
create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
|
||
create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
|
||
create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
|
||
create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
|
||
create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
|
||
create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
|
||
|
||
Detailed Change List
|
||
|
||
Incompatibilities:
|
||
* 1.01 is backwards compatible with 1.0 database provided the user
|
||
follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
|
||
If those steps are not taken, 1.01 is not compatible with 1.0 database.
|
||
|
||
Enhancements:
|
||
* added PQdisplayTuples() to libpq and changed monitor and psql to use it
|
||
* added NeXT port (requires SysVIPC implementation)
|
||
* added CAST .. AS ... syntax
|
||
* added ASC and DESC keywords
|
||
* added 'internal' as a possible language for CREATE FUNCTION
|
||
internal functions are C functions which have been statically linked
|
||
into the postgres backend.
|
||
* a new type "name" has been added for system identifiers (table names,
|
||
attribute names, etc.) This replaces the old char16 type. The
|
||
of name is set by the NAMEDATALEN #define in src/Makefile.global
|
||
* a readable reference manual that describes the query language.
|
||
* added host-based access control. A configuration file ($PGDATA/pg_hba)
|
||
is used to hold the configuration data. If host-based access control
|
||
is not desired, comment out HBA=1 in src/Makefile.global.
|
||
* changed regex handling to be uniform use of Henry Spencer's regex code
|
||
regardless of platform. The regex code is included in the distribution
|
||
* added functions and operators for case-insensitive regular expressions.
|
||
The operators are ~* and !~*.
|
||
* pg_dump uses COPY instead of SELECT loop for better performance
|
||
|
||
Bug fixes:
|
||
* fixed an optimizer bug that was causing core dumps when
|
||
functions calls were used in comparisons in the WHERE clause
|
||
* changed all uses of getuid to geteuid so that effective uids are used
|
||
* psql now returns non-zero status on errors when using -c
|
||
* applied public patches 1-14
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 1.0
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Postgres95 Release 1.0 (1995-09-05)
|
||
|
||
Detailed Change List
|
||
|
||
Copyright change:
|
||
* The copyright of Postgres 1.0 has been loosened to be freely modifiable
|
||
and modifiable for any purpose. Please read the COPYRIGHT file.
|
||
Thanks to Professor Michael Stonebraker for making this possible.
|
||
|
||
Incompatibilities:
|
||
* date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
|
||
EUROPEAN STYLE). This follows SQL-92 specs.
|
||
* "delimiters" is now a keyword
|
||
|
||
Enhancements:
|
||
* sql LIKE syntax has been added
|
||
* copy command now takes an optional USING DELIMITER specification.
|
||
delimiters can be any single-character string.
|
||
* IRIX 5.3 port has been added.
|
||
Thanks to Paul Walmsley and others.
|
||
* updated pg_dump to work with new libpq
|
||
* \d has been added psql
|
||
Thanks to Keith Parks
|
||
* regexp performance for architectures that use POSIX regex has been
|
||
improved due to caching of precompiled patterns.
|
||
Thanks to Alistair Crooks
|
||
* a new version of libpq++
|
||
Thanks to William Wanders
|
||
|
||
Bug fixes:
|
||
* arbitrary userids can be specified in the createuser script
|
||
* \c to connect to other databases in psql now works.
|
||
* bad pg_proc entry for float4inc() is fixed
|
||
* users with usecreatedb field set can now create databases without
|
||
having to be usesuper
|
||
* remove access control entries when the entry no longer has any
|
||
permissions
|
||
* fixed non-portable datetimes implementation
|
||
* added kerberos flags to the src/backend/Makefile
|
||
* libpq now works with kerberos
|
||
* typographic errors in the user manual have been corrected.
|
||
* btrees with multiple index never worked, now we tell you they don't
|
||
work when you try to use them
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 0.03
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Postgres95 Release 0.03 (1995-07-21)
|
||
|
||
|
||
Detailed Change List
|
||
|
||
Incompatible changes:
|
||
* BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
|
||
(due to system catalog changes and indexing structure changes).
|
||
* double-quote (") is deprecated as a quoting character for string literals;
|
||
you need to convert them to single quotes (').
|
||
* name of aggregates (eg. int4sum) are renamed in accordance with the
|
||
SQL standard (eg. sum).
|
||
* CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
|
||
* float literals (eg. 3.14) are now of type float4 (instead of float8 in
|
||
previous releases); you might have to do typecasting if you depend on it
|
||
being of type float8. If you neglect to do the typecasting and you assign
|
||
a float literal to a field of type float8, you may get incorrect values
|
||
stored!
|
||
* LIBPQ has been totally revamped so that frontend applications
|
||
can connect to multiple backends
|
||
* the usesysid field in pg_user has been changed from int2 to int4 to
|
||
allow wider range of Unix user ids.
|
||
* the netbsd/freebsd/bsd o/s ports have been consolidated into a
|
||
single BSD44_derived port. (thanks to Alistair Crooks)
|
||
|
||
SQL standard-compliance (the following details changes that makes postgres95
|
||
more compliant to the SQL-92 standard):
|
||
* the following SQL types are now built-in: smallint, int(eger), float, real,
|
||
char(N), varchar(N), date and time.
|
||
|
||
The following are aliases to existing postgres types:
|
||
smallint -> int2
|
||
integer, int -> int4
|
||
float, real -> float4
|
||
char(N) and varchar(N) are implemented as truncated text types. In
|
||
addition, char(N) does blank-padding.
|
||
* single-quote (') is used for quoting string literals; '' (in addition to
|
||
\') is supported as means of inserting a single quote in a string
|
||
* SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
|
||
(Also, aggregates can now be overloaded, i.e. you can define your
|
||
own MAX aggregate to take in a user-defined type.)
|
||
* CHANGE ACL removed. GRANT/REVOKE syntax added.
|
||
- Privileges can be given to a group using the "GROUP" keyword.
|
||
For example:
|
||
GRANT SELECT ON foobar TO GROUP my_group;
|
||
The keyword 'PUBLIC' is also supported to mean all users.
|
||
|
||
Privileges can only be granted or revoked to one user or group
|
||
at a time.
|
||
|
||
"WITH GRANT OPTION" is not supported. Only class owners can change
|
||
access control
|
||
- The default access control is to to grant users readonly access.
|
||
You must explicitly grant insert/update access to users. To change
|
||
this, modify the line in
|
||
src/backend/utils/acl.h
|
||
that defines ACL_WORLD_DEFAULT
|
||
|
||
Bug fixes:
|
||
* the bug where aggregates of empty tables were not run has been fixed. Now,
|
||
aggregates run on empty tables will return the initial conditions of the
|
||
aggregates. Thus, COUNT of an empty table will now properly return 0.
|
||
MAX/MIN of an empty table will return a tuple of value NULL.
|
||
* allow the use of \; inside the monitor
|
||
* the LISTEN/NOTIFY asynchronous notification mechanism now work
|
||
* NOTIFY in rule action bodies now work
|
||
* hash indices work, and access methods in general should perform better.
|
||
creation of large btree indices should be much faster. (thanks to Paul
|
||
Aoki)
|
||
|
||
Other changes and enhancements:
|
||
* addition of an EXPLAIN statement used for explaining the query execution
|
||
plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
|
||
the query).
|
||
* WARN and NOTICE messages no longer have timestamps on them. To turn on
|
||
timestamps of error messages, uncomment the line in
|
||
src/backend/utils/elog.h:
|
||
/* define ELOG_TIMESTAMPS */
|
||
* On an access control violation, the message
|
||
"Either no such class or insufficient privilege"
|
||
will be given. This is the same message that is returned when
|
||
a class is not found. This dissuades non-privileged users from
|
||
guessing the existence of privileged classes.
|
||
* some additional system catalog changes have been made that are not
|
||
visible to the user.
|
||
|
||
libpgtcl changes:
|
||
* The -oid option has been added to the "pg_result" tcl command.
|
||
pg_result -oid returns oid of the last tuple inserted. If the
|
||
last command was not an INSERT, then pg_result -oid returns "".
|
||
* the large object interface is available as pg_lo* tcl commands:
|
||
pg_lo_open, pg_lo_close, pg_lo_creat, etc.
|
||
|
||
Portability enhancements and New Ports:
|
||
* flex/lex problems have been cleared up. Now, you should be able to use
|
||
flex instead of lex on any platforms. We no longer make assumptions of
|
||
what lexer you use based on the platform you use.
|
||
* The Linux-ELF port is now supported. Various configuration have been
|
||
tested: The following configuration is known to work:
|
||
kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
|
||
with everything in ELF format,
|
||
|
||
New utilities:
|
||
* ipcclean added to the distribution
|
||
ipcclean usually does not need to be run, but if your backend crashes
|
||
and leaves shared memory segments hanging around, ipcclean will
|
||
clean them up for you.
|
||
|
||
New documentation:
|
||
* the user manual has been revised and libpq documentation added.
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 0.02
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Postgres95 Release 0.02 (1995-05-25)
|
||
|
||
|
||
Detailed Change List
|
||
|
||
Incompatible changes:
|
||
* The SQL statement for creating a database is 'CREATE DATABASE' instead
|
||
of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
|
||
of 'DESTROYDB'. However, the names of the executables 'createdb' and
|
||
'destroydb' remain the same.
|
||
|
||
New tools:
|
||
* pgperl - a Perl (4.036) interface to Postgres95
|
||
* pg_dump - a utility for dumping out a postgres database into a
|
||
script file containing query commands. The script files are in a ASCII
|
||
format and can be used to reconstruct the database, even on other
|
||
machines and other architectures. (Also good for converting
|
||
a Postgres 4.2 database to Postgres95 database.)
|
||
|
||
The following ports have been incorporated into postgres95-beta-0.02:
|
||
* the NetBSD port by Alistair Crooks
|
||
* the AIX port by Mike Tung
|
||
* the Windows NT port by Jon Forrest (more stuff but not done yet)
|
||
* the Linux ELF port by Brian Gallew
|
||
|
||
The following bugs have been fixed in postgres95-beta-0.02:
|
||
* new lines not escaped in COPY OUT and problem with COPY OUT when first
|
||
attribute is a '.'
|
||
* cannot type return to use the default user id in createuser
|
||
* SELECT DISTINCT on big tables crashes
|
||
* Linux installation problems
|
||
* monitor doesn't allow use of 'localhost' as PGHOST
|
||
* psql core dumps when doing \c or \l
|
||
* the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
|
||
* libpgtcl has a hard-wired default port number
|
||
* SELECT DISTINCT INTO TABLE hangs
|
||
* CREATE TYPE doesn't accept 'variable' as the internallength
|
||
* wrong result using more than 1 aggregate in a SELECT
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Release 0.01
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Postgres95 Release 0.01 (1995-05-01)
|
||
|
||
Initial release.
|
||
|
||
|
||
|
||
------------------------------------------------------------------------
|
||
Timing Results
|
||
------------------------------------------------------------------------
|
||
|
||
|
||
Timing Results
|
||
|
||
These timing results are from running the regression test with the commands
|
||
|
||
% cd src/test/regress
|
||
% make all
|
||
% time make runtest
|
||
|
||
|
||
Timing under Linux 2.0.27 seems to have a roughly 5% variation from run to
|
||
run, presumably due to the scheduling vagaries of multitasking systems.
|
||
|
||
v6.5
|
||
|
||
As has been the case for previous releases, timing between releases is not
|
||
directly comparable since new regression tests have been added. In general,
|
||
v6.5 is faster than previous releases.
|
||
|
||
Timing with fsync() disabled:
|
||
|
||
Time System
|
||
02:00 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
|
||
04:38 Sparc Ultra 1 143MHz, 64MB, Solaris 2.6
|
||
|
||
|
||
Timing with fsync() enabled:
|
||
|
||
Time System
|
||
04:21 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
|
||
|
||
|
||
For the linux system above, using UW-SCSI disks rather than (older) IDE
|
||
disks leads to a 50% improvement in speed on the regression test.
|
||
|
||
v6.4beta
|
||
|
||
The times for this release are not directly comparable to those for previous
|
||
releases since some additional regression tests have been included. In
|
||
general, however, v6.4 should be slightly faster than the previous release
|
||
(thanks, Bruce!).
|
||
|
||
Time System
|
||
02:26 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
|
||
|
||
v6.3
|
||
|
||
The times for this release are not directly comparable to those for previous
|
||
releases since some additional regression tests have been included and some
|
||
obsolete tests involving time travel have been removed. In general, however,
|
||
v6.3 is substantially faster than previous releases (thanks, Bruce!).
|
||
|
||
Time System
|
||
02:30 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
|
||
04:12 Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
|
||
|
||
v6.1
|
||
|
||
Time System
|
||
06:12 Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486
|
||
12:06 P-100, 48MB, Linux 2.0.29, gcc
|
||
39:58 Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g
|