Commit a654db30 authored by Bruce Momjian's avatar Bruce Momjian

Upgrade doc stuff to 6.3.

parent 6159ba3a
PostgreSQL 6.3 Sun Feb 1 14:57:30 EST 1998
-------------------------------------------------------------
A dump/restore is required for those wishing to migrate data from
previous releases of PostgreSQL.
CHANGES IN THE 6.3 RELEASE
--------------------------
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)
Enhancements
------------
Real deadlock detection, no more timeouts(Bruce)
<NOT DONE YET> Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
CURRENT_USER(Thomas)
Speedup by inlining some frequently-called functions
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 PostgreSQL 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)
Allow installation data block size and max tuple size configuration(Darren)
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 startup(Andrew)
Modify sample startup 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)
New HTML and Postscript documentation(Thomas)
Source Tree Changes
-------------------
Add new html development tools, and flow chart in /tools/backend
Fix for SCO compiles
Stratus computer port "Gillies, Robert" <GilliesR@Nichols.com>
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)
PostgreSQL 6.2.1 Fri Oct 17 00:01:27 EDT 1997 PostgreSQL 6.2.1 Fri Oct 17 00:01:27 EDT 1997
------------------------------------------------------------- -------------------------------------------------------------
......
...@@ -2,7 +2,7 @@ POSTGRESQL INSTALLATION INSTRUCTIONS ...@@ -2,7 +2,7 @@ POSTGRESQL INSTALLATION INSTRUCTIONS
Copyright (c) 1997 Regents of the University of California Copyright (c) 1997 Regents of the University of California
This is file /usr/src/pgsql/INSTALL. It contains notes on how to install This is file /usr/src/pgsql/INSTALL. It contains notes on how to install
PostgreSQL v6.2.1. Up to date information on PostgreSQL may be found at PostgreSQL v6.3. Up to date information on PostgreSQL may be found at
http://www.postgresql.org. http://www.postgresql.org.
PostgreSQL is an RDBMS database server. It is not completely ANSI SQL PostgreSQL is an RDBMS database server. It is not completely ANSI SQL
...@@ -110,7 +110,7 @@ PostgreSQL: ...@@ -110,7 +110,7 @@ PostgreSQL:
To check for disk space, use command "df -k". To check for disk space, use command "df -k".
4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-v6.2.1.tar.gz from the 4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-v6.3.tar.gz from the
Internet. Store it in your home directory. Internet. Store it in your home directory.
5) Some platforms use flex. If your system uses flex then make sure 5) Some platforms use flex. If your system uses flex then make sure
...@@ -149,11 +149,10 @@ PostgreSQL: ...@@ -149,11 +149,10 @@ PostgreSQL:
to change often every few weeks with no notice besides a quick comment to change often every few weeks with no notice besides a quick comment
in the HACKERS mailing list. Full releases always require a dump/reload in the HACKERS mailing list. Full releases always require a dump/reload
from previous releases. It is therefore a bad idea to skip this from previous releases. It is therefore a bad idea to skip this
step. Also, do not use the pg_dumpall script from v6.0 or everything step. Type (with the gunzip line and the following line typed as one
will be owned by the Postgres super user. Type (with the gunzip line line):
and the following line typed as one line):
cd cd
gunzip -c postgresql-v6.2.1.tar.gz | gunzip -c postgresql-v6.3.tar.gz |
tar xvf - src/bin/pg_dump/pg_dumpall tar xvf - src/bin/pg_dump/pg_dumpall
chmod a+x src/bin/pg_dump/pg_dumpall chmod a+x src/bin/pg_dump/pg_dumpall
src/bin/pg_dump/pg_dumpall > db.out src/bin/pg_dump/pg_dumpall > db.out
...@@ -218,7 +217,7 @@ PostgreSQL: ...@@ -218,7 +217,7 @@ PostgreSQL:
10) Unzip and untar the new source file. Type 10) Unzip and untar the new source file. Type
cd /usr/src/pgsql cd /usr/src/pgsql
gunzip -c ~/postgresql-v6.2.1.tar.gz | tar xvf - gunzip -c ~/postgresql-v6.3.tar.gz | tar xvf -
11) Configure the source code for your system. It is this step at which 11) Configure the source code for your system. It is this step at which
you can specify your actual source path and installation paths for you can specify your actual source path and installation paths for
...@@ -358,9 +357,10 @@ PostgreSQL: ...@@ -358,9 +357,10 @@ PostgreSQL:
location of this file will change accordingly.) This file should be location of this file will change accordingly.) This file should be
made read only again once you are finsihed. made read only again once you are finsihed.
If you are upgrading from v6.0 you can copy file pg_hba.conf from If you are upgrading, you can NOT copy file pg_hba.conf from your
your old database on top of the one in your new database, rather than old database on top of the one in your new database. You will
redoing this from scratch. have to re-do your changes.
18) If you wish to skip the regression tests then skip to step 21. 18) If you wish to skip the regression tests then skip to step 21.
However, we think skipping the tests is a BAD idea! However, we think skipping the tests is a BAD idea!
...@@ -405,7 +405,7 @@ PostgreSQL: ...@@ -405,7 +405,7 @@ PostgreSQL:
PostgreSQL. PostgreSQL.
For a i686/Linux-ELF platform, no tests failed since this is the For a i686/Linux-ELF platform, no tests failed since this is the
v6.2.1 regression testing reference platform. v6.3 regression testing reference platform.
For the SPARC/Linux-ELF platform, using the 970525 beta version of For the SPARC/Linux-ELF platform, using the 970525 beta version of
PostgreSQL v6.2 the following tests "failed": PostgreSQL v6.2 the following tests "failed":
...@@ -417,7 +417,7 @@ PostgreSQL: ...@@ -417,7 +417,7 @@ PostgreSQL:
the differences and then decide if those differences will affect your the differences and then decide if those differences will affect your
intended use of PostgreSQL. However, keep in mind that this is likely intended use of PostgreSQL. However, keep in mind that this is likely
to be the most solid release of PostgreSQL to date, incorporating many to be the most solid release of PostgreSQL to date, incorporating many
bug fixes from v6.1, and that previous versions of PostgreSQL have been bug fixes from v6.2.1, and that previous versions of PostgreSQL have been
in use successfully for some time now. in use successfully for some time now.
After running the tests, type After running the tests, type
...@@ -525,7 +525,7 @@ PostgreSQL: ...@@ -525,7 +525,7 @@ PostgreSQL:
rm -rf /usr/local/pgsql_6_0 rm -rf /usr/local/pgsql_6_0
# Also delete old database directory tree if it is not in # Also delete old database directory tree if it is not in
# /usr/local/pgsql_6_0/data # /usr/local/pgsql_6_0/data
rm ~/postgresql-v6.2.1.tar.gz rm ~/postgresql-v6.3.tar.gz
26) You will probably want to print out the documentation. Here is how 26) You will probably want to print out the documentation. Here is how
you might do it if you have Ghostscript on your system and are you might do it if you have Ghostscript on your system and are
...@@ -552,7 +552,7 @@ PostgreSQL: ...@@ -552,7 +552,7 @@ PostgreSQL:
supported platforms. We therefore ask you to let us know if you did supported platforms. We therefore ask you to let us know if you did
or did not get PostgreSQL to work on you system. Please send a or did not get PostgreSQL to work on you system. Please send a
mail message to pgsql-ports@postgresql.org telling us the following: mail message to pgsql-ports@postgresql.org telling us the following:
- The version of PostgreSQL (v6.2.1, 6.1.1, beta 970703, etc.). - The version of PostgreSQL (v6.3, 6.2.1, beta 970703, etc.).
- Your operating system (i.e. RedHat v4.0 Linux v2.0.26). - Your operating system (i.e. RedHat v4.0 Linux v2.0.26).
- Your hardware (SPARC, i486, etc.). - Your hardware (SPARC, i486, etc.).
- Did you compile, install and run the regression tests cleanly? - Did you compile, install and run the regression tests cleanly?
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
PostgreSQL Data Base Management System (formerly known as Postgres, then PostgreSQL Data Base Management System (formerly known as Postgres, then
as Postgres95). as Postgres95).
This directory contains the version 6.2.1 release of the PostgreSQL This directory contains the version 6.3 release of the PostgreSQL
database server. The server is not ANSI SQL compliant, but it gets database server. The server is not ANSI SQL compliant, but it gets
closer with every release. After you unzip and untar the distribution closer with every release. After you unzip and untar the distribution
file, look at file INSTALL for the installation notes and file HISTORY file, look at file INSTALL for the installation notes and file HISTORY
......
Frequently Asked Questions (FAQ) for PostgreSQL Frequently Asked Questions (FAQ) for PostgreSQL
Last updated: Wed Oct 15 23:16:48 EDT 1997 Last updated: Sun Feb 1 16:13:28 EST 1998
Version: 6.2.1
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
...@@ -14,8 +13,6 @@ ...@@ -14,8 +13,6 @@
Irix-specific questions are answered in Irix-specific questions are answered in
http://postgreSQL.org/docs/FAQ-irix.shtml. http://postgreSQL.org/docs/FAQ-irix.shtml.
Changes in this version (* = modified, + = new):
_________________________________________________________________ _________________________________________________________________
Questions answered: Questions answered:
...@@ -29,14 +26,15 @@ Questions answered: ...@@ -29,14 +26,15 @@ Questions answered:
1.5) Support for PostgreSQL 1.5) Support for PostgreSQL
1.6) Latest release of PostgreSQL 1.6) Latest release of PostgreSQL
1.7) Is there a commercial version of PostgreSQL? 1.7) Is there a commercial version of PostgreSQL?
1.8) What version of SQL does PostgreSQL use? 1.8) What documentation is available for PostgreSQL?
1.9) What documentation is available for PostgreSQL? 1.9) What version of SQL does PostgreSQL use?
1.10) Does PostgreSQL work with databases from earlier versions of 1.10) Does PostgreSQL work with databases from earlier versions of
postgres? postgres?
1.11) Are there ODBC drivers for PostgreSQL? 1.11) Are there ODBC drivers for PostgreSQL?
1.12) What tools are available for hooking postgres to Web pages? 1.12) What tools are available for hooking postgres to Web pages?
1.13) Does PostgreSQL have a graphical user interface? A report 1.13) Does PostgreSQL have a graphical user interface? A report
generator? A embedded query language interface? generator? A embedded query language interface?
1.14) What is a good book to learn SQL?
2) Installation/Configuration questions 2) Installation/Configuration questions
...@@ -91,6 +89,9 @@ Questions answered: ...@@ -91,6 +89,9 @@ Questions answered:
3.22) What is Genetic Query Optimization? 3.22) What is Genetic Query Optimization?
3.23) How do you remove a column from a table? 3.23) How do you remove a column from a table?
3.24) How do SELECT only the first few rows of a query? 3.24) How do SELECT only the first few rows of a query?
3.25) Why can't I create a column named "time"?
3.26) How much database disk space is required to store data from a
typical flat file?
4) Questions about extending PostgreSQL 4) Questions about extending PostgreSQL
...@@ -242,8 +243,10 @@ Section 1: General Questions ...@@ -242,8 +243,10 @@ Section 1: General Questions
1.6) Latest release of PostgreSQL 1.6) Latest release of PostgreSQL
The latest release of PostgreSQL is version 6.2.1, which was released The latest release of PostgreSQL is version 6.2.1, which was released
on October 17th, 1997. For information about what is new in 6.2.1, see on October 17th, 1997. We are testing 6.3 beta. For information about
our TODO list on our WWW page. what is new in 6.3, see our TODO list on our WWW page.
We plan to have major releases every three months.
1.7) Is there a commercial version of PostgreSQL? 1.7) Is there a commercial version of PostgreSQL?
...@@ -279,6 +282,8 @@ Section 1: General Questions ...@@ -279,6 +282,8 @@ Section 1: General Questions
PostgreSQL v1.09 is compatible with databases created with v1.01. PostgreSQL v1.09 is compatible with databases created with v1.01.
Upgrading to 6.3 from earlier releases requires a dump and restore.
Upgrading to 6.2.1 from pre-6.2 requires a dump and restore. Upgrading to 6.2.1 from pre-6.2 requires a dump and restore.
Upgrading to 6.2.1 from 6.2 does not require a dump, but see the Upgrading to 6.2.1 from 6.2 does not require a dump, but see the
...@@ -286,7 +291,7 @@ Section 1: General Questions ...@@ -286,7 +291,7 @@ Section 1: General Questions
Those ugrading from versions earlier than 1.09 must upgrade to 1.09 Those ugrading from versions earlier than 1.09 must upgrade to 1.09
first without a dump/reload, then dump the data from 1.09, and then first without a dump/reload, then dump the data from 1.09, and then
load it into 6.2.1. load it into 6.2.1 or 6.3 beta.
1.11) Are there ODBC drivers for PostgreSQL? 1.11) Are there ODBC drivers for PostgreSQL?
...@@ -312,15 +317,15 @@ Section 1: General Questions ...@@ -312,15 +317,15 @@ Section 1: General Questions
1.12) What tools are available for hooking postgres to Web pages? 1.12) What tools are available for hooking postgres to Web pages?
For web integration, PHP/FI is an excellent interface. The URL for A nice introduction to Database-backed Web pages can be seen at:
that is http://www.vex.net/php/ http://www.webtools.com
For web integration, PHP is an excellent interface. The URL for that
is http://php.iquest.net
PHP is great for simple stuff, but for more complex stuff, some still PHP is great for simple stuff, but for more complex stuff, some still
use the perl interface and CGI.pm. use the perl interface and CGI.pm.
An example of using WWW with C to talk to Postgres is can be tried at:
* http://postgreSQL.org/~mlc
An WWW gatway based on WDB using perl can be downloaded from: An WWW gatway based on WDB using perl can be downloaded from:
* http://www.eol.ists.ca/~dunlop/wdb -p95 * http://www.eol.ists.ca/~dunlop/wdb -p95
...@@ -331,6 +336,11 @@ Section 1: General Questions ...@@ -331,6 +336,11 @@ Section 1: General Questions
reported some success at using 'pgbrowse' and 'onyx' as frontends to reported some success at using 'pgbrowse' and 'onyx' as frontends to
PostgreSQL. Several contributions are working on tk based frontend PostgreSQL. Several contributions are working on tk based frontend
tools. Ask on the mailing list. tools. Ask on the mailing list.
1.14) What is a good book to learn SQL?
Many of our users like The Practical SQL Handbook, Bowman et al,
Addison Wesley.
_________________________________________________________________ _________________________________________________________________
Section 2: Installation Questions Section 2: Installation Questions
...@@ -409,9 +419,9 @@ Section 2: Installation Questions ...@@ -409,9 +419,9 @@ Section 2: Installation Questions
this parameter too high, the process will not start or crash this parameter too high, the process will not start or crash
unexpectedly. Each buffer is 8K and the defualt is 64 buffers. unexpectedly. Each buffer is 8K and the defualt is 64 buffers.
You can also use the postmaster -S option to increase the maximum You can also use the postgres -S option to increase the maximum amount
amount of memory used by each backend process for temporary sorts. of memory used by each backend process for temporary sorts. Each
Each buffer is 1K and the defualt is 512 buffers. buffer is 1K and the defualt is 512 buffers.
2.12) What debugging features are available in PostgreSQL? 2.12) What debugging features are available in PostgreSQL?
...@@ -600,10 +610,10 @@ BYTEA bytea variable-length array of bytes ...@@ -600,10 +610,10 @@ BYTEA bytea variable-length array of bytes
these fields or when doing other internal operations. these fields or when doing other internal operations.
The last four types above are "varlena" types (i.e. the first four The last four types above are "varlena" types (i.e. the first four
bytes is the length, followed by the data). CHAR(#) and VARCHAR(#) bytes are the length, followed by the data). CHAR(#) allocates the
allocate the maximum number of bytes no matter how much data is stored maximum number of bytes no matter how much data is stored in the
in the field. TEXT and BYTEA are the only character types that have field. TEXT, VARCHAR(#), and BYTEA all have variable length on the
variable length on the disk. disk.
3.13) In a query, how do I detect if a field is NULL? 3.13) In a query, how do I detect if a field is NULL?
...@@ -708,7 +718,7 @@ BYTEA bytea variable-length array of bytes ...@@ -708,7 +718,7 @@ BYTEA bytea variable-length array of bytes
separate tables. These oids can be used to identify specific user rows separate tables. These oids can be used to identify specific user rows
and used in joins. It is recommended you use column type oid to store and used in joins. It is recommended you use column type oid to store
oid values. See the sql(l) manual page to see the other internal oid values. See the sql(l) manual page to see the other internal
columns. columns. You can create an index on the oid field for faster access.
Tids are used to indentify specific physical rows with block and Tids are used to indentify specific physical rows with block and
offset values. Tids change after rows are modified or reloaded. They offset values. Tids change after rows are modified or reloaded. They
...@@ -750,7 +760,7 @@ BYTEA bytea variable-length array of bytes ...@@ -750,7 +760,7 @@ BYTEA bytea variable-length array of bytes
DROP TABLE old_table; DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table; ALTER TABLE new_table RENAME TO old_table;
3.23) How do SELECT only the first few rows of a query? 3.24) How do SELECT only the first few rows of a query?
See the fetch manual page. See the fetch manual page.
...@@ -758,6 +768,41 @@ BYTEA bytea variable-length array of bytes ...@@ -758,6 +768,41 @@ BYTEA bytea variable-length array of bytes
client. The entire query must be evaluated, even if you only want just client. The entire query must be evaluated, even if you only want just
first few rows. Consider a query that has and ORDER BY. There is no first few rows. Consider a query that has and ORDER BY. There is no
way to return any rows until the entire query is evaluated and sorted. way to return any rows until the entire query is evaluated and sorted.
3.25) Why can't I create a column named "time"?
6.2.1 has added some new restricted keywords as we make PostgreSQL
more ANSI-92 compilant. The next release will have this restriction
removed. There is a patch on ftp.postgresql.org that will allow this
feature now.
3.26)How much database disk space is required to store data from a typical
flat file?
Consider a file with 300,000 lines with two integers on each line. The
flat file is 2.4MB. The size of the PostgreSQL database file
containing this data can be estimated:
40 bytes + each row header (approximate)
8 bytes + two int fields @ 4 bytes each
4 bytes + pointer on page to tuple
-------- =
52 bytes per row
The data page size in PostgreSQL is 8192(8k) bytes, so:
8192 bytes per page
------------------- = 157 rows per database page (rounded up)
52 bytes per row
300000 data rows
----------------- = 1911 database pages
157 rows per page
1911 database pages * 8192 bytes per page = 15,654,912 or 15.5MB
Indexes do not contain as much overhead, but do contain the data that
is being indexed, so they can be large also.
_________________________________________________________________ _________________________________________________________________
Section 4: Extending PostgreSQL Section 4: Extending PostgreSQL
...@@ -803,4 +848,4 @@ Section 5: Bugs ...@@ -803,4 +848,4 @@ Section 5: Bugs
You can also fill out the "bug-template" file and send it to: You can also fill out the "bug-template" file and send it to:
* bugs@postgreSQL.org * bugs@postgreSQL.org
This is the address of the developers mailing list. This is the address of the developers mailing list.
TODO list for PostgreSQL TODO list for PostgreSQL
======================== ========================
Last updated: Fri Oct 17 08:18:16 EDT 1997 Last updated: Sun Feb 1 15:08:57 EST 1998
Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us) Current maintainer: Bruce Momjian (maillist@candle.pha.pa.us)
The most recent version of this document can be viewed at The most recent version of this document can be viewed at
the PostgreSQL WWW site, http://www.postgreSQL.org. the PostgreSQL WWW site, http://www.postgreSQL.org.
THE CHANGES FOR 6.2 AND 6.2.1 APPEAR AT THE END OF THIS DOCUMENT THE CHANGES FOR 6.3 APPEAR AT THE END OF THIS DOCUMENT
A dash(-) marks changes to be in the next release.
Developers who have claimed items are: Developers who have claimed items are:
------------------------------------- -------------------------------------
* Bruce is Bruce Momjian<maillist@candle.pha.pa.us> * Bruce is Bruce Momjian<maillist@candle.pha.pa.us>
* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net> * Bryan is Bryan Henderson<bryanh@giraffe.netgate.net>
* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
* Dan is Dan McGuirk <mcguirk@indirect.com> * Dan is Dan McGuirk <mcguirk@indirect.com>
* Daniel is Daniel Kalchev <daniel@digsys.bg> * Daniel is Daniel Kalchev <daniel@digsys.bg>
* Darren is Darren King <darrenk@insightdist.com> * Darren is Darren King <darrenk@insightdist.com>
* Edmund is Edmund Mergl <E.Mergl@bawue.de> * Edmund is Edmund Mergl <E.Mergl@bawue.de>
* Erich Stamberger <eberger@gewi.kfunigraz.ac.at> * Erich Stamberger <eberger@gewi.kfunigraz.ac.at>
* Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at> * Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at>
* Goran is Goran Thyni <goran@bildbasen.se>
* Henry is Henry B. Hotz <hotz@jpl.nasa.gov>
* Igor is Igor <igor@sba.miami.edu> * Igor is Igor <igor@sba.miami.edu>
* Jan is Jan Wieck <wieck@sapserv.debis.de>
* Jun is Jun Kuwamura <juk@rccm.co.jp> * Jun is Jun Kuwamura <juk@rccm.co.jp>
* Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com> * Kurt is "Kurt J. Lidl" <lidl@va.pubnix.com>
* Marc is Marc Fournier <scrappy@hub.org>
* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de> * Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
* Oleg is Oleg Bartunov <oleg@sai.msu.su> * Oleg is Oleg Bartunov <oleg@sai.msu.su>
* Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU> * Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU>
* Patrick is Patrick van Kleef <pvk@pobox.com> * Patrick is Patrick van Kleef <pvk@pobox.com>
* Peter is Peter T Mount <psqlhack@maidast.demon.co.uk>
* Raymond is Raymond Toy <toy@rtp.ericsson.se> * Raymond is Raymond Toy <toy@rtp.ericsson.se>
* Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr> * Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr>
* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at> * Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at>
* Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be> * Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
* Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov> * Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov>
* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu>
* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su> * Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
* Vivek is Vivek Khera <khera@kci.kciLink.com> * Vivek is Vivek Khera <khera@kci.kciLink.com>
RELIABILITY RELIABILITY
----------- -----------
* -Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup(Erich) * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
* -Overhaul bufmgr/lockmgr/transaction manager(Vadim) * Overhaul bufmgr/lockmgr/transaction manager
* Fix CLUSTER * -Fix CLUSTER
* Remove EXTEND? * Remove EXTEND?
* Fix all NULL features, allow psql to print nulls meaningfully * -Aggregates on VIEW always returns zero (maybe because there is no oid for views?)
* Fix compile and security of Kerberos/GSSAPI code (Daniel Kalchev?)
* COUNT on VIEW always returns zero (maybe because there is no oid for views?)
* CREATE VIEW requires super-user priviledge * CREATE VIEW requires super-user priviledge
* can lo_export()/lo_import() read/write anywhere, causing a security problem? * Can lo_export()/lo_import() read/write anywhere, causing a security problem?
* Tables that start with xinv confused to be large objects * Tables that start with xinv confused to be large objects
* Two and three dimmensional arrays display improperly, missing {} * Two and three dimmensional arrays display improperly, missing {}
* Add GROUP BY and HAVING to INSERT INTO table SELECT * FROM table2 * -Add GROUP BY to INSERT INTO table SELECT * FROM table2
* lo_unlink() crashes server * lo_unlink() crashes server
* Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
* Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?) * Prevent auto-table reference, like SELECT table.col WHERE col = 3 (?)
* Remove un-needed malloc() calls and replace with palloc(). * -Remove un-needed malloc() calls and replace with palloc().
* SELECT * FROM table WHERE int4_column = '1' fails * SELECT * FROM table WHERE int4_column = '1' fails
* SELECT a[1] FROM test fails, it needs test.a[1] * SELECT a[1] FROM test fails, it needs test.a[1]
* SELECT COUNT(*) FROM TAB1, TAB2 fails * -SELECT COUNT(*) FROM TAB1, TAB2 fails
* SELECT SUM(2+2) FROM table dumps core * -SELECT SUM(2+2) FROM table dumps core
* UPDATE table SET table.value = 3 fails * UPDATE table SET table.value = 3 fails
* UPDATE key_table SET keyval=max(reftab.NUM)+1 WHERE tblname='reftab' fails * -UPDATE key_table SET keyval=count(reftab.num) fails
* INSERT INTO ... SELECT DISTINCT ... generates error on DISTINCT * -INSERT INTO ... SELECT DISTINCT ... does not accept DISTINCT
* INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generate error * -INSERT INTO table SELECT id, count(*) FROM table2 GROUP BY id generates error
* Make pg_dump preserve inheritance column order, do non-inherits first
* User who can create databases can modify pg_database table
ENHANCEMENTS ENHANCEMENTS
------------ ------------
* Replace table-level locking with row or page-level locking(Vadim) * Replace table-level locking with row or page-level locking(Vadim)
* PRIMARY KEY during table creation * -PRIMARY KEY during table creation(Thomas)
* Add SERIAL type * Add SERIAL type
* Preserve GRANT/REVOKE/pg_group in pg_dump * -Preserve GRANT/REVOKE/pg_group in pg_dump
* Transaction log * Transaction log, so re-do log can be on a separate disk
* Allow transaction commits with rollback with no-fsync performance
* More access control over who can create tables and access the database * More access control over who can create tables and access the database
* Add full ANSI SQL capabilities (Stefan) * Add full ANSI SQL capabilities
* add subselects, possibility using temporary SQL functions * -add subselects(Vadim)
* Implement HAVING clause * Implement HAVING clause
* Implement EXISTS qualifier * -Implement EXISTS qualifier
* report "Not implemented" if valid syntax is supplied * -report "Not implemented" if valid syntax is supplied
* add OUTER joins, left and right (Thomas) * add OUTER joins, left and right (Thomas)
* make VIEWs updateable where possible * make VIEWs updateable where possible
* add UNIONS, INTERSECTS, SUBTRACTS * -add UNIONS(Bruce)
* add temporary tables * add INTERSECTS, SUBTRACTS
* add temporary tables(Bruce)
* add sql3 recursive unions * add sql3 recursive unions
* add the concept of dataspaces * add the concept of dataspaces
* allow conversion type casts on SELECT target fields
* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING * add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING
* NCHAR (as distinguished from ordinary varchar), * NCHAR (as distinguished from ordinary varchar),
* Allow compression of large fields or a compressed field type * Allow compression of large fields or a compressed field type
* Fix the rules system(Jan?,Soo-Ho) * Fix the rules system(Jan?,Soo-Ho)
* robust * robust
...@@ -92,9 +101,9 @@ ENHANCEMENTS ...@@ -92,9 +101,9 @@ ENHANCEMENTS
* Full set of text operations and functions * Full set of text operations and functions
* word searches, concat,max() on text, char * word searches, concat,max() on text, char
* Large objects * Large objects
* overwriting blocks has problems * -overwriting blocks has problems(Peter)
* there are other problems, too. * -there are other problems, too.(Peter)
* Fix large object mapping scheme * Fix large object mapping scheme, own reltype
* not to stuff everything as files in a single directory * not to stuff everything as files in a single directory
* Better interface for adding to pg_group * Better interface for adding to pg_group
* Make MONEY/DECIMAL have a defined precision * Make MONEY/DECIMAL have a defined precision
...@@ -102,194 +111,253 @@ ENHANCEMENTS ...@@ -102,194 +111,253 @@ ENHANCEMENTS
* Threaded version of the server or libpq * Threaded version of the server or libpq
* Allow libpq to cancel query requests * Allow libpq to cancel query requests
* Add REGEX internationalization * Add REGEX internationalization
* Add other language types for built-in functions * -Add other language types for built-in functions
* expand to allow tcl, perl, java, * expand to allow tcl, perl, java
* generalize the function manager switch to pass * generalize the function manager switch to pass
* function sources to interpreter engines. * function sources to interpreter engines.
* remove time-travel feature(Vadim) * -remove time-travel feature(Vadim)
* reduce system column overhead(Vadmin) * -reduce system column overhead(Vadmin)
* remove pg_time table(Vadim) * -remove pg_time table(Vadim)
* allow row re-use without vacuum, maybe?(Vadim) * allow row re-use without vacuum, maybe?(Vadim)
* can't vacuum large objects * Remove restriction that ORDER BY field must be in SELECT list
* can't reduce index file size with vacuum
* Remove restriction that ORDER BY field must be in SELECT list(?)
* Allow queries about owner of tables, like:
* SELECT u.usesysid FROM postgres.pg_user u;
* Add word index for text fields, maybe with trigrams, i.e.: * Add word index for text fields, maybe with trigrams, i.e.:
* ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox * ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox
* Allow readline-type or editor command editing of multi-line SQL commands
* Populate backend status area and write program to dump status data * Populate backend status area and write program to dump status data
* Add ALTER TABLE DROP COLUMN feature * Add ALTER TABLE DROP COLUMN feature
* Remove stale files upon startup(Vivek)
* Add command to show privileges
* Allow INSERT INTO ... SELECT to convert column types * Allow INSERT INTO ... SELECT to convert column types
* Add syslog functionality * Add syslog functionality(Marc)
* Add STDDEV/VARIANCE() function for standard deviation computation/variance * Add STDDEV/VARIANCE() function for standard deviation computation/variance
* Add table/column/function discription table indexed by oid * -Add table/column/function discription table indexed by oid
* add pg_type attribute to identify types that need length (bpchar, varchar) * -add pg_type attribute to identify types that need length (bpchar, varchar)
* add UNIQUE capability to non-btree indexes * add UNIQUE capability to non-btree indexes
* make large objects have their own reltype
* make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId * make number of backends a config parameter, storage/sinvaladt.h:MaxBackendId
* certain indexes will not shrink, i.e. oid indexes with many inserts * certain indexes will not shrink, i.e. oid indexes with many inserts
* make NULL's come out at the beginning or end depending on the ORDER BY direction * make NULL's come out at the beginning or end depending on the ORDER BY direction
* change the library/backend interface to use network byte order * change the library/backend interface to use network byte order
* allow unix domain sockets for local connections for performance and security * -allow unix domain sockets for local connections for performance and security
* Add PAGER for psql's \dt and \d tablename * -Add PAGER for psql's \dt, \d, \z tablename
* Make timezone set-able by client applications(Thomas) * -Make timezone set-able by client applications(Thomas)
* Restore unused oid's on backend exit if no one else has gotten oids * Restore unused oid's on backend exit if no one else has gotten oids
* remove non-standard types from the system, and make them loadable
* -make reads queue behind a write waiting for a lock(Bruce)
* -add LOCK statement(Bruce)
* -add report of offending line when COPY command fails
* have UPDATE/DELETE clean out indexes
* -allow varchar() to only store used bytes, not maximum
* allow WHERE restriction on ctid
* allow pg_descriptions when creating types, tables, columns, and functions
* Fix compile and security of Kerberos/GSSAPI code
* Allow psql to print nulls as distinct from ""(?)
* Allow variable casts with BETWEEN 'today'::asbtime AND 'today'::abstime
* Allow VIEW permissions to be set separately from the underlying tables
* Allow text, char(), and varchar() overhead to be only 2 bytes, not 4 bytes
PERFORMANCE PERFORMANCE
----------- -----------
* Use indexes in ORDER BY * Use indexes in ORDER BY, min(), max()
* Allow LIKE/wildcard matches to use indexes if the wildcard character is not first * -Allow LIKE/wildcard matches to use indexes if the wildcard character is not first
* Optimizing disjunctive queries * Optimizing disjunctive queries
* Fix bushy-plans (Martin) * Fix bushy-plans (Martin)
* Other optimizer bugs * Other optimizer bugs
* Is fsync use optimized? * Prevent fsync in SELECT-only queries
* Cache most recent query plan(s?) * Cache most recent query plan(s?)
* Shared catalog cache, reduce lseek()'s by caching table size in shared area * Shared catalog cache, reduce lseek()'s by caching table size in shared area
* Allow compression of log and meta data * Allow compression of log and meta data
* Add FILLFACTOR to index creation * Add FILLFACTOR to index creation
* Allow indexes to be used with OR clauses(Vadim) * Allow indexes to be used with OR clauses(Vadim)
* update pg_statistic table to remove operator column * update pg_statistic table to remove operator column
* make index creation use psort code, because it is now faster(Vadim)
* remove fork()/exec() of backend and make it just fork()
DOCUMENTATION DOCUMENTATION
------------- -------------
* Update usermanual source(many) * Update usermanual source(many)
* remove time-travel in documentation(Bruce)
* added features used in grammer but not in docs, like :: and CAST * added features used in grammer but not in docs, like :: and CAST
* update libpq++ manual page * update libpq++ and pginterface manual page
* Add keyword list to documentation, already in /tools
PORTABILITY
-----------
--------------------------------------------------------------------------- =============================================================================
CHANGES IN THE 6.2.1 RELEASE CHANGES IN THE 6.3 RELEASE
--------------------------
Changes in this release Developers who have claimed items are:
----------------------- -------------------------------------
Allow TIME and TYPE column names(Thomas) * Billy is Billy G. Allie <Bill.Allie@mug.org>
Allow larger range of true/false as boolean values(Thomas) * Brook is Brook Milligan
Support output of "now" and "current"(Thomas) * Bruce is Bruce Momjian <maillist@candle.pha.pa.us>
Handle DEFAULT with INSERT of NULL properly(Vadim) * D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
Fix for relation reference counts problem in buffer manager(Vadim) * Dan is Dan McGuirk <mcguirk@indirect.com>
Allow strings to span lines, like ANSI(Thomas) * Darren is Darren King <darrenk@insightdist.com>
Fix for backward cursor with ORDER BY(Vadim) * Goran is Goran Thyni <goran@bildbasen.se>
Fix avg(cash) computation(Thomas) * Henry is Henry B. Hotz <hotz@jpl.nasa.gov>
Fix for specifying a column twice in ORDER/GROUP BY(Vadim) * James is James Hughes <jamesh@interpath.com>
Documented new libpq function to return affected rows, PQcmdTuples(Bruce) * Jan is Jan Wieck <wieck@sapserv.debis.de>
Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan) * Jeroen is Jeroen van Vianen <jeroenv@design.nl>
* Marc is Marc Fournier <scrappy@hub.org>
* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de>
CHANGES IN THE 6.2 RELEASE * Matt is Matt Maycock <maycock@intelliquest.com>
* Peter is Peter T Mount <psqlhack@maidast.demon.co.uk>
* Phil is Phil Thompson <phil@river-bank.demon.co.uk>
* Ryan is Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu>
* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
* Thomas is Thomas Lockhart <lockhart@alumni.caltech.edu>
* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO>
* TomS is Tom Szybist
* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu>
* Travis is Travis Melhiser <melhiser@viper.co.union.nc.us>
* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su>
Bug Fixes Bug Fixes
--------- ---------
Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce) Fix binary cursors broken by MOVE implementation(Vadim)
Fix compile errors on overflow due to shifts, unsigned, and bad prototypes Fix for tcl library crash(Jan)
from Solaris(Diab Jerius) Fix for array handling, from Gerhard Hintermayer
Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas) Fix acl error, and remove duplicate pqtrace(Bruce)
Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas) Fix psql \e for empty file(Bruce)
Catch non-functional delete attempts(Vadim) Fix for textcat on varchar() fields(Bruce)
Change time function names to be more consistent(Michael Reifenberg) Fix for DBT Sendproc (Zeugswetter Andres)
Check for zero divides(Michael Reifenberg) Fix vacuum analyze syntax problem(Bruce)
Fix very old bug which made tuples changed/inserted by a commnd Fix for international identifiers(Tatsuo)
visible to the command itself (so we had multiple update of Fix aggregates on inherited tables(Bruce)
updated tuples, etc)(Vadim) Fix substr() for out-of-bounds data
Fix for SELECT null, 'fail' FROM pg_am (Patrick) Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
SELECT NULL as EMPTY_FIELD now allowed(Patrick) Fix notty output to show status result. -q option still turns it off(Bruce)
Remove un-needed signal stuff from contrib/pginterface Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
Fix OR (where x <> 1 or x isnull didn't return tuples with x NULL) (Vadim) Fix cluster(Bruce)
Fix time_cmp function (Vadim) Fix for PQtrace start/stop several times(Bruce)
Fix handling of functions with non-attribute first argument in Fix a variety of locking problems like newer lock waiters getting
WHERE clauses (Vadim) lock before older waiters, and having readlock people not share
Fix GROUP BY when order of entries is different from order locks if a writer is waiting for a lock, and waiting writers not
in target list (Vadim) getting priority over waiting readers(Bruce)
Fix pg_dump for aggregates without sfunc1 (Vadim) 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)
Enhancements Enhancements
------------ ------------
Default genetic optimizer GEQO parameter is now 8(Bruce) Real deadlock detection, no more timeouts(Bruce)
Allow use parameters in target list having aggregates in functions(Vadim) <NOT DONE YET> Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas)
Added JDBC driver as an interface(Adrian & Peter) Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
pg_password utility CURRENT_USER(Thomas)
Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim) Speedup by inlining some frequently-called functions
Triggers implemented with CREATE TRIGGER (SQL3)(Vadim) Modify constraint syntax to be SQL92-compliant(Thomas)
SPI (Server Programming Interface) allows execution of queries inside Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas)
C-functions (Vadim) Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
NOT NULL implemented (SQL92)(Robson Paniago de Miranda) Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
Include reserved words for string handling, outer joins, and unions(Thomas) Allow Postgres-style casting ("::") of non-constants(Thomas)
Implement extended comments ("/* ... */") using exclusive states(Thomas) Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
Add "//" single-line comments(Bruce) Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
Remove some restrictions on characters in operator names(Thomas) Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas) Allow SQL92 delimited identifiers(Thomas)
Add text concatenation operator and function (SQL92)(Thomas) Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
Support WITH TIME ZONE syntax (SQL92)(Thomas) Support SQL92 syntax for type coercion of literal strings
Support INTERVAL <unit> TO <unit> syntax (SQL92)(Thomas) (e.g. "DATETIME 'now'")(Thomas)
Define types DOUBLE PRECISION, INTERVAL, CHARACTER, Add conversions for int2, int4, and OID types to and from text(Thomas)
and CHARACTER VARYING (SQL92)(Thomas) Use shared lock when building indices(Vadim)
Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas) Free memory allocated for an user query inside transaction block after
Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas) this query is done, was turned off in <= 6.2.1(Vadim)
Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas) New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas) New PostgreSQL Procedural Language (PL) backend interface(Jan)
Add more reserved words, mostly for SQL92 compliance(Thomas) Rename pg_dump -H option to -h(Bruce)
Allow hh:mm:ss time entry for timespan/reltime types(Thomas) Add Java support for passwords, European dates(Peter)
Add center() routines for lseg, path, polygon(Thomas) Use indices for LIKE and ~, !~ operations(Bruce)
Add distance() routines for circle-polygon, polygon-polygon(Thomas) Add hash functions for datetime and timespan(Thomas)
Check explicitly for points and polygons contained within polygons Time Travel removed(Vadim, Bruce)
using an axis-crossing algorithm(Thomas) Add paging for \d and \z, and fix \i(Bruce)
Add routine to convert circle-box(Thomas) Add Unix domain socket support to backend and to frontend library(Goran)
Merge conflicting operators for different geometric data types(Thomas) Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
Replace distance operator "<===>" with "<->"(Thomas) Allow more SQL92 and/or Postgres reserved words as column identifiers(Thomas)
Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas) Augment support for SQL92 SET TIME ZONE...(Thomas)
Add routines for text trimming on both ends, substring, and string position(Thomas) SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
Added conversion routines circle(box) and poly(circle)(Thomas) Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim) Enable SET TIME ZONE using TZ environment variable(Thomas)
Allow functions and operators on internally-identical types to succeed(Bruce) Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
Speed up backend startup after profiling analysis(Bruce) Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
Inline frequently called functions for performance(Bruce) frontend library initialization environment variables(Thomas)
Reduce open() calls(Bruce) Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
psql: Add PAGER for \h and \?,\C fix Add pg_description table for info on tables, columns, operators, types, and
Fix for psql pager when no tty(Bruce) aggregates(Bruce)
New entab utility(Bruce) Increase 16 char limit on system table/index names to 32 characters(Bruce)
General trigger functions for referential integrity (Vadim) Rename system indices(Bruce)
General trigger functions for time travel (Vadim) Add 'GERMAN' option to SET DATESTYLE(Thomas)
General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim) Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
MOVE implementation (Vadim) 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)
Allow installation data block size and max tuple size configuration(Darren)
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 startup(Andrew)
Modify sample startup 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)
New HTML and Postscript documentation(Thomas)
Source Tree Changes Source Tree Changes
------------------- -------------------
HPUX 10 patches (Vladimir Turin) Add new html development tools, and flow chart in /tools/backend
Added SCO support, (Daniel Harris) Fix for SCO compiles
mkLinux patches (Tatsuo Ishii) Stratus computer port "Gillies, Robert" <GilliesR@Nichols.com>
Change geometric box terminology from "length" to "width"(Thomas) Added support for shlib for BSD44_derived & i386_solaris
Deprecate temporary unstored slope fields in geometric code(Thomas) Make configure more automated(Brook)
Remove restart instructions from INSTALL(Bruce) Add script to check regression test results
Look in /usr/ucb first for install(Bruce) Break parser functions into smaller files, group together(Bruce)
Fix c++ copy example code(Thomas) Rename heap_create to heap_create_and_catalog, rename heap_creatr
Add -o to psql manual page(Bruce) to heap_create()(Bruce)
Prevent relname unallocated string length from being copied into database(Bruce) Sparc/Linux patch for locking(TomS)
Cleanup for NAMEDATALEN use(Bruce) Remove PORTNAME and reorganize port-specific stuff(Marc)
Fix pg_proc names over 15 chars in output(Bruce) Add optimizer README file(Bruce)
Add strNcpy() function(Bruce) Remove some recursion in optimizer and clean up some code there(Bruce)
remove some (void) casts that are unnecessary(Bruce) Fix for NetBSD locking(Henry)
new interfaces directory(Marc) Fix for libptcl make(Tatsuo)
Replace fopen() calls with calls to fd.c functions(Bruce) AIX patch(Darren)
Make functions static where possible(Bruce) Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
enclose unused functions in #ifdef NOT_USED(Bruce) function calls to istrue() or isfalse() to allow optimization(Thomas)
Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas) Various fixes NetBSD/Sparc related(TomH)
Changes for Digital Unix Alpha linux locking(Travis,Ryan)
Portability fix for pg_dumpall(Bruce) Change elog(WARN) to elog(ERROR)(Bruce)
Rename pg_attribute.attnvals to attdisbursion(Bruce) FAQ for FreeBSD(Marc)
"intro/unix" manual page now "pgintro"(Bruce) Bring in the PostODBC source tree as part of our standard distribution(Marc)
"built-in" manual page now "pgbuiltin"(Bruce) A minor patch for HP/UX 10 vs 9(Stan)
"drop" manual page now "drop_table"(Bruce) New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
Add "create_trigger", "drop_trigger" manual pages(Thomas) Unixware patches(Billy)
Add constraints regression test(Vadim & Thomas) New i386 'lock' for spin lock asm(Billy)
Add comments syntax regression test(Thomas) Support for multiplexed backends is removed
Add PGINDENT and support program(Bruce) Start an OpenBSD port
Massive commit to run PGINDENT on all *.c and *.h files(Bruce) Start an AUX port
Files moved to /src/tools directory(Bruce) Start a Cygnus port
SPI and Trigger programming guides (Vadim & D'Arcy) Add string functions to regression suite(Thomas)
Expand a few function names formerly truncated to 16 characters(Thomas)
...@@ -27,7 +27,7 @@ System Configuration ...@@ -27,7 +27,7 @@ System Configuration
Operating System (example: Linux 2.0.26 ELF) : Operating System (example: Linux 2.0.26 ELF) :
PostgreSQL version (example: PostgreSQL-6.2.1): PostgreSQL-6.2.1 PostgreSQL version (example: PostgreSQL-6.3) : PostgreSQL-6.3
Compiler used (example: gcc 2.7.2) : Compiler used (example: gcc 2.7.2) :
......
(1997-10-01) (1998-02-01)
PostgreSQL has a Web site at http://www.postgresql.org/ which carries details PostgreSQL has a Web site at http://www.postgresql.org/ which carries details
on the latest release, upcoming features, and other information to make your on the latest release, upcoming features, and other information to make your
work or play with PostgreSQL more productive. work or play with PostgreSQL more productive.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment