Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
b508136d
Commit
b508136d
authored
Mar 23, 2000
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update HISTORY file for 7.0.
parent
5ca8eb92
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
611 additions
and
123 deletions
+611
-123
HISTORY
HISTORY
+85
-70
doc/FAQ
doc/FAQ
+117
-43
doc/src/sgml/biblio.sgml
doc/src/sgml/biblio.sgml
+5
-5
doc/src/sgml/release.sgml
doc/src/sgml/release.sgml
+402
-3
src/tools/RELEASE_CHANGES
src/tools/RELEASE_CHANGES
+1
-1
src/tools/pgcvslog
src/tools/pgcvslog
+1
-1
No files found.
HISTORY
View file @
b508136d
------------------------------------------------------------------------
Chapter 0. Release Notes
Release Notes
------------------------------------------------------------------------
Table of Contents
Release 7.0
Release 6.5.3
Release 6.5.2
Release 6.5.1
Release 6.5
Release 6.4.2
Release 6.4.1
Release 6.4
Release 6.3.2
Release 6.3.1
Release 6.3
Release 6.2.1
Release 6.2
Release 6.1.1
Release 6.1
Release v6.0
Release v1.09
Release v1.02
Release v1.01
Release v1.0
Postgres95 Beta 0.03
Postgres95 Beta 0.02
Postgres95 Beta 0.01
Timing Results
Release 7.0
Release 7.0
-----------
This release shows the continued growth of PostgreSQL. There are more
This release shows the continued growth of PostgreSQL. There are more
updated items in 7.0 than in any previous release. Don't be concerned
changes in 7.0 than in any previous release. Don't be concerned this
this is a dot-zero release. PostgreSQL does its best to put
is a dot-zero release. We do our best to put out only solid releases,
out only solid releases,
and this one is no exception.
and this one is no exception.
Major changes in this release:
Major changes in this release:
Foreign Keys: Foreign keys are now implemented, with the exception of
Foreign Keys
PARTIAL MATCH foreign keys. Many users have been asking for this
Foreign keys are now implemented, with the exception of PARTIAL
feature, and we are pleased to finally offer it.
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.
Optimizer Overhaul: Continuing on work started a year ago, the
Upcoming Features
optimizer has been overhauled in many significant ways, allowing better
In 7.1, we plan to have outer joins, storage for very long
query execution processing with faster performance and less memory
rows, and a write-ahead logging system.
usage.
Updated psql: psql, our interactive terminal monitor, has been updated,
Migration to v7.0
with a variety of new features. See the psql manual page for the details.
Upcoming Features: In 7.1, we plan to have outer joins, storage for very long
A dump/restore using pg_dump is required for those wishing to migrate
rows, and a write-ahead logging system.
data from any previous release. For those upgrading from 6.5.*, you
can use pg_upgrade to upgrade to this release.
Detailed Change List
Bug Fixes
Bug Fixes
---------
---------
...
@@ -58,7 +43,6 @@ Prevent function calls with more than maximum number of arguments (Tom)
...
@@ -58,7 +43,6 @@ Prevent function calls with more than maximum number of arguments (Tom)
Many fixes for CASE (Tom)
Many fixes for CASE (Tom)
Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (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 SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
Allow utility statements in plpgsql (Tom)
Fix GROUP BY scan bug (Tom)
Fix GROUP BY scan bug (Tom)
Improvements in SQL grammar processing (Tom)
Improvements in SQL grammar processing (Tom)
Fix for views involved in INSERT ... SELECT ... (Tom)
Fix for views involved in INSERT ... SELECT ... (Tom)
...
@@ -67,9 +51,9 @@ Fix for subselects in INSERT ... SELECT (Tom)
...
@@ -67,9 +51,9 @@ Fix for subselects in INSERT ... SELECT (Tom)
Prevent INSERT ... SELECT ... ORDER BY (Tom)
Prevent INSERT ... SELECT ... ORDER BY (Tom)
Fixes for relations greater than 2GB, including vacuum
Fixes for relations greater than 2GB, including vacuum
Improve communication of system table changes to other running backends (Tom)
Improve communication of system table changes to other running backends (Tom)
Improve communication of user table modifications to other running backends (Tom)
Improve communication of user table modifications to other running backends (To
m)
Fix handling of temp tables in complex situations (Bruce, Tom)
Fix handling of temp tables in complex situations (Bruce, Tom)
Disallow DROP TABLE/DROP INDEX inside a transaction block
Allow table locking when tables opened, improving concurrent reliability (Tom)
Allow table locking when tables opened, improving concurrent reliability (Tom)
Properly quote sequence names in pg_dump (Ross J. Reedstrom)
Properly quote sequence names in pg_dump (Ross J. Reedstrom)
Prevent DESTROY DATABASE while others accessing
Prevent DESTROY DATABASE while others accessing
...
@@ -110,6 +94,12 @@ Fix for spinlock stuck problem when error is generated (Hiroshi)
...
@@ -110,6 +94,12 @@ Fix for spinlock stuck problem when error is generated (Hiroshi)
Fix ipcclean on Linux
Fix ipcclean on Linux
Fix handling of NULL constraint conditions (Tom)
Fix handling of NULL constraint conditions (Tom)
Fix memory leak in odbc driver (Nick Gorham)
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)
Remove ':' and ';' operators
Enhancements
Enhancements
------------
------------
...
@@ -133,12 +123,12 @@ configure --disable-debug removes -g (Peter E)
...
@@ -133,12 +123,12 @@ configure --disable-debug removes -g (Peter E)
Allow more complex default expressions (Tom)
Allow more complex default expressions (Tom)
First real FOREIGN KEY constraint trigger functionality (Jan)
First real FOREIGN KEY constraint trigger functionality (Jan)
Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
Add FOREIGN KEY ... MATCH
<unspecified>
referential actions (Don Baccus)
Add FOREIGN KEY ... MATCH referential actions (Don Baccus)
Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
Add DEC and SESSION_USER as reserved words
Add DEC and SESSION_USER as reserved words
Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
Add Oracle's COMMENT ON command (Mike Mascari
<mascarim@
yahoo.
Add Oracle's COMMENT ON command (Mike Mascari yahoo.
libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
Make USING in COPY optional (Bruce)
Make USING in COPY optional (Bruce)
...
@@ -196,7 +186,7 @@ Allow COPY IN to read file that do not end with a newline (Tom)
...
@@ -196,7 +186,7 @@ Allow COPY IN to read file that do not end with a newline (Tom)
Indicate when long identifiers are truncated (Tom)
Indicate when long identifiers are truncated (Tom)
Allow aggregates to use type equivalency (Peter E)
Allow aggregates to use type equivalency (Peter E)
Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
conversion functions (Karel Zak <zakkr@
zf.jcu.cz>)
conversion functions (Karel Zak
zf.jcu.cz>)
Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
Add NUMERIC and int8 types to ODBC
Add NUMERIC and int8 types to ODBC
...
@@ -222,9 +212,15 @@ Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
...
@@ -222,9 +212,15 @@ Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
Allow negation of a negative number in all cases
Allow negation of a negative number in all cases
Add ecpg descriptors (Christof, Michael)
Add ecpg descriptors (Christof, Michael)
Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
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)
New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
Add support for SJIS user defined characters (Tatsuo)
Add support for SJIS user defined characters (Tatsuo)
Larger views/rules supported
Larger views/rules supported
Make libpq's PQconndefaults() thread-safe (Tom)
Disable // as comment to be ANSI conforming, should use --
Allow column aliases on views CREATE VIEW name (collist)
Fixes for views with subqueries (Tom)
Allow UPDATE table SET fld = (SELECT ...) (Tom)
Types
Types
-----
-----
...
@@ -256,6 +252,18 @@ NUMERIC to int4 rounds (Tom)
...
@@ -256,6 +252,18 @@ NUMERIC to int4 rounds (Tom)
Convert float4/8 to NUMERIC properly (Tom)
Convert float4/8 to NUMERIC properly (Tom)
Allow type conversion with NUMERIC (Thomas)
Allow type conversion with NUMERIC (Thomas)
Make ISO date style (2000-02-16 09:33) the default (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)
Performance
Performance
-----------
-----------
...
@@ -286,7 +294,8 @@ Improve pg_statistics management for VACUUM speed improvement (Tom)
...
@@ -286,7 +294,8 @@ Improve pg_statistics management for VACUUM speed improvement (Tom)
Flush backend cache less frequently (Tom, Hiroshi)
Flush backend cache less frequently (Tom, Hiroshi)
COPY now reuses previous memory allocation, improving performance (Tom)
COPY now reuses previous memory allocation, improving performance (Tom)
Improve optimization cost estimation (Tom)
Improve optimization cost estimation (Tom)
Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom
)
Use DNF instead of CNF where appropriate (Tom, Taral)
Use DNF instead of CNF where appropriate (Tom, Taral)
Further cleanup for OR-of-AND WHERE-clauses (Tom)
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)
Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
...
@@ -294,6 +303,7 @@ Smarter optimizer computations for random index page access (Tom)
...
@@ -294,6 +303,7 @@ Smarter optimizer computations for random index page access (Tom)
New SET variable to control optimizer costs (Tom)
New SET variable to control optimizer costs (Tom)
Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
Reduce optimizer internal housekeeping of join paths for speedup (Tom)
Reduce optimizer internal housekeeping of join paths for speedup (Tom)
Major subquery speedup (Tom)
Source Tree Changes
Source Tree Changes
-------------------
-------------------
...
@@ -304,9 +314,10 @@ Improved range checking for large integers on Alpha's
...
@@ -304,9 +314,10 @@ Improved range checking for large integers on Alpha's
Clean up #include in /include directory (Bruce)
Clean up #include in /include directory (Bruce)
Add scripts for checking includes (Bruce)
Add scripts for checking includes (Bruce)
Remove un-needed #include's from *.c files (Bruce)
Remove un-needed #include's from *.c files (Bruce)
Change #include's to use <> and "" as appropriate (Bruce)
Change #include's to use
and "" as appropriate (Bruce)
Enable WIN32 compilation of libpq
Enable WIN32 compilation of libpq
Alpha spinlock fix from Uncle George
<gatgul@
voicenet.com>
Alpha spinlock fix from Uncle George voicenet.com>
Overhaul of optimizer data structures (Tom)
Overhaul of optimizer data structures (Tom)
Fix to cygipc library (Yutaka Tanida)
Fix to cygipc library (Yutaka Tanida)
Allow pgsql to work on newer Cygwin snapshots(Dan)
Allow pgsql to work on newer Cygwin snapshots(Dan)
...
@@ -323,6 +334,10 @@ Internally change datetime and timespan into timestamp and interval (Thomas)
...
@@ -323,6 +334,10 @@ Internally change datetime and timespan into timestamp and interval (Thomas)
Fix for plpgsql on BSDI
Fix for plpgsql on BSDI
Add SQL_ASCII test case to the regression test (Tatsuo)
Add SQL_ASCII test case to the regression test (Tatsuo)
configure --with-mb now deprecated (Tatsuo)
configure --with-mb now deprecated (Tatsuo)
NT fixes
NetBSD fixes Johnny C. Lam stat.cmu.edu>
Fixes for Alpha compiles
New multibyte encodings
...
...
doc/FAQ
View file @
b508136d
Frequently Asked Questions (FAQ) for PostgreSQL
Frequently Asked Questions (FAQ) for PostgreSQL
Last updated: Tue
Sep 28 01:06:15 EDT 1999
Last updated: Tue
Mar 21 16:09:11 EST 2000
Current maintainer: Bruce Momjian (
maillist
@candle.pha.pa.us)
Current maintainer: Bruce Momjian (
pgman
@candle.pha.pa.us)
The most recent version of this document can be viewed at the
The most recent version of this document can be viewed at the
postgreSQL Web site, http://www.PostgreSQL.org.
postgreSQL Web site, http://www.PostgreSQL.org.
...
@@ -87,7 +87,10 @@
...
@@ -87,7 +87,10 @@
regexp searching?
regexp searching?
4.14) In a query, how do I detect if a field is NULL?
4.14) In a query, how do I detect if a field is NULL?
4.15) What is the difference between the various character types?
4.15) What is the difference between the various character types?
4.16) How do I create a serial/auto-incrementing field?
4.16.1) How do I create a serial/auto-incrementing field?
4.16.2) How do I get the value of a serial insert?
4.16.3) Wouldn't use of currval() and nextval() lead to a race
condition with other concurrent backend processes?
4.17) What is an oid? What is a tid?
4.17) What is an oid? What is a tid?
4.18) What is the meaning of some of the terms used in PostgreSQL?
4.18) What is the meaning of some of the terms used in PostgreSQL?
4.19) Why do I get the error "FATAL: palloc failure: memory
4.19) Why do I get the error "FATAL: palloc failure: memory
...
@@ -96,6 +99,7 @@
...
@@ -96,6 +99,7 @@
4.21) My large-object operations get invalid large obj descriptor.
4.21) My large-object operations get invalid large obj descriptor.
Why?
Why?
4.22) How do I create a column that will default to the current time?
4.22) How do I create a column that will default to the current time?
4.23) Why are my subqueries using IN so slow?
Extending PostgreSQL
Extending PostgreSQL
...
@@ -144,7 +148,8 @@
...
@@ -144,7 +148,8 @@
PostgreSQL Data Base Management System
PostgreSQL Data Base Management System
Copyright (c) 1994-6 Regents of the University of California
Portions copyright (c) 1996-2000, PostgreSQL, Inc Portions Copyright
(c) 1994-6 Regents of the University of California
Permission to use, copy, modify, and distribute this software and its
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written
documentation for any purpose, without fee, and without a written
...
@@ -198,8 +203,8 @@
...
@@ -198,8 +203,8 @@
Unix/NT porting library. See pgsql/doc/README.NT in the distribution.
Unix/NT porting library. See pgsql/doc/README.NT in the distribution.
There is also a web page at
There is also a web page at
http://
members.tripod.com/~kevlo/postgres/portNT.html. There is
http://
www.freebsd.org/~kevlo/postgres/portNT.html. There is another
another
port using U/Win at http://surya.wipro.com/uwin/ported.html.
port using U/Win at http://surya.wipro.com/uwin/ported.html.
1.5) Where can I get PostgreSQL?
1.5) Where can I get PostgreSQL?
...
@@ -279,10 +284,14 @@
...
@@ -279,10 +284,14 @@
There is a nice tutorial at http://w3.one.net/~jhoffman/sqltut.htm and
There is a nice tutorial at http://w3.one.net/~jhoffman/sqltut.htm and
at
at
http://ourworld.compuserve.com/homepages/Graeme_Birchall/DB2_COOK.HTM.
http://ourworld.compuserve.com/homepages/Graeme_Birchall/HTM_COOK.HTM.
Another one is "Teach Yourself SQL in 21 Days, Second Edition" at
http://members.tripod.com/er4ebus/sql/index.htm
Many of our users like The Practical SQL Handbook, Bowman et al.,
Many of our users like The Practical SQL Handbook, Bowman et al.,
Addison Wesley.
Addison Wesley. Others like Lan Times Guide to SQL, Groff et al.,
Osborne McGraw-Hill.
1.11) Is PostgreSQL Y2K compliant?
1.11) Is PostgreSQL Y2K compliant?
...
@@ -295,7 +304,7 @@
...
@@ -295,7 +304,7 @@
subscribe to the pgsql-hackers and pgsql-patches mailing lists. Third,
subscribe to the pgsql-hackers and pgsql-patches mailing lists. Third,
submit high-quality patches to pgsql-patches.
submit high-quality patches to pgsql-patches.
There are about a dozen people who have
commit
privileges to the
There are about a dozen people who have
COMMIT
privileges to the
PostgreSQL CVS archive. All of them have submitted so many
PostgreSQL CVS archive. All of them have submitted so many
high-quality patches that it was a pain for the existing committers to
high-quality patches that it was a pain for the existing committers to
keep up, and we had confidence that patches they committed were likely
keep up, and we had confidence that patches they committed were likely
...
@@ -506,13 +515,13 @@
...
@@ -506,13 +515,13 @@
3.10) How do I tune the database engine for better performance?
3.10) How do I tune the database engine for better performance?
Certainly, indices can speed up queries. The
explain
command allows
Certainly, indices can speed up queries. The
EXPLAIN
command allows
you to see how PostgreSQL is interpreting your query, and which
you to see how PostgreSQL is interpreting your query, and which
indices are being used.
indices are being used.
If you are doing a lot of
insert
s, consider doing them in a large
If you are doing a lot of
INSERT
s, consider doing them in a large
batch using the
copy
command. This is much faster than single
batch using the
COPY
command. This is much faster than single
individual
inserts. Second, statements not in a begin work/commit
individual
INSERTS. Second, statements not in a BEGIN WORK/COMMIT
transaction block are considered to be in their own transaction.
transaction block are considered to be in their own transaction.
Consider performing several statements in a single transaction block.
Consider performing several statements in a single transaction block.
This reduces the transaction overhead. Also consider dropping and
This reduces the transaction overhead. Also consider dropping and
...
@@ -534,7 +543,7 @@
...
@@ -534,7 +543,7 @@
is unwise to make this value too large, or you may run out of memory
is unwise to make this value too large, or you may run out of memory
when a query invokes several concurrent sorts.
when a query invokes several concurrent sorts.
You can also use the
cluster
command to group data in base tables to
You can also use the
CLUSTER
command to group data in base tables to
match an index. See the cluster(l) manual page for more details.
match an index. See the cluster(l) manual page for more details.
3.11) What debugging features are available in PostgreSQL?
3.11) What debugging features are available in PostgreSQL?
...
@@ -607,7 +616,7 @@
...
@@ -607,7 +616,7 @@
3.13) What are the pg_tempNNN.NN files in my database directory?
3.13) What are the pg_tempNNN.NN files in my database directory?
They are temporary files generated by the query executor. For example,
They are temporary files generated by the query executor. For example,
if a sort needs to be done to satisfy an
order by
, and the sort
if a sort needs to be done to satisfy an
ORDER BY
, and the sort
requires more space than the backend's -S parameter allows, then temp
requires more space than the backend's -S parameter allows, then temp
files are created to hold the extra data.
files are created to hold the extra data.
...
@@ -648,16 +657,17 @@
...
@@ -648,16 +657,17 @@
4.2) What is the exact difference between binary cursors and normal
4.2) What is the exact difference between binary cursors and normal
cursors?
cursors?
See the
declare
manual page for a description.
See the
DECLARE
manual page for a description.
4.3) How do I
select
only the first few rows of a query?
4.3) How do I
SELECT
only the first few rows of a query?
See the
fetch
manual page, or use SELECT ... LIMIT....
See the
FETCH
manual page, or use SELECT ... LIMIT....
This only prevents all row results from being transferred to the
The entire query may have to be evaluated, even if you only want the
client. The entire query must be evaluated, even if you only want just
first few rows. Consider a query that has an ORDER BY. If there is an
the first few rows. Consider a query that has an order by. There is no
index that matches the ORDER BY, PostgreSQL may be able to evaluate
way to return any rows until the entire query is evaluated and sorted.
only the first few records requested, or the entire query may have to
be evaluated until the desired rows have been generated.
4.4) How do I get a list of tables, or other information I see in psql?
4.4) How do I get a list of tables, or other information I see in psql?
...
@@ -669,7 +679,7 @@
...
@@ -669,7 +679,7 @@
4.5) How do you remove a column from a table?
4.5) How do you remove a column from a table?
We do not support
alter table drop column
, but do this:
We do not support
ALTER TABLE DROP COLUMN
, but do this:
SELECT ... -- select all columns but the one you want to remove
SELECT ... -- select all columns but the one you want to remove
INTO TABLE new_table
INTO TABLE new_table
FROM old_table;
FROM old_table;
...
@@ -725,35 +735,36 @@
...
@@ -725,35 +735,36 @@
\? to see them.
\? to see them.
Also try the file pgsql/src/tutorial/syscat.source. It illustrates
Also try the file pgsql/src/tutorial/syscat.source. It illustrates
many of the
select
s needed to get information from the database system
many of the
SELECT
s needed to get information from the database system
tables.
tables.
4.9) My queries are slow or don't make use of the indexes. Why?
4.9) My queries are slow or don't make use of the indexes. Why?
PostgreSQL does not automatically maintain statistics. One has to make
PostgreSQL does not automatically maintain statistics. One has to make
an explicit
vacuum
call to update the statistics. After statistics are
an explicit
VACUUM
call to update the statistics. After statistics are
updated, the optimizer knows how many rows in the table, and can
updated, the optimizer knows how many rows in the table, and can
better decide if it should use indices. Note that the optimizer does
better decide if it should use indices. Note that the optimizer does
not use indices in cases when the table is small because a sequential
not use indices in cases when the table is small because a sequential
scan would be faster.
scan would be faster.
For column-specific optimization statistics, use
vacuum analyze
.
For column-specific optimization statistics, use
VACUUM ANALYZE
.
V
acuum analyze
is important for complex multi-join queries, so the
V
ACUUM ANALYZE
is important for complex multi-join queries, so the
optimizer can estimate the number of rows returned from each table,
optimizer can estimate the number of rows returned from each table,
and choose the proper join order. The backend does not keep track of
and choose the proper join order. The backend does not keep track of
column statistics on its own, so
vacuum analyze
must be run to collect
column statistics on its own, so
VACUUM ANALYZE
must be run to collect
them periodically.
them periodically.
Indexes are not used for
order by
operations.
Indexes are not used for
ORDER BY
operations.
When using wild-card operators such as LIKE or ~, indices can only be
When using wild-card operators such as LIKE or ~, indices can only be
used if the beginning of the search is anchored to the start of the
used if the beginning of the search is anchored to the start of the
string. So, to use indices, LIKE searches can should not begin with %,
string. So, to use indices, LIKE searches can should not begin with %,
and ~(regular expression searches) should start with ^.
and ~(regular expression searches) should start with ^. If you have
locale enabled, indexes can't be used for wild-card searches.
4.10) How do I see how the query optimizer is evaluating my query?
4.10) How do I see how the query optimizer is evaluating my query?
See the
explain
manual page.
See the
EXPLAIN
manual page.
4.11) What is an R-tree index?
4.11) What is an R-tree index?
...
@@ -816,14 +827,60 @@ BYTEA bytea variable-length array of bytes
...
@@ -816,14 +827,60 @@ BYTEA bytea variable-length array of bytes
using them. Specifically, the penalty is for access to all columns
using them. Specifically, the penalty is for access to all columns
after the first column of this type.
after the first column of this type.
4.16) How do I create a serial/auto-incrementing field?
4.16.1) How do I create a serial/auto-incrementing field?
PostgreSQL supports a serial data type. It auto-creates a sequence and
PostgreSQL supports SERIAL data type. It auto-creates a sequence and
index on the column. See the create_sequence manual page for more
index on the column. For example, this...
information about sequences. You can also use each row's oid field as
CREATE TABLE person (
a unique value. However, if you need to dump and reload the database,
id SERIAL,
you need to use pg_dump's -o option or copy with oids option to
name TEXT
preserve the oids.
);
...is automatically translated into this...
CREATE SEQUENCE person_id_seq;
CREATE TABLE person (
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
name TEXT
);
CREATE UNIQUE INDEX person_id_key ON person ( id );
See the create_sequence manual page for more information about
sequences. You can also use each row's oid field as a unique value.
However, if you need to dump and reload the database, you need to use
pg_dump's -o option or COPY WITH OIDS option to preserve the oids.
For more details, see Bruce Momjian's chapter on Numbering Rows.
4.16.2) How do I get the back the generated SERIAL value after an insert?
Probably the simplest approach is to to retrieve the next SERIAL value
from the sequence object with the nextval() function before inserting
and then insert it explicitly. Using the example table in 4.16.1, that
might look like this:
$newSerialID = nextval('person_id_seq');
INSERT INTO person (id, name) VALUES ($newSerialID, 'Blaise Pascal');
You would then also have the new value stored in $newSerialID for use
in other queries (e.g., as a foreign key to the person table). Note
that the name of the automatically-created SEQUENCE object will be
named <table>_<serialcolumn>_seq, where table and serialcolumn are the
names of your table and your SERIAL column, respectively.
Similarly, you could retrieve the just-assigned SERIAL value with the
currval() function after it was inserted by default, e.g.,
INSERT INTO person (name) VALUES ('Blaise Pascal');
$newID = currval('person_id_seq');
Finally, you could use the oid returned from the INSERT statement to
lookup the default value, though this is probably the least portable
approach. In perl, using DBI with Edmund Mergl's DBD::Pg module, the
oid value is made available via $sth->{pg_oid_status} after
$sth->execute().
4.16.3) Wouldn't use of currval() and nextval() lead to a race condition
with other concurrent backend processes?
No. That has been handled by the backends.
4.17) What is an oid? What is a tid?
4.17) What is an oid? What is a tid?
...
@@ -858,9 +915,9 @@ BYTEA bytea variable-length array of bytes
...
@@ -858,9 +915,9 @@ BYTEA bytea variable-length array of bytes
Some of the source code and older documentation use terms that have
Some of the source code and older documentation use terms that have
more common usage. Here are some:
more common usage. Here are some:
* table, relation, class
* row, record, tuple
* row, record, tuple
* attribute, field, column
* column, field, attribute
* table, class
* retrieve, select
* retrieve, select
* replace, update
* replace, update
* append, insert
* append, insert
...
@@ -913,10 +970,27 @@ BYTEA bytea variable-length array of bytes
...
@@ -913,10 +970,27 @@ BYTEA bytea variable-length array of bytes
but this makes the column default to the time of table creation, not
but this makes the column default to the time of table creation, not
the time of row insertion. Instead do:
the time of row insertion. Instead do:
create table test (x int, modtime timestamp default text 'now');
CREATE TABLE test (x int, modtime timestamp default now() );
The calling of the function now() prevents the default value from
being computed at table creation time, and delays it until insertion
time. We believe this will not be a problem in post-6.5.* releases.
4.23) Why are my subqueries using IN so slow?
Currently, we join subqueries to outer queries by sequential scanning
the result of the subquery for each row of the outer query. A
workaround is to replace IN with EXISTS. For example, change:
SELECT *
FROM tab
WHERE col1 IN (SELECT col2 FROM TAB2)
to:
SELECT *
FROM tab
WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
The casting of the value to text prevents the default value from being
We hope to fix this limitation in a future release.
computed at table creation time, and delays it until insertion time.
_________________________________________________________________
_________________________________________________________________
Extending PostgreSQL
Extending PostgreSQL
...
...
doc/src/sgml/biblio.sgml
View file @
b508136d
...
@@ -19,8 +19,8 @@
...
@@ -19,8 +19,8 @@
<title id="BOWMAN93-full">
<title id="BOWMAN93-full">
The Practical <acronym>SQL</acronym> Handbook
The Practical <acronym>SQL</acronym> Handbook
</title>
</title>
<titleabbrev id="BOWMAN9
3
">
<titleabbrev id="BOWMAN9
6
">
Bowman et al, 199
3
Bowman et al, 199
6
</titleabbrev>
</titleabbrev>
<subtitle>
<subtitle>
Using Structured Query Language
Using Structured Query Language
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
<edition>3</edition>
<edition>3</edition>
<authorgroup>
<authorgroup>
<author>
<author>
<firstname>Judit
y
</firstname>
<firstname>Judit
h
</firstname>
<surname>Bowman</surname>
<surname>Bowman</surname>
</author>
</author>
<author>
<author>
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
</author>
</author>
<author>
<author>
<firstname>Marcy</firstname>
<firstname>Marcy</firstname>
<surname>Da
m
ovsky</surname>
<surname>Da
rn
ovsky</surname>
</author>
</author>
</authorgroup>
</authorgroup>
<isbn>0-201-44787-8</isbn>
<isbn>0-201-44787-8</isbn>
...
@@ -46,7 +46,7 @@
...
@@ -46,7 +46,7 @@
<publishername>Addison-Wesley</publishername>
<publishername>Addison-Wesley</publishername>
</publisher>
</publisher>
<copyright>
<copyright>
<year>199
7
</year>
<year>199
6
</year>
<holder>Addison-Wesley Longman, Inc.</holder>
<holder>Addison-Wesley Longman, Inc.</holder>
</copyright>
</copyright>
<!--
<!--
...
...
doc/src/sgml/release.sgml
View file @
b508136d
<chapter id="release">
<chapter id="release">
<title>Release Notes</title>
<title>Release Notes</title>
<sect1>
<title>Release 7.0</title>
<!--
<docinfo>
<authorgroup>
<author>
<firstname>Bruce</firstname>
<surname>Momjian</surname>
</author>
</authorgroup>
<date>2000-04-01</date>
</docinfo>
-->
<para>
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.
</para>
<para>
Major changes in this release:
<variablelist>
<varlistentry>
<term>
Foreign Keys
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Optimizer Overhaul
</term>
<listitem>
<para>
Continuing on work started a year ago, the optimizer has been
overhauled, allowing improved query execution and better performance
with less memory usage.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Updated psql
</term>
<listitem>
<para>
<application>psql</application>, our interactive terminal monitor, has been
updated with a variety of new features. See the psql manual page for details.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Upcoming Features
</term>
<listitem>
<para>
In 7.1, we plan to have outer joins, storage for very long rows, and a
write-ahead logging system.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<sect2>
<title>Migration to v7.0</title>
<para>
A dump/restore using <application>pg_dump</application>
is required for those wishing to migrate data from any
previous release of <productname>Postgres</productname>.
For those upgrading from 6.5.*, you can use
<application>pg_upgrade</application> to upgrade to this
release.
</para>
</sect2>
<sect2>
<title>Detailed Change List</title>
<para>
<programlisting>
Bug Fixes
---------
Prevent function calls with more than maximum number of arguments (Tom)
Many fixes for CASE (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 DESTROY 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)
Make TABLE optional keyword in LOCK TABLE (Bruce)
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)
Remove ':' and ';' operators
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 (Jens Glaser jens@jens.de)
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)
Improve CREATE FUNCTION to allow type conversion specification
(Bernie 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)
Add DEC and SESSION_USER as reserved words
Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
Add Oracle's COMMENT ON command (Mike Mascari <mascarim@yahoo.
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 --alldb 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 startup (Tatsuo)
Add postmaster.opts.default file to store startup 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 user configuration of maximum number of index keys and arguments
(Bruce)
Allow unprivileged users to change their passwords (Peter E)
With password authentication enabled, new users without passwords can't
connect (Peter E)
Disallow dropping a user who owns a database (Peter E)
Add initdb --enable-multibyte option (Peter E)
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 more 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 --
Allow column aliases on views CREATE VIEW name (collist)
Fixes for views with subqueries (Tom)
Allow UPDATE table SET fld = (SELECT ...) (Tom)
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)
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)
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 Alpha's
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 Uncle George <gatgul@voicenet.com>
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 (Kardos, Dr. Andreas)
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 Johnny C. Lam <lamj@stat.cmu.edu>
Fixes for Alpha compiles
New multibyte encodings
</programlisting>
</para>
</sect2>
</sect1>
<sect1>
<sect1>
<title>Release 6.5.3</title>
<title>Release 6.5.3</title>
<!--
<!--
...
@@ -169,8 +568,8 @@ Add Win1250 (Czech) support (Pavel Behal)
...
@@ -169,8 +568,8 @@ Add Win1250 (Czech) support (Pavel Behal)
</sect1>
</sect1>
<sect1>
<sect1>
<title>Release 6.5</title>
<title>Release 6.5</title>
<!--
<!--
<docinfo>
<docinfo>
<authorgroup>
<authorgroup>
...
@@ -442,7 +841,7 @@ Fix for memory leak in executor with fjIsNull
...
@@ -442,7 +841,7 @@ Fix for memory leak in executor with fjIsNull
Fix for aggregate memory leaks(Erik Riedel)
Fix for aggregate memory leaks(Erik Riedel)
Allow username containing a dash GRANT permissions
Allow username containing a dash GRANT permissions
Cleanup of NULL in inet types
Cleanup of NULL in inet types
Clean up system
table bugs(Tom)
Clean up system
table bugs(Tom)
Fix problems of PAGER and \? command(Masaaki Sakaida)
Fix problems of PAGER and \? command(Masaaki Sakaida)
Reduce default multi-segment file size limit to 1GB(Peter)
Reduce default multi-segment file size limit to 1GB(Peter)
Fix for dumping of CREATE OPERATOR(Tom)
Fix for dumping of CREATE OPERATOR(Tom)
...
...
src/tools/RELEASE_CHANGES
View file @
b508136d
...
@@ -5,7 +5,6 @@ doc/Machine-specific FAQ's
...
@@ -5,7 +5,6 @@ doc/Machine-specific FAQ's
doc/bug.template
doc/bug.template
update include/version.h.in after release, including subversion
update include/version.h.in after release, including subversion
update pgaccess
update pgaccess
update odbc
update src/interfaces/jdbc/postgresql/jdbc1/DatabaseMetaData.java
update src/interfaces/jdbc/postgresql/jdbc1/DatabaseMetaData.java
update src/interfaces/jdbc/postgresql/jdbc2/DatabaseMetaData.java
update src/interfaces/jdbc/postgresql/jdbc2/DatabaseMetaData.java
update pg_upgrade to handle new version, or disable
update pg_upgrade to handle new version, or disable
...
@@ -18,3 +17,4 @@ update documentation
...
@@ -18,3 +17,4 @@ update documentation
man pages
man pages
sgml docs
sgml docs
update VERSION numbers of interfaces
update VERSION numbers of interfaces
update ports list
src/tools/pgcvslog
View file @
b508136d
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
# Usage $0 [-r 'revision pattern'] file
# Usage $0 [-r 'revision pattern'] file
# cvs log -d '>1999-06-14 00:00:00 GMT' > log
# cvs log -d '>1999-06-14 00:00:00 GMT'
.
> log
# pgcvslog -r '\.2\.[0-9]*$' log
# pgcvslog -r '\.2\.[0-9]*$' log
if [ "X$1" = "X-r" ]
if [ "X$1" = "X-r" ]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment