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
88057d0c
Commit
88057d0c
authored
Sep 19, 2006
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update migration changes, more cleanups.
parent
dd18c579
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
784 additions
and
773 deletions
+784
-773
doc/src/sgml/release.sgml
doc/src/sgml/release.sgml
+784
-773
No files found.
doc/src/sgml/release.sgml
View file @
88057d0c
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.43
8 2006/09/18 23:19:50
momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.43
9 2006/09/19 00:57:07
momjian Exp $ -->
<!--
<!--
Typical markup:
Typical markup:
...
@@ -11,9 +11,9 @@ PostgreSQL <productname>
...
@@ -11,9 +11,9 @@ PostgreSQL <productname>
pg_[A-Za-z0-9_] <application>
pg_[A-Za-z0-9_] <application>
[A-Z][A-Z] <type>, <envar>, <literal>
[A-Z][A-Z] <type>, <envar>, <literal>
non-ascii convert to & escapes
non-ascii convert to & escapes
http://www.mountaindragon.com/html/iso.htm
http://www.mountaindragon.com/html/iso.htm
encode multibytes as UTF8
encode multibytes as UTF8
http://www.pemberley.com/janeinfo/latin1.html#latexta
http://www.pemberley.com/janeinfo/latin1.html#latexta
wrap long lines
wrap long lines
For new features, add links to the documentation sections.
For new features, add links to the documentation sections.
...
@@ -36,24 +36,19 @@ For new features, add links to the documentation sections.
...
@@ -36,24 +36,19 @@ For new features, add links to the documentation sections.
<title>Overview</title>
<title>Overview</title>
<para>
<para>
Major changes in this release:
This release adds many improvements to commands and database
facilities that were requested by users. Rather than add a
few large new features, this release makes many features from
previous releases easier to use. For example, it is now much
easier to create standby point-in-time-recovery (PITR) servers.
Many performance bottlenecks have been eliminated, allowing
more functionality to be enabled by default. Various additions
will make porting from other databases easier. The changes
in this release continue the <productname>PostgreSQL</>
tradition of not only being the most advanced open source
database, but also the easiest to use.
</para>
</para>
<variablelist>
<varlistentry>
<term>
XX
</term>
<listitem>
<para>
XX
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect2>
<sect2>
<sect2>
...
@@ -71,1193 +66,1277 @@ For new features, add links to the documentation sections.
...
@@ -71,1193 +66,1277 @@ For new features, add links to the documentation sections.
<itemizedlist>
<itemizedlist>
<listitem>
<para>
XX
</para>
<para>
YYY
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Additional Changes</title>
<para>
Below you will find a detailed account of the additional
changes between <productname>PostgreSQL</productname> 8.2 and
the previous major release.
</para>
<sect3>
<title>Performance Improvements</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Improve efficiency of <literal>IN</> (list-of-expressions)
Improve cost estimation for nestloop index scans (Tom)
clauses (Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Reduce locking requirements of sequential scans (Qingqing
This may eliminate the need to set unrealistically small
Zhou)
values of <envar>random_page_cost</>. If you have been
using a very small <envar>random_page_cost</>, please
recheck your test cases.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve subtransaction performance (Alvaro, Itagaki Takahiro,
Deprecate use of <application>postmaster</> symlink (Peter)
Tom)
</para>
<para>
<application>postmaster</> and <application>postgres</>
commands now act identically, with the behavior determined
by switches. The <application>postmaster</> symlink is
kept for compatibility, but is not really needed.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve locking performance by breaking locks into sections
Change <envar>log_duration</> to output even if the query
(Tom)
is not output
(Tom)
</para>
</para>
<para>
<para>
This allows locking to be more fine-grained, reducing
In prior releases, <envar>log_duration</> only printed if
contention
.
the query appeared earlier in the logs
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow the planner to re-order <literal>OUTER JOIN</>s when
Make row comparisons follow <acronym>SQL</> standard
possible
(Tom)
semantics and allow them to be used in index scans
(Tom)
</para>
</para>
<para>
<para>
This makes a considerable difference for queries involving
Previously, row = and <> comparisons followed the
multiple outer joins.
standard but < <= > >= did not. A row comparison
can now be used as an index constraint for a multicolumn
index matching the row value.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve planning of joins to inherited tables and <literal>UNION
Set <envar>escape_string_warning</> to <literal>on</> by
ALL</> views (Tom)
default (Bruce)
</para>
<para>
This issues a warning if backslash escapes are used in
non-escape (non-<literal>E''</>) strings.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve cost estimation for nestloop index scans (Tom)
Disallow aggregate functions in <command>UPDATE</> commands
(unless within a subquery) (Tom)
</para>
</para>
<para>
<para>
This may eliminate the need to set unrealistically small
The standard disallows this, and it leads to unpredictable
values of <envar>random_page_cost</>. If you have been
results.
using a very small <envar>random_page_cost</>, please
recheck your test cases.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Increase default values for <envar>shared_buffers</> and
Change the row constructor syntax (<literal>ROW(...)</>)
<envar>max_fsm_pages</>(Andrew)
so that list elements <literal>foo.*</> will be expanded
to a list of their member fields, rather than creating a
nested rowtype field as formerly (Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Improve the optimizer statistics used by <literal>LIKE</>,
The new behavior is substantially more useful since it
<literal>ILIKE</>, and regular expression operations (Tom)
allows, for example, triggers to check for data changes
with <literal>IF row(new.*) IS DISTINCT FROM row(old.*)</>.
The old behavior is still available by omitting <literal>.*</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow constraint exclusion to be applied to inherited
Have <command>SET CONSTRAINT</> affect only one constraint
<command>UPDATE</>/<command>DELETE</> queries (Tom
)
(Kris Jurka
)
</para>
</para>
<para>
<para>
<command>SELECT</> already honored constraint exclusion.
In previous releases, <command>SET CONSTRAINT</> modified
all constraints with a matching name. In this release,
the schema search path is used to modify only the first
matching constraint. A schema specification is also
supported.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve sorting speed and reduce memory usage (Simon, Tom)
Remove rule permission for tables, for security reasons
(Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
<function>MIN()</>/<function>MAX()</> can now use indexes
In this release, only a table's owner can create or modify
in more cases (Tom)
rules for the table. For backwards compatibility,
<command>GRANT</>/<command>REVOKE RULE</> is still accepted,
but it does nothing.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve concurrency for database creation and destruction
Array comparison improvements (Tom)
(Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Speed up vacuuming of btree indexes (Heikki Linnakangas,
Now array dimensions are also compared.
Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve <command>COPY</> performance (Alon Goldshuv, Tom)
Change array concatenation to match documented behavior
(Tom)
</para>
<para>
This changes the previous behavior where concatenation
would adjust the lower array dimensions.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>FILLFACTOR</> to table and index creation
Have <function>to_char(time)</> and <function>to_char(interval)</>
(ITAGAKI Takahiro)
treat <literal>'HH'</> and <literal>'HH12'</> as 12-hour
</para>
intervals.
<para>
<para>
This adds extra free space to each heap or index page,
Most applications should use <literal>'HH24'</> unless they
allowing improved performance as the database grows. This
want a 12-hour display.
is particularly valuable to maintain <command>CLUSTER</>ing.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove dead index entries before btree page split (Junji
Zero unmasked bits in conversion from <type>INET</> to
Teramoto
)
<type>CIDR</> (Tom
)
</para>
</para>
</listitem>
</listitem>
</sect3>
<sect3>
<title>Server Changes</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Improve performance of statistics monitoring, especially
Remove <envar>australian_timezones</> configuration variable
<literal>stats_command_string</> (Tom, Bruce
)
(Joachim Wieland
)
</para>
</para>
<para>
<para>
This release sets <envar>stats_command_string</> to
No longer needed now that timezone abbreviations are
<literal>on</> by default, now that its overhead is minimal.
configurable.
This means <literal>pg_stat_activity</> now will show all
active queries by default.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add support for include directives in <filename>postgresql.conf</>
Change <application>libpq</> <function>PQdsplen()</> to
(Joachim Wieland
)
return a useful value (Martijn van Oosterhout
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add native <acronym>LDAP</> authentication (Magnus Hagander)
Change <application>libpq</> <function>PQgetssl()</> to
return a <literal>void*</>, rather than <literal>SSL*</>
(Martijn van Oosterhout)
</para>
</para>
<para>
<para>
This is particularly useful for platforms that do no
t
This allows applications to use the function withou
t
support <acronym>PAM</>, such as Win32
.
<acronym>SSL</> headers
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Re-enable <envar>full_page_writes</> (Tom
)
Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce
)
</para>
</para>
<para>
<para>
This flag can now be used even with <acronym>PITR</>. It
These ports no longer had active maintainers.
is turned on automatically between <function>pg_start_backup()</>
and <function>pg_stop_backup()</> calls.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add support for <acronym>SSL</> Certificate Revocation List
Make command-line options of postmaster and postgres
(<acronym>CRL</>) files, <filename>root.crl</> (Libor
identical (Peter)
Hohoš)
</para>
</para>
<para>
<para>
This was added to <application>libpq</> as well.
This allows the postmaster to pass arguments to each backend
without using <literal>-o</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove routine autovacuum server log entries (Bruce)
Remove /contrib/ora2pg, now at <ulink
</para>
url="http://www.samse.fr/GPL/ora2pg"></ulink>
<para>
<literal>pg_stat_activity</> now shows autovacuum activity.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>GRANT CONNECT ON DATABASE</>, to be used in
Remove contrib modules that have been migrated to pgfoundry:
addition to <filename>pg_hba.conf</> (Gevik Babakhani)
adddepend, dbase, dbmirror, fulltextindex, mac, userlock
</para>
</para>
</listitem>
<listitem>
<para>
<para>
This gives SQL-control over database access, and works in
Remove contrib abandoned modules: mSQL-interface, ips
combination with the existing <filename>pg_hba.conf</>
controls.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add last vacuum and analyze timestamp columns to the stats
In /contrib/xml2, rename <function>xml_valid()</> to
collector (Larry Rosenman
)
<function>xml_is_well_formed()</> (Tom
)
</para>
</para>
<para>
<para>
These values now appear in the <literal>pg_stat_*_tables</>
<function>xml_valid()</> will remain for backward compability,
system views, and are used by autovacuum. ?
but its behavior will change to do schema checks in future
releases.
</para>
</para>
</listitem>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Changes</title>
<para>
Below you will find a detailed account of the additional
changes between <productname>PostgreSQL</productname> 8.2 and
the previous major release.
</para>
<sect3>
<title>Performance Improvements</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Deprecate use of <application>postmaster</> symlink (Peter)
Improve efficiency of <literal>IN</> (list-of-expressions)
clauses (Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
<application>postmaster</> and <application>postgres</>
Reduce locking requirements of sequential scans (Qingqing
commands now act identically, with the behavior determined
Zhou)
by switches. The <application>postmaster</> symlink is
kept for compatibility, but is not really needed.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <acronym>GUC</> <envar>update_process_title</> to
Improve subtransaction performance (Alvaro, Itagaki Takahiro,
control whether the <application>ps</> display is updated
Tom)
for every command, default to <literal>on</> (Bruce)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Track tables needing vacuum with more accuracy (Alvaro)
Improve locking performance by breaking locks into sections
(Tom)
</para>
</para>
<para>
<para>
This reduces the overhead involved in preventing transaction
This allows locking to be more fine-grained, reducing
ID wraparound
.
contention
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow units to be specified in configuration settings
Allow the planner to re-order <literal>OUTER JOIN</>s when
(Peter
)
possible (Tom
)
</para>
</para>
<para>
<para>
You can now set <envar>shared_buffer</> to <literal>32000kB</>,
This makes a considerable difference for queries involving
for example
.
multiple outer joins
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve logging of protocol-level prepare/bind/execute
Improve planning of joins to inherited tables and <literal>UNION
messages (Bruce,
Tom)
ALL</> views (
Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Such logging now shows statement names, bind parameter
Increase default values for <envar>shared_buffers</> and
values, and the text of the query being executed.
<envar>max_fsm_pages</>(Andrew)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Change <envar>log_duration</> to output even if the query
Improve the optimizer statistics used by <literal>LIKE</>,
is not output
(Tom)
<literal>ILIKE</>, and regular expression operations
(Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
In prior releases, <envar>log_duration</> only printed if
Allow constraint exclusion to be applied to inherited
the query appeared earlier in the logs.
<command>UPDATE</>/<command>DELETE</> queries (Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Allow a forced switch to a new xlog file (Simon Riggs, Tom)
<command>SELECT</> already honored constraint exclusion.
</para>
</para>
</listitem>
<listitem>
<para>
<para>
This is valuable for keeping <acronym>PITR</> standby
Improve sorting speed and reduce memory usage (Simon, Tom)
servers in sync with the master. xlog file switching also
happens automatically during <function>pg_stop_backup()</>.
This ensures that <acronym>PITR</> servers have all xlog
files needed for recovery.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <acronym>WAL</> informational functions (Simon Riggs)
<function>MIN()</>/<function>MAX()</> can now use indexes
in more cases (Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Add functions for interrogating the current xlog insertion
Improve concurrency for database creation and destruction
point and determining <acronym>WAL</> filenames from the
(Tom)
hex <acronym>WAL</> locations displayed by
<function>pg_stop_backup()</> and friends.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <acronym>WAL</> replay to be restored quicker in case
Speed up vacuuming of btree indexes (Heikki Linnakangas,
of a crash (Simon Riggs
)
Tom
)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
The server now does periodic checkpoints during <acronym>WAL</>
Improve <command>COPY</> performance (Alon Goldshuv, Tom)
recovery, so if there is a crash, future <acronym>WAL</>
recovery is shortened. This also eliminates the need for
<acronym>PITR</> standby servers to replay the entire log
since the base backup if they crash.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <envar>archive_timeout</> to force xlog file switches
Add <literal>FILLFACTOR</> to table and index creation
at a given interval (Simon Riggs)
(ITAGAKI Takahiro)
</para>
<para>
This adds extra free space to each heap or index page,
allowing improved performance as the database grows. This
is particularly valuable to maintain <command>CLUSTER</>ing.
</para>
</para>
</listitem>
<listitem>
<para>
<para>
This enforces a maximum delay for <acronym>PITR</> standby
Improve multicolumn <acronym>GIST</> indexing (Oleg, Teodor)
servers.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add a <literal>waiting</> column to <literal>pg_stat_activity</>
<acronym>GIST</> indexes now are clusterable (Teodor)
(Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
This allows <literal>pg_stat_activity</> to show the same
Remove dead index entries before btree page split (Junji
information as the <literal>ps</> display.
Teramoto)
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
<title>
Query
Changes</title>
<title>
Server
Changes</title>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Support portal parameters in <command>EXPLAIN</> and
Improve performance of statistics monitoring, especially
<command>EXECUTE</> (Tom
)
<literal>stats_command_string</> (Tom, Bruce
)
</para>
</para>
<para>
<para>
This allows, for example, <literal>?</> parameters to work
This release sets <envar>stats_command_string</> to
in these commands in <acronym>JDBC</>.
<literal>on</> by default, now that its overhead is minimal.
This means <literal>pg_stat_activity</> now will show all
active queries by default.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>IS NOT DISTINCT FROM</> (Pavel Stehule)
Add support for include directives in <filename>postgresql.conf</>
(Joachim Wieland)
</para>
</listitem>
<listitem>
<para>
Add native <acronym>LDAP</> authentication (Magnus Hagander)
</para>
</para>
<para>
<para>
It is similar to equals (<literal>=</>), but is true when
This is particularly useful for platforms that do not
both left and right arguments are <literal>NULL</>, and
support <acronym>PAM</>, such as Win32.
false when just one is, rather than yielding <literal>NULL</>
in these cases.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Make row comparisons follow <acronym>SQL</> standard
Allow <envar>full_page_writes</> to be turned <literal>off</>
semantics and allow them to be used in index scans
(Tom)
again
(Tom)
</para>
</para>
<para>
<para>
Previously, row = and <> comparisons followed the
This flag can now be used even with <acronym>PITR</>. It
standard but < <= > >= did not. A row comparison
is turned on automatically between <function>pg_start_backup()</>
can now be used as an index constraint for a multicolumn
and <function>pg_stop_backup()</> calls.
index matching the row value.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow additional row values comparison (Tom)
Add support for <acronym>SSL</> Certificate Revocation List
(<acronym>CRL</>) files, <filename>root.crl</> (Libor
Hohoš)
</para>
</para>
<para>
<para>
Add <, <=, >, >=
.
This was added to <application>libpq</> as well
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add system view <literal>pg_prepared_statements</> to show
Remove routine autovacuum server log entries (Bruce)
prepared statements (Joachim Wieland)
</para>
<para>
<literal>pg_stat_activity</> now shows autovacuum activity.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add system view <literal>pg_cursors</> to show open cursors
Add <literal>GRANT CONNECT ON DATABASE</>, to be used in
(Joachim Wieland
)
addition to <filename>pg_hba.conf</> (Gevik Babakhani
)
</para>
</para>
<para>
<para>
Both this and <literal>pg_prepared_statements</> are very
This gives SQL-control over database access, and works in
useful for pooled connection setups.
combination with the existing <filename>pg_hba.conf</>
controls.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
If <acronym>SQL</>-level <command>PREPARE</> parameters
Add last vacuum and analyze timestamp columns to the stats
are unknown, infer their types from the context of the
collector (Larry Rosenman)
query (Neil)
</para>
<para>
These values now appear in the <literal>pg_stat_*_tables</>
system views, and are used by autovacuum. ?
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Protocol-level <command>PREPARE</> already did this.
Add <acronym>GUC</> <envar>update_process_title</> to
control whether the <application>ps</> display is updated
for every command, default to <literal>on</> (Bruce)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <command>UPDATE</> and <command>DELETE</> to use an
Track tables needing vacuum with more accuracy (Alvaro)
alias for the target table (Atsushi Ogawa)
</para>
</para>
<para>
<para>
This allows these statements to support self-joins more
This reduces the overhead involved in preventing transaction
conveniently. <command>UPDATE</> already supported as
ID wraparound.
<literal>FROM</> clause, but <command>DELETE</> did not.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>CASCADE</> option to <command>TRUNCATE</>
Allow units to be specified in configuration settings
(Joachim Wieland
)
(Peter
)
</para>
</para>
<para>
<para>
This allows <command>TRUNCATE</> also to automatically
You can now set <envar>shared_buffer</> to <literal>32000kB</>,
truncate all foreign-key referencing tables
.
for example
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Enable <envar>standard_conforming_strings</> to be turned
Improve logging of protocol-level prepare/bind/execute
<literal>on</> (Kevin Grittner
)
messages (Bruce, Tom
)
</para>
</para>
<para>
<para>
This allow special backslash escaping in strings to be
Such logging now shows statement names, bind parameter
turned off so <productname>PostgreSQL</> is more
values, and the text of the query being executed.
standards-compliant. The default is <literal>off</>, but
future releases will default this to <literal>on</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Set <envar>escape_string_warning</> to <literal>on</> by
Allow a forced switch to a new xlog file (Simon Riggs, Tom)
default (Bruce)
</para>
</para>
<para>
<para>
This issues a warning if backslash escapes are used in
This is valuable for keeping <acronym>PITR</> standby
non-escape (non-<literal>E''</>) strings.
servers in sync with the master. xlog file switching also
happens automatically during <function>pg_stop_backup()</>.
This ensures that <acronym>PITR</> servers have all xlog
files needed for recovery.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Support <literal>FOR UPDATE</> and <literal>FOR SHARE</>
Add <acronym>WAL</> informational functions (Simon Riggs)
in the same command (Tom)
</para>
<para>
Add functions for interrogating the current xlog insertion
point and determining <acronym>WAL</> filenames from the
hex <acronym>WAL</> locations displayed by
<function>pg_stop_backup()</> and friends.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Disallow aggregate functions in <command>UPDATE</> commands
Allow <acronym>WAL</> replay to be restored quicker in case
(unless within a subquery) (Tom
)
of a crash (Simon Riggs
)
</para>
</para>
<para>
<para>
The standard disallows this, and it leads to unpredictable
The server now does periodic checkpoints during <acronym>WAL</>
results.
recovery, so if there is a crash, future <acronym>WAL</>
recovery is shortened. This also eliminates the need for
<acronym>PITR</> standby servers to replay the entire log
since the base backup if they crash.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Change the row constructor syntax (<literal>ROW(...)</>)
Add <envar>archive_timeout</> to force xlog file switches
so that list elements <literal>foo.*</> will be expanded
at a given interval (Simon Riggs)
to a list of their member fields, rather than creating a
nested rowtype field as formerly (Tom)
</para>
</para>
<para>
<para>
The new behavior is substantially more useful since it
This enforces a maximum delay for <acronym>PITR</> standby
allows, for example, triggers to check for data changes
servers.
with <literal>IF row(new.*) IS DISTINCT FROM row(old.*)</>.
The old behavior is still available by omitting <literal>.*</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Change <literal>LIMIT</>/<literal>OFFSET</> to use
Add a <literal>waiting</> column to <literal>pg_stat_activity</>
<type>int8</> (Dhanaraj M
)
(Tom
)
</para>
</para>
<para>
<para>
This allows <literal>LIMIT</>/<literal>OFFSET</> over
This allows <literal>pg_stat_activity</> to show the same
two-billion
.
information as the <literal>ps</> display
.
</para>
</para>
</listitem>
</listitem>
</sect3>
<sect3>
<title>Query Changes</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Add support for multi-row <literal>VALUES</> clauses as
Support portal parameters in <command>EXPLAIN</> and
part of <command>INSERT</> and <command>SELECT</> statements
<command>EXECUTE</> (Tom)
(Joe, Tom)
</para>
</para>
<para>
<para>
This allows <command>INSERT</> to insert multiple rows of
This allows, for example, <literal>?</> parameters to work
constants, or queries to generate result sets using constants.
in these commands in <acronym>JDBC</>.
For example, <literal>INSERT ... VALUES (...), (...),
....</>, and <literal>SELECT * FROM (VALUES (...), (...),
....) AS alias(f1, ...)</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve the length output used by
Add <literal>IS NOT DISTINCT FROM</> (Pavel Stehule)
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>
(Tom)
</para>
</para>
<para>
<para>
When all columns are of the same defined length, that length
It is similar to equals (<literal>=</>), but is true when
is used for output, rather than a generic length.
both left and right arguments are <literal>NULL</>, and
false when just one is, rather than yielding <literal>NULL</>
in these cases.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
Allow additional row value comparisons (Tom)
<literal>RETURNING</> (Jonah Harris, Tom)
</para>
</para>
<para>
<para>
This allows these commands to return values, such as the
Add <, <=, >, >=.
computed serial key for a new row. In the <command>UPDATE</>
</para>
case, values from the new state of the row are returned.
</listitem>
<listitem>
<para>
Add system view <literal>pg_prepared_statements</> to show
prepared statements (Joachim Wieland)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <command>UPDATE</> to set multiple columns with a
Add system view <literal>pg_cursors</> to show open cursors
list of values (Susanne Ebrecht
)
(Joachim Wieland
)
</para>
</para>
<para>
<para>
This is basically as short-hand for assigning the columns
Both this and <literal>pg_prepared_statements</> are very
and values in pairs. The syntax is <literal>UPDATE tab
useful for pooled connection setups.
SET (col, ...) = (val, ...)</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <literal>ILIKE</> to work for multi-byte encodings
If <acronym>SQL</>-level <command>PREPARE</> parameters
(Tom)
are unknown, infer their types from the context of the
query (Neil)
</para>
</para>
<para>
<para>
Internally, <literal>ILIKE</> now calls <function>lower()</>
Protocol-level <command>PREPARE</> already did this. ?
and then uses <literal>LIKE</>. Locale-specific regular
expression operations still do not work in these encodings.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Protocol-level unnamed prepared statements are re-planned
Allow <command>UPDATE</> and <command>DELETE</> to use an
for each set of <literal>BIND</> values (Tom
)
alias for the target table (Atsushi Ogawa
)
</para>
</para>
<para>
<para>
This improves performance because the exact parameter values
This allows these statements to support self-joins more
can be used in the plan.
conveniently. <command>UPDATE</> already supported as
<literal>FROM</> clause, but <command>DELETE</> did not.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Do not flatten subqueries that contain <literal>VOLATIL
E</>
Add <literal>CASCADE</> option to <command>TRUNCAT
E</>
functions in their target lists (Jaime Casanova
)
(Joachim Wieland
)
</para>
</para>
<para>
<para>
This prevents surprising behavior due to multiple evaluation
This allows <command>TRUNCATE</> also to automatically
of a <literal>volatile</> function (such as <function>random()</>
truncate all foreign-key referencing tables.
or <function>nextval()</>). It may cause performance
degradation in the presence of functions that are unnecessarily
marked as <literal>volatile</>.
</para>
</para>
</sect3>
</listitem>
<sect3>
<title>Object Manipulation Changes</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Add <command>DROP</> object <literal>IF EXISTS</> for many
Enable <envar>standard_conforming_strings</> to be turned
object types (Andrew
)
<literal>on</> (Kevin Grittner
)
</para>
</para>
<para>
<para>
This allows <command>DROP</> operations on non-existent
This allow special backslash escaping in strings to be
objects without generating an error.
turned off so <productname>PostgreSQL</> is more
standards-compliant. The default is <literal>off</>, but
future releases will default this to <literal>on</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>DROP OWNED</> to drop all objects owned by a
Support <literal>FOR UPDATE</> and <literal>FOR SHARE</>
role (Alvaro
)
in the same command (Tom
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>REASSIGN OWNED</> to reassign ownership of
Change <literal>LIMIT</>/<literal>OFFSET</> to exceed
all objects owned by a role (Alvaro
)
two billion</> (Dhanaraj M
)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
This, and <literal>DROP OWNED</> above, facilitate dropping
Add support for multi-row <literal>VALUES</> clauses as
roles.
part of <command>INSERT</> and <command>SELECT</> statements
(Joe, Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Add <command>CREATE</>/<command>ALTER ROLE PASSWORD NULL</>,
This allows <command>INSERT</> to insert multiple rows of
which removes the role's password (Peter)
constants, or queries to generate result sets using constants.
For example, <literal>INSERT ... VALUES (...), (...),
....</>, and <literal>SELECT * FROM (VALUES (...), (...),
....) AS alias(f1, ...)</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Properly enforce <literal>DOMAIN</> check constraints
Improve the length output used by
everywhere (Neil, Tom)
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>
(Tom)
</para>
</para>
<para>
<para>
For example, the result of a user-defined function that is
When all columns are of the same defined length, that length
declared to return a domain type is now checked against
is used for output, rather than a generic length.
the constraints.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <command>GRANT ON SEQUENCE</> syntax (Bruce)
Add <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
<literal>RETURNING</> (Jonah Harris, Tom)
</para>
</para>
<para>
<para>
This was added for setting sequence-specific permissions.
This allows these commands to return values, such as the
<literal>GRANT ON [TABLE]</> for sequences is still supported
computed serial key for a new row. In the <command>UPDATE</>
for backward compatibility
.
case, values from the new state of the row are returned
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>USAGE</> permission for sequences that allows
Allow <command>UPDATE</> to set multiple columns with a
only <function>currval()</> and <function>nextval()</>,
list of values (Susanne Ebrecht)
not <function>setval()</> (Bruce)
</para>
</para>
<para>
<para>
<literal>USAGE</> permission allows more find-grained
This is basically as short-hand for assigning the columns
control over sequence access. It allows users to increment
and values in pairs. The syntax is <literal>UPDATE tab
a sequence, but prevents them from setting the sequence to
SET (col, ...) = (val, ...)</>.
an arbitrary value using <function>setval()</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow comments on global objects to be stored globally
Allow <literal>ILIKE</> to work for multi-byte encodings
(Kris Jurka
)
(Tom
)
</para>
</para>
<para>
<para>
Previously, global object comments were stored in individual
Internally, <literal>ILIKE</> now calls <function>lower()</>
databases, making them ineffective. This adds a new
and then uses <literal>LIKE</>. Locale-specific regular
<literal>pg_shdescription</> table
.
expression operations still do not work in these encodings
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>ON COMMIT</> clauses to <command>CREATE TABLE
Protocol-level unnamed prepared statements are re-planned
AS</> (Neil
)
for each set of <literal>BIND</> values (Tom
)
</para>
</para>
<para>
<para>
This allows temporary tables to be truncated or dropped on
This improves performance because the exact parameter values
transaction commit. The default behavior is for the table
can be used in the plan.
to remain until the session ends.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>TABLESPACE</> and <literal>ON COMMIT</> clauses
Do not flatten subqueries that contain <literal>VOLATILE</>
to <command>CREATE TABLE AS</> (Neil
)
functions in their target lists (Jaime Casanova
)
</para>
</para>
<para>
<para>
This allows the tablespace to be specified for the new
This prevents surprising behavior due to multiple evaluation
table.
of a <literal>volatile</> function (such as <function>random()</>
or <function>nextval()</>). It may cause performance
degradation in the presence of functions that are unnecessarily
marked as <literal>volatile</>.
</para>
</para>
</listitem>
</listitem>
</sect3>
<sect3>
<title>Object Manipulation Changes</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Allow placeholder (shell) types to be created (Martijn van
Add <command>DROP</> object <literal>IF EXISTS</> for many
Oosterhout
)
object types (Andrew
)
</para>
</para>
<para>
<para>
Shell types create a type reference, without specifying
This allows <command>DROP</> operations on non-existent
any of the aspects of the type. It is useful for creating
objects without generating an error.
types with input/output functions that reference the data
type. The syntax is <command>CREATE TYPE typname</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add new aggregate creation syntax (Tom)
Add <literal>DROP OWNED</> to drop all objects owned by a
role (Alvaro)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
The new syntax is <command>CREATE AGGREGATE</> aggname
Add <literal>REASSIGN OWNED</> to reassign ownership of
(input_type) (parameter_list). This more naturally supports
all objects owned by a role (Alvaro)
the new multi-parameter aggregate functionality. The
</para>
previous syntax is still supported.
<para>
This, and <literal>DROP OWNED</> above, facilitate dropping
roles.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Aggregate functions now support multiple input parameters
Add <command>CREATE</>/<command>ALTER ROLE PASSWORD NULL</>,
(Sergey Koposov, Tom
)
which removes the role's password (Peter
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Have <command>SET CONSTRAINT</> affect only one constraint
Properly enforce <literal>DOMAIN</> check constraints
(Kris Jurka
)
everywhere (Neil, Tom
)
</para>
</para>
<para>
<para>
In previous releases, <command>SET CONSTRAINT</> modified
For example, the result of a user-defined function that is
all constraints with a matching name. In this release,
declared to return a domain type is now checked against
the schema search path is used to modify only the first
the constraints.
matching constraint. A schema specification is also
supported.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>INCLUDING CONSTRAINTS</> to <command>CREATE
Add <command>GRANT ON SEQUENCE</> syntax (Bruce)
TABLE LIKE</> (Greg Stark)
</para>
</para>
<para>
<para>
This allows the new table to receive matching constraints.
This was added for setting sequence-specific permissions.
<literal>GRANT ON [TABLE]</> for sequences is still supported
for backward compatibility.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>ALTER TABLE ... [NO] INHERIT</> (Greg Stark)
Add <literal>USAGE</> permission for sequences that allows
only <function>currval()</> and <function>nextval()</>,
not <function>setval()</> (Bruce)
</para>
</para>
<para>
<para>
This allow inheritance to be added and removed dynamically,
<literal>USAGE</> permission allows more find-grained
rather than just at table creation and destruction. This
control over sequence access. It allows users to increment
is very valuable for table partitioning using constraint
a sequence, but prevents them from setting the sequence to
exclusion
.
an arbitrary value using <function>setval()</>
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove rule permission for tables, for security reasons
Allow comments on global objects to be stored globally
(Tom
)
(Kris Jurka
)
</para>
</para>
<para>
<para>
In this release, only a table's owner can create or modify
Previously, global object comments were stored in individual
rules for the table. For backwards compatibility,
databases, making them ineffective. This adds a new
<command>GRANT</>/<command>REVOKE RULE</> is still accepted,
<literal>pg_shdescription</> table.
but it does nothing.
</para>
</para>
</sect3>
</listitem>
<sect3>
<title>Utility Command Changes</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Reduce progress messages displayed by initdb (Tom)
Add <literal>ON COMMIT</> clauses to <command>CREATE TABLE
AS</> (Neil)
</para>
<para>
This allows temporary tables to be truncated or dropped on
transaction commit. The default behavior is for the table
to remain until the session ends.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Have initdb detect the operating system locale and set the
Add <literal>TABLESPACE</> and <literal>ON COMMIT</> clauses
default <envar>DateStyle</> accordingly (Peter
)
to <command>CREATE TABLE AS</> (Neil
)
</para>
</para>
<para>
<para>
This make it more likely that the installed
This allows the tablespace to be specified for the new
<filename>postgresql.conf</> <envar>DateStyle</> value will
table.
be correct.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Have the <command>COPY</> command return a command tag that
Allow placeholder (shell) types to be created (Martijn van
includes the number of rows copied (Volkan Yazıcı)
Oosterhout)
</para>
<para>
Shell types create a type reference, without specifying
any of the aspects of the type. It is useful for creating
types with input/output functions that reference the data
type. The syntax is <command>CREATE TYPE typname</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <command>VACUUM</> to expire rows without being
Add new aggregate creation syntax (Tom)
affected by other concurrent <command>VACUUM</>s (Hannu
</para>
Krossing, Alvaro, Tom)
<para>
The new syntax is <command>CREATE AGGREGATE</> aggname
(input_type) (parameter_list). This more naturally supports
the new multi-parameter aggregate functionality. The
previous syntax is still supported.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Avoid extra scan of tables during <command>VACUUM</> of
Aggregate functions now support multiple input parameters
index-less table (Greg Stark
)
(Sergey Koposov, Tom
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add option to allow indexes to be created without blocking
Add <literal>INCLUDING CONSTRAINTS</> to <command>CREATE
concurrent writes to the table
(Greg Stark)
TABLE LIKE</>
(Greg Stark)
</para>
</para>
<para>
<para>
The new syntax is <command>CREATE INDEX CONCURRENTLY</>.
This allows the new table to receive matching constraints.
The default behavior is still to block table modification
while a index is being created.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <command>COPY</> to dump a <command>SELECT</> query
Add <literal>ALTER TABLE ... [NO] INHERIT</> (Greg Stark)
(Zoltan Boszormenyi, Karel Zak)
</para>
</para>
<para>
<para>
This allows <command>COPY</> to dump arbitrary <acronym>SQL</>
This allow inheritance to be added and removed dynamically,
queries. The syntax is <literal>COPY (SELECT ...) TO</>.
rather than just at table creation and destruction. This
is very valuable for table partitioning using constraint
exclusion.
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
<title>
Data Type and Function
Changes</title>
<title>
Utility Command
Changes</title>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Allow arrays to contain <literal>NULL</> elements
(Tom)
Reduce progress messages displayed by initdb
(Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Change array concatenation to match documented behavior
Have initdb detect the operating system locale and set the
(Tom
)
default <envar>DateStyle</> accordingly (Peter
)
</para>
</para>
<para>
<para>
This changes the previous behavior where concatenation
This make it more likely that the installed
would adjust the lower array dimensions.
<filename>postgresql.conf</> <envar>DateStyle</> value will
be correct.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Array comparison improvements (Tom)
Have the <command>COPY</> command return a command tag that
</para>
includes the number of rows copied (Volkan Yazıcı)
<para>
Now array dimensions are also compared.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <function>to_char(time)</> and <function>to_char(interval)</>
Allow <command>VACUUM</> to expire rows without being
to output <acronym>AM</>/<acronym>PM</> specifications
affected by other concurrent <command>VACUUM</>s (Hannu
(Bruce
)
Krossing, Alvaro, Tom
)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Intervals and times are treated as 24-hour periods, e.g.
Avoid extra scan of tables without indexes during <command>VACUUM</>
<literal>25 hours</> is <acronym>AM</>.
(Greg Stark)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Have <function>to_char(time)</> and <function>to_char(interval)</>
Add option to allow indexes to be created without blocking
treat <literal>'HH'</> and <literal>'HH12'</> as 12-hour
concurrent writes to the table (Greg Stark)
intervals.
</para>
<para>
<para>
Most applications should use <literal>'HH24'</> unless they
The new syntax is <command>CREATE INDEX CONCURRENTLY</>.
want a 12-hour display.
The default behavior is still to block table modification
while a index is being created.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add a server-side sleep function <function>pg_sleep()</>
Allow <command>COPY</> to dump a <command>SELECT</> query
(Joachim Wieland)
(Zoltan Boszormenyi, Karel Zak)
</para>
<para>
This allows <command>COPY</> to dump arbitrary <acronym>SQL</>
queries. The syntax is <literal>COPY (SELECT ...) TO</>.
</para>
</para>
</listitem>
</listitem>
</sect3>
<sect3>
<title>Data Type and Function Changes</title>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
Zero unmasked bits in conversion from <type>INET</> to
Allow arrays to contain <literal>NULL</> elements (Tom)
<type>CIDR</> (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add convenient arithmetic operations on <type>INET</>/<type>CIDR</>
Allow <function>to_char(time)</> and <function>to_char(interval)</>
values (Stephen R. van den Berg)
to output <acronym>AM</>/<acronym>PM</> specifications
(Bruce)
</para>
</para>
<para>
<para>
The new operators are <literal>&</> (and), <literal>|</>
Intervals and times are treated as 24-hour periods, e.g.
(or), <literal>~</> (not), <literal>+</> <type>int8</>,
<literal>25 hours</> is <acronym>AM</>.
<literal>-</> <type>int8</>, and <type>inet</> <literal>-</>
<type>inet</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <function>to_char()</> to print localized month and
Add a server-side sleep function <function>pg_sleep()</>
day names (Euler Taveira de Oliveira
)
(Joachim Wieland
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add all comparison operators for the <type>tid</> data type
Add convenient arithmetic operations on <type>INET</>/<type>CIDR</>
(Mark Kirkwood, Greg Stark, Tom)
values (Stephen R. van den Berg)
</para>
<para>
The new operators are <literal>&</> (and), <literal>|</>
(or), <literal>~</> (not), <literal>+</> <type>int8</>,
<literal>-</> <type>int8</>, and <type>inet</> <literal>-</>
<type>inet</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add new function <function>justify_interval()</> to adjust
Allow <function>to_char()</> to print localized month and
interval units (Mark Dilger
)
day names (Euler Taveira de Oliveira
)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add new aggregate functions from SQL2003 (Neil)
Add all comparison operators for the <type>tid</> data type
(Mark Kirkwood, Greg Stark, Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
The new functions are <function>var_pop()</>,
Add new function <function>justify_interval()</> to adjust
<function>var_samp()</>, <function>stddev_pop()</>, and
interval units (Mark Dilger)
<function>stddev_samp()</>. <function>var_samp()</> and
<function>stddev_samp()</> are merely renamings of the
existing aggregates <function>variance()</> and
<function>stddev()</>. The latter names have been kept
for backward compatibility.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
New operators for array-subset comparisons (<literal>@></>,
Add new aggregate functions from SQL2003 (Neil)
<literal><@</>, <literal>&&</>) (Teodor, Tom)
</para>
</para>
<para>
<para>
The old operators were kept for backward compatibility.
The new functions are <function>var_pop()</>,
<function>var_samp()</>, <function>stddev_pop()</>, and
<function>stddev_samp()</>. <function>var_samp()</> and
<function>stddev_samp()</> are merely renamings of the
existing aggregates <function>variance()</> and
<function>stddev()</>. The latter names have been kept
for backward compatibility.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow domains to be created using other domains (Tom)
New operators for array-subset comparisons (<literal>@></>,
<literal><@</>, <literal>&&</>) (Teodor, Tom)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Add <function>clock_timestamp()</>,
The old operators were kept for backward compatibility.
<function>statement_timestamp()</>, and
<function>transaction_timestamp()</> (Bruce)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
<function>clock_timestamp()</> is the true current time,
Allow domains to be created using other domains (Tom)
and <function>statement_timestamp()</> is the time the
current command arrived at the server.
<function>transaction_timestamp()</> is the same as
<function>now()</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow full timezone names in <type>timestamp</> values
Add <function>clock_timestamp()</>,
(Joachim Wieland)
<function>statement_timestamp()</>, and
<function>transaction_timestamp()</> (Bruce)
</para>
</para>
<para>
<para>
For example, <literal>'2006-05-24 21:11
<function>clock_timestamp()</> is the true current time,
America/New_York'::timestamptz</>.
and <function>statement_timestamp()</> is the time the
current command arrived at the server.
<function>transaction_timestamp()</> is the same as
<function>now()</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Create a configuration file of timezone abbreviation
s
Allow full timezone names in <type>timestamp</> value
s
(Joachim Wieland)
(Joachim Wieland)
</para>
</para>
<para>
<para>
The file name is controlled by GUC variable
For example, <literal>'2006-05-24 21:11
<envar>timezone_abbreviations
</>.
America/New_York'::timestamptz
</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove <envar>australian_timezones</> configuration variable
Create a configuration file of timezone abbreviations
(Joachim Wieland)
(Joachim Wieland)
</para>
</para>
<para>
<para>
No longer needed now that timezone abbreviations ar
e
The file name is controlled by GUC variabl
e
configurable
.
<envar>timezone_abbreviations</>
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <envar>pg_timezone_abbrevs</> and <envar>pg_timezone_names</>
Add <envar>pg_timezone_abbrevs</> and <envar>pg_timezone_names</>
views to show supported timezones (Magnus Hagander)
views to show supported timezones (Magnus Hagander)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add SQL2003-standard statistical aggregates (Sergey Koposov)
Add SQL2003-standard statistical aggregates (Sergey Koposov)
</para>
</para>
<para>
<para>
New functions: <function>regr_intercept()</>,
New functions: <function>regr_intercept()</>,
<function>regr_slope()</>, <function>regr_r2()</>,
<function>regr_slope()</>, <function>regr_r2()</>,
<function>corr()</>, <function>covar_samp()</>,
<function>corr()</>, <function>covar_samp()</>,
<function>covar_pop()</>, <function>regr_avgx()</>,
<function>covar_pop()</>, <function>regr_avgx()</>,
<function>regr_avgy()</>, <function>regr_sxy()</>,
<function>regr_avgy()</>, <function>regr_sxy()</>,
<function>regr_sxx()</>, <function>regr_syy()</>,
<function>regr_sxx()</>, <function>regr_syy()</>,
<function>regr_count()</>
<function>regr_count()</>
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Fix problems with dumping renamed <type>SERIAL</> columns
Fix problems with dumping renamed <type>SERIAL</> columns
(Tom)
(Tom)
</para>
</para>
<para>
<para>
The fix is to dump a <type>SERIAL</> column by explicitly
The fix is to dump a <type>SERIAL</> column by explicitly
specifying its <literal>DEFAULT</> and sequence elements,
specifying its <literal>DEFAULT</> and sequence elements,
and reconstructing the <type>SERIAL</> column on reload
and reconstructing the <type>SERIAL</> column on reload
using a new <command>ALTER SEQUENCE OWNED BY</> command.
using a new <command>ALTER SEQUENCE OWNED BY</> command.
This also allows dropping a <type>SERIAL</> column
This also allows dropping a <type>SERIAL</> column
specification.
specification.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Interval computation improvements (Michael Glaesemann,
Interval computation improvements (Michael Glaesemann,
Bruce)
Bruce)
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1266,36 +1345,38 @@ For new features, add links to the documentation sections.
...
@@ -1266,36 +1345,38 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Allow <literal>FOR</> statements to return values to scalars
Allow <literal>FOR</> statements to return values to scalars
as well as records and row types (Pavel Stehule)
as well as records and row types (Pavel Stehule)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add a <literal>BY</> clause to the <literal>FOR</> loop,
Add a <literal>BY</> clause to the <literal>FOR</> loop,
to control the iteration increment (Jaime Casanova)
to control the iteration increment (Jaime Casanova)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>table_name</> and <literal>table_schema</> as
Add <literal>table_name</> and <literal>table_schema</> as
trigger data (Andrew)
trigger data (Andrew)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>STRICT</> to <command>SELECT INTO</> (Matt
Add <literal>STRICT</> to <command>SELECT INTO</> (Matt
Miller)
Miller)
</para>
</para>
<para>
<para>
<literal>STRICT</> mode throws an exception if more or less
<literal>STRICT</> mode throws an exception if more or less
than one row is returned by the <command>SELECT</>, for
than one row is returned by the <command>SELECT</>, for
<productname>Oracle PL/SQL</> compatibility.
<productname>Oracle PL/SQL</> compatibility.
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1304,36 +1385,38 @@ For new features, add links to the documentation sections.
...
@@ -1304,36 +1385,38 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Honor <envar>check_function_bodies</> (Tom)
Honor <envar>check_function_bodies</> (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add prepared queries (Dmitry Karasik)
Add prepared queries (Dmitry Karasik)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>table_name</> and <literal>table_schema</> as
Add <literal>table_name</> and <literal>table_schema</> as
trigger data (Adam Sjøgren)
trigger data (Adam Sjøgren)
</para>
</para>
<para>
<para>
<literal>relname</> is kept but now deprecated
<literal>relname</> is kept but now deprecated
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Make <literal>$_TD</> trigger data a global variable (Andrew)
Make <literal>$_TD</> trigger data a global variable (Andrew)
</para>
</para>
<para>
<para>
Previously, it was lexical, which caused unexpected sharing
Previously, it was lexical, which caused unexpected sharing
violations.
violations.
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1342,42 +1425,44 @@ For new features, add links to the documentation sections.
...
@@ -1342,42 +1425,44 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Allow functions to return <literal>void</> (Neil)
Allow functions to return <literal>void</> (Neil)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add named parameters to the <literal>args[]</> array (Sven
Add named parameters to the <literal>args[]</> array (Sven
Suursoho)
Suursoho)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Return composite-types as dictionary (Sven Suursoho)
Return composite-types as dictionary (Sven Suursoho)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Return result-set as <literal>list</>, <literal>iterator</>,
Return result-set as <literal>list</>, <literal>iterator</>,
or <literal>generator </>(Sven Suursoho)
or <literal>generator </>(Sven Suursoho)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow returning of <literal>composite types</> and
Allow returning of <literal>composite types</> and
<literal>result sets</> (Sven Suursoho)
<literal>result sets</> (Sven Suursoho)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>table_name</> and <literal>table_schema</> as
Add <literal>table_name</> and <literal>table_schema</> as
trigger data (Andrew)
trigger data (Andrew)
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1386,98 +1471,100 @@ For new features, add links to the documentation sections.
...
@@ -1386,98 +1471,100 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Add new command <literal>\password</> for changing role
Add new command <literal>\password</> for changing role
password with client-side password encryption (Peter)
password with client-side password encryption (Peter)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow multi-line values to align in the proper column
Allow multi-line values to align in the proper column
(Martijn van Oosterhout)
(Martijn van Oosterhout)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Save multi-line statements as a single entry, rather than
Save multi-line statements as a single entry, rather than
one line at a time (Sergey E. Koposov)
one line at a time (Sergey E. Koposov)
</para>
</para>
<para>
<para>
This makes up-arrow recall of queries easier.
This makes up-arrow recall of queries easier.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <literal>\c</> to connect to a new host and port
Allow <literal>\c</> to connect to a new host and port
number (David, Volkan Yazıcı)
number (David, Volkan Yazıcı)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add option to run the entire session in a single transaction
Add option to run the entire session in a single transaction
(Simon)
(Simon)
</para>
</para>
<para>
<para>
Use options <literal>-1</> or <literal>--single-transaction</>.
Use options <literal>-1</> or <literal>--single-transaction</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve highlighting of error location in query in more
Improve highlighting of error location in query in more
cases (Tom)
cases (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add tablespace display to <literal>\l+</> (Philip Yarra)
Add tablespace display to <literal>\l+</> (Philip Yarra)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Support binary <command>COPY</> (Andreas Pflug)
Support binary <command>COPY</> (Andreas Pflug)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Improve <literal>\df</> slash command to include the argument
Improve <literal>\df</> slash command to include the argument
names and modes (<literal>OUT</> or <literal>INOUT</>) of
names and modes (<literal>OUT</> or <literal>INOUT</>) of
the function (David Fetter)
the function (David Fetter)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Make the line counter 64-bit so it can handle files over
Make the line counter 64-bit so it can handle files over
two billion lines (David Fetter)
two billion lines (David Fetter)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Report both the returned data and the command status tag
Report both the returned data and the command status tag
for <command>INSERT</>/<command>UPDATE</>/<command>DELETE
for <command>INSERT</>/<command>UPDATE</>/<command>DELETE
RETURNING</> (Tom)
RETURNING</> (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Support retrieving <command>SELECT</> results in batches
Support retrieving <command>SELECT</> results in batches
using a cursor (Chris Mair)
using a cursor (Chris Mair)
</para>
</para>
<para>
<para>
This is accomplished using <command>\set FETCH_COUNT</>.
This is accomplished using <command>\set FETCH_COUNT</>.
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1486,37 +1573,39 @@ For new features, add links to the documentation sections.
...
@@ -1486,37 +1573,39 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Allow complex selection of objects to be included or excluded
Allow complex selection of objects to be included or excluded
by <application>pg_dump</> (Greg Sabino Mullane)
by <application>pg_dump</> (Greg Sabino Mullane)
</para>
</para>
<para>
<para>
<application>pg_dump</> now supports multiple <literal>-n</>
<application>pg_dump</> now supports multiple <literal>-n</>
(schema) and <literal>-t</> (table) options, and adds
(schema) and <literal>-t</> (table) options, and adds
<literal>-T</> and <literal>-N</> options to exclude objects.
<literal>-T</> and <literal>-N</> options to exclude objects.
Also adds support for regular expressions for object names
Also adds support for regular expressions for object names
in these switches.
in these switches.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <application>pg_dump</> <literal>-X
Add <application>pg_dump</> <literal>-X
no-data-for-failed-tables</> option to suppress loading
no-data-for-failed-tables</> option to suppress loading
data if table creation failed (the table already exists)
data if table creation failed (the table already exists)
(Martin Pitt)
(Martin Pitt)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <application>pg_restore</> option to run the entire
Add <application>pg_restore</> option to run the entire
session in a single transaction (Simon)
session in a single transaction (Simon)
</para>
</para>
<para>
<para>
Use options <literal>-1</> or <literal>--single-transaction</>.
Use options <literal>-1</> or <literal>--single-transaction</>.
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1525,68 +1614,51 @@ For new features, add links to the documentation sections.
...
@@ -1525,68 +1614,51 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Add <function>PQencryptPassword()</> to encrypt passwords
Add <function>PQencryptPassword()</> to encrypt passwords
(Tom)
(Tom)
</para>
</para>
<para>
<para>
This allows passwords to be sent encrypted for commands
This allows passwords to be sent encrypted for commands
like <command>ALTER USER ... PASSWORD</>.
like <command>ALTER USER ... PASSWORD</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Change <function>PQdsplen()</> to return a useful value
Allow the <filename>.pgpass</> hostname to match the default
(Martijn van Oosterhout)
socket directory, as well as a blank <literal>pghost</>
(Bruce)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Change <function>PQgetssl()</> to return a <literal>void*</>,
Add function <function>PQisthreadsafe()</> (Bruce)
rather than <literal>SSL*</> (Martijn van Oosterhout)
</para>
</para>
<para>
<para>
This allows applications to use the function without
This allows applications to query the thread-safety status
<acronym>SSL</> headers
.
of the library
.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow the <filename>.pgpass</> hostname to match the default
Allow <acronym>LDAP</> lookups from <filename>pg_service.conf</>
socket directory, as well as a blank <literal>pghost</>
(Albe Laurenz)
(Bruce)
</para>
</listitem>
<listitem>
<para>
Add function <function>PQisthreadsafe()</> (Bruce)
</para>
<para>
This allows applications to query the thread-safety status
of the library.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <acronym>LDAP</> lookups from <filename>pg_service.conf</>
Add <function>PQdescribePrepared()</>,
(Albe Laurenz)
<function>PQdescribePortal()</>, and related functions
return information about previously prepared statements
and open cursors (Volkan Yazıcı)
</para>
</para>
</listitem>
</listitem>
<listitem>
<para>
Add <function>PQdescribePrepared()</>,
<function>PQdescribePortal()</>, and related functions
return information about previously prepared statements
and open cursors (Volkan Yazıcı)
</para>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1595,27 +1667,29 @@ For new features, add links to the documentation sections.
...
@@ -1595,27 +1667,29 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Allow <command>SHOW</> to put its result into a variable
Allow <command>SHOW</> to put its result into a variable
(Joachim Wieland)
(Joachim Wieland)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <command>COPY TO STDOUT</> (Joachim Wieland)
Add <command>COPY TO STDOUT</> (Joachim Wieland)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add regression tests (Joachim Wieland, Michael)
Add regression tests (Joachim Wieland, Michael)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Major source code cleanups (Joachim Wieland, Michael)
Major source code cleanups (Joachim Wieland, Michael)
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1624,52 +1698,54 @@ For new features, add links to the documentation sections.
...
@@ -1624,52 +1698,54 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Improve handling of intermittent file system and resource
Improve handling of intermittent file system and resource
failures (Qingqing Zhou)
failures (Qingqing Zhou)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Stability fixes (Magnus)
Stability fixes (Magnus)
</para>
</para>
<para>
<para>
Particularly, prevent the postmaster from stopping if too
Particularly, prevent the postmaster from stopping if too
many connection requests arrive too rapidly.
many connection requests arrive too rapidly.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add support for Windows code pages <literal>1253</>,
Add support for Windows code pages <literal>1253</>,
<literal>1254</>, <literal>1255</>, and <literal>1257</>
<literal>1254</>, <literal>1255</>, and <literal>1257</>
(Kris Jurka)
(Kris Jurka)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</>
Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</>
server (Magnus, Hiroshi Saito)
server (Magnus, Hiroshi Saito)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <acronym>MSVC</> support for utility commands and
Add <acronym>MSVC</> support for utility commands and
<application>pg_dump </>(Hiroshi Saito)
<application>pg_dump </>(Hiroshi Saito)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add native semaphore implementation (Qingqing Zhou)
Add native semaphore implementation (Qingqing Zhou)
</para>
</para>
<para>
<para>
Previous implementations mimicked SysV semaphores.
Previous implementations mimicked SysV semaphores.
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1678,215 +1754,183 @@ For new features, add links to the documentation sections.
...
@@ -1678,215 +1754,183 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Remove R-tree indexing (Tom)
Remove R-tree indexing (Tom)
</para>
</para>
<para>
<para>
Rtree has been re-implemented using <acronym>GIST</>.
Rtree has been re-implemented using <acronym>GIST</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Reduce libraries linked into the backend needlessly (Martijn
Reduce libraries linked into the backend needlessly (Martijn
van Oosterhout, Tom)
van Oosterhout, Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
New macro <literal>PG_VERSION_NUM</> for use by third-party
New macro <literal>PG_VERSION_NUM</> for use by third-party
applications wanting to test the backend version in C using
applications wanting to test the backend version in C using
> and < comparisons (Bruce)
> and < comparisons (Bruce)
</para>
</listitem>
<listitem>
<para>
Improve multicolumn <acronym>GIST</> indexing (Oleg, Teodor)
</para>
</listitem>
<listitem>
<para>
<acronym>GIST</> indexes now are clusterable (Teodor)
</para>
</listitem>
<listitem>
<para>
Add a configure flag to allow libedit to be preferred over
<acronym>GNU</> readline (Bruce)
</para>
<para>
Use configure <literal>--with-libedit-preferred</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow installation into directories containing spaces
Add a configure flag to allow libedit to be preferred over
(Peter
)
<acronym>GNU</> readline (Bruce
)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Improve ability to relocate installs in more complex
Use configure <literal>--with-libedit-preferred</>.
configurations (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add support for <productname>Solaris x86_64</> using the
Allow installation into directories containing spaces
<productname>Solaris</> compiler (Pierre Girard, Theo
(Peter)
Schlossnagle, Bruce)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce)
Improve ability to relocate installs in more complex
</para>
configurations (Tom)
<para>
These ports no longer had active maintainers.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Make command-line options of postmaster and postgres
Add support for <productname>Solaris x86_64</> using the
identical (Peter)
<productname>Solaris</> compiler (Pierre Girard, Theo
</para>
Schlossnagle, Bruce)
<para>
This allows the postmaster to pass arguments to each backend
without using <literal>-o</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>XLOG_BLCKSZ</> as independent from <literal>BLCKSZ</>
Add <literal>XLOG_BLCKSZ</> as independent from <literal>BLCKSZ</>
(Mark Wong)
(Mark Wong)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>LWLOCK_STATS</> define to report locking
Add <literal>LWLOCK_STATS</> define to report locking
activity (Tom)
activity (Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <acronym>GIN</> (Generalized Inverted iNdex) index
Add <acronym>GIN</> (Generalized Inverted iNdex) index
access method (Teodor)
access method (Teodor)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Emit warnings for unknown <application>configure</> options
Emit warnings for unknown <application>configure</> options
(Martijn van Oosterhout)
(Martijn van Oosterhout)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <literal>PG_MODULE_MAGIC</> header block to all shared
Add <literal>PG_MODULE_MAGIC</> header block to all shared
object files (Martijn van Oosterhout)
object files (Martijn van Oosterhout)
</para>
</para>
<para>
<para>
The magic blocks prevent version mismatches between object
The magic blocks prevent version mismatches between object
files and servers.
files and servers.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add a <acronym>GUC</> parameter <envar>seq_page_cost</>
Add a <acronym>GUC</> parameter <envar>seq_page_cost</>
(Tom)
(Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Re-implement the regression test script as a C program
Re-implement the regression test script as a C program
(Magnus, Tom)
(Magnus, Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <application>DTrace</> support (Robert Lor)
Add <application>DTrace</> support (Robert Lor)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Allow loadable modules to allocate shared memory and
Allow loadable modules to allocate shared memory and
lightweight locks (Marc Munro)
lightweight locks (Marc Munro)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add automatic initialization and finalization of dynamically
Add automatic initialization and finalization of dynamically
loaded libraries (Ralf Engelschall, Tom)
loaded libraries (Ralf Engelschall, Tom)
</para>
</para>
<para>
<para>
New functions <function>_PG_init()</> and <function>_PG_fini()</>
New functions <function>_PG_init()</> and <function>_PG_fini()</>
are called if the library defines such symbols. Hence we
are called if the library defines such symbols. Hence we
no longer need to specify an initialization function in
no longer need to specify an initialization function in
<envar>shared_preload_libraries</>; we can assume that the
<envar>shared_preload_libraries</>; we can assume that the
library used the <function>_PG_init()</> convention instead.
library used the <function>_PG_init()</> convention instead.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add support for libraries that enhance server-side languages
Add support for libraries that enhance server-side languages
(Korry Douglas)
(Korry Douglas)
</para>
</para>
<para>
<para>
Such libraries can be used for debugging or performance
Such libraries can be used for debugging or performance
measurement.
measurement.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Rename existing <acronym>GUC</> variable
Rename existing <acronym>GUC</> variable
<envar>preload_libraries</> to <envar>shared_preload_libraries</>
<envar>preload_libraries</> to <envar>shared_preload_libraries</>
(Tom)
(Tom)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add new variable <envar>server_version_num</> (Greg Sabino
Add new variable <envar>server_version_num</> (Greg Sabino
Mullane)
Mullane)
</para>
</para>
<para>
<para>
This is like server_version, but is an integer, e.g.
This is like server_version, but is an integer, e.g.
<literal>80200</>. It allows easy applications version
<literal>80200</>. It allows easy applications version
checks.
checks.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
New <acronym>XML</> documentation section (Bruce)
New <acronym>XML</> documentation section (Bruce)
</para>
</para>
</listitem>
</sect3>
</sect3>
<sect3>
<sect3>
...
@@ -1895,40 +1939,40 @@ For new features, add links to the documentation sections.
...
@@ -1895,40 +1939,40 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Major tsearch2 improvements (Oleg, Teodor)
Major tsearch2 improvements (Oleg, Teodor)
</para>
</para>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
<para>
<para>
multibyte encoding support, including <acronym>UTF8</>
multibyte encoding support, including <acronym>UTF8</>
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
query rewriting support
query rewriting support
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
improved ranking functions
improved ranking functions
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
thesaurus dictionary support
thesaurus dictionary support
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Ispell dictionaries now recognize <application>MySpell</>
Ispell dictionaries now recognize <application>MySpell</>
format, used by <application>OpenOffice</>.
format, used by <application>OpenOffice</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
<acronym>GIN</> support
<acronym>GIN</> support
</para>
</para>
</listitem>
</listitem>
...
@@ -1938,138 +1982,105 @@ For new features, add links to the documentation sections.
...
@@ -1938,138 +1982,105 @@ For new features, add links to the documentation sections.
<listitem>
<listitem>
<para>
<para>
Add pg_freespacemap to display free space map information
Add pg_freespacemap to display free space map information
(Mark Kirkwood)
(Mark Kirkwood)
</para>
</listitem>
<listitem>
<para>
New uninstall scripts (David)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add pgrowlocks (Tatsuo)
New uninstall scripts (David)
</para>
<para>
This shows row locking information for a specified table.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add <application>Pgadmin</> administration functions to
Add pgrowlocks (Tatsuo)
adminpack (Dave)
</para>
</para>
<para>
<para>
These functions provide additional file system access
This shows row locking information for a specified table.
routines not present in the default <productname>PostgreSQL</>
server.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add index information to pgstattuple (ITAGAKI Takahiro,
Add <application>Pgadmin</> administration functions to
Satoshi Nagayasu
)
adminpack (Dave
)
</para>
</para>
</listitem>
<listitem>
<para>
<para>
pgcrypto now has all planned functionality (Marko Kreen)
These functions provide additional file system access
routines not present in the default <productname>PostgreSQL</>
server.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Update cube (Joshua Reich)
Add index information to pgstattuple (ITAGAKI Takahiro,
</para>
Satoshi Nagayasu)
<para>
New functions are <function>cube(float[])</>,
<function>cube(float[], float[])</>, and
<function>cube_subset(cube, int4[])</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Added async query capability to dblink (Kai Londenberg,
pgcrypto now has all planned functionality (Marko Kreen)
Joe Conway)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add sslinfo (Victor Wagner
)
Update cube (Joshua Reich
)
</para>
</para>
<para>
<para>
Reports information about the current <acronym>SSL</>
New functions are <function>cube(float[])</>,
certificate.
<function>cube(float[], float[])</>, and
<function>cube_subset(cube, int4[])</>.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove ora2pg, now at <ulink
Added async query capability to dblink (Kai Londenberg,
url="http://www.samse.fr/GPL/ora2pg"></ulink>
Joe Conway)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Remove contrib modules that have been migrated to pgfoundry:
Add sslinfo (Victor Wagner)
adddepend, dbase, dbmirror, fulltextindex, mac, userlock
</para>
</para>
</listitem>
<listitem>
<para>
<para>
Remove abandoned modules: mSQL-interface, ips
Reports information about the current <acronym>SSL</>
certificate.
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add hstore module (Oleg, Teodor)
Add hstore module (Oleg, Teodor)
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
Add isn module, replacing isbn_issn (Jeremy Kronuz)
Add isn module, replacing isbn_issn (Jeremy Kronuz)
</para>
</para>
<para>
<para>
This now supports <acronym>EAN13</>, <acronym>UPC</>,
This now supports <acronym>EAN13</>, <acronym>UPC</>,
<acronym>ISBN</> (books), <acronym>ISMN</> (music), and
<acronym>ISBN</> (books), <acronym>ISMN</> (music), and
<acronym>ISSN</> (serials).
<acronym>ISSN</> (serials).
</para>
</para>
</listitem>
</listitem>
<listitem>
<listitem>
<para>
<para>
New operators for array-subset comparisons (<literal>@></>,
New operators for array-subset comparisons (<literal>@></>,
<literal><@</>, <literal>&&</>) (Tom)
<literal><@</>, <literal>&&</>) (Tom)
</para>
</listitem>
<listitem>
<para>
In xml, rename <function>xml_valid()</> to
<function>xml_is_well_formed()</> (Tom)
</para>
<para>
<function>xml_valid()</> will remain for backward compability,
but its behavior will change to do schema checks in future
releases.
</para>
</para>
</listitem>
</listitem>
...
...
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