<!--
-$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.338 2005/08/23 02:57:07 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.339 2005/08/23 11:32:33 momjian Exp $
-->
<appendix id="release">
</sect2>
<sect2>
- <title>Migration to version 8.0</title>
+ <title>Migration to version 8.1</title>
<para>
A dump/restore using <application>pg_dump</application> is
<itemizedlist>
+ <listitem>
+ <para>
+ Change add_missing_from to 'false'
+ </para>
+ <para>
+ Generate an error if a table used in a query without a FROM reference (Neil)
+ No more SELECT pg_class.*;
+ </para>
+ </listitem>
+
<listitem>
<para>
Cause input of a zero-length string ('') for float4/float8/oid to throw
</para>
</listitem>
+ <listitem>
+ <para>
+ Make default_with_oids default to false (Neil)
+ </para>
+ <para>
+ With this option set to false, user-created tables no
+ have an the usually-invisible OID column unless WITH OIDS
+ is specified in CREATE TABLE. Though OIDs have existed in all previous
+ releases of PostgreSQL, their use is limited because they are only four
+ bytes long and the counter is unique across all installed databases.
+ The preferred way of uniquely identifying rows is via sequences and
+ SERIAL, which has been supported since PostgreSQL 6.4.
+ </para>
+ </listitem>
+
<listitem>
<para>
In psql, treat unquoted \{digit}+ sequences as octal (Bruce)
</para>
<para>
In previous releases, the only way to use index for MIN/MAX was to rewrite
- the query as SELECT col FROM tab ORDER BY col LIMIT 1. This not happens
+ the query as SELECT col FROM tab ORDER BY col LIMIT 1. This now happens
automatically.
</para>
</listitem>
single query (Tom)
</para>
<para>
- Multiple AND and ORs
+ This allows multiple indexes to be combined to access a single
+ table.
</para>
</listitem>
<para>
Change WAL CRC records from 64bit to 32bit to improve performance
(Tom)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Prevent writing large empty gaps in WAL pages (Tom)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Allow non-consecutive index columns to be used in a multi-column index
(Tom)
</para>
<listitem>
<para>
Allow concurrent GIST index access, greatly improving performance
- (Teodor)
+ (Teodor, Oleg)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Add GUC full_page_writes to control writing full pages to WAL (Bruce)
</para>
<para>
To prevent partial disk writes from corrupting the database,
PostgreSQL writes a complete copy of each database disk page to WAL
- the first time it is modified after a checkpoint. This turns of that
+ the first time it is modified after a checkpoint. This turns off that
functionality for users with battery-backed disk caches where partial
page writes can not happen.
</para>
<para>
O_DIRECT causes disk writes to bypass the kernel cache, and for WAL
writes, this improves performance.
-
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Improve COPY FROM performance (Alon Goldshuv)
</para>
<para>
<listitem>
<para>
Add session start time and client IP address to pg_stat_activity (Magnus)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Enhance pg_locks display (Tom)
</para>
</listitem>
<listitem>
<para>
- Add WAL logging for GIST indexes (Teodor)
+ Add WAL logging for GIST indexes (Teodor, Oleg)
</para>
<para>
GIST indexes now work for online backup and crash recovery
<para>
Remove old *.backup files when we do pg_stop_backup() (Bruce)
</para>
- </listitem>
-
- <listitem>
<para>
This prevents a large number of *.backup files from existing in
pg_xlog/.
</para>
</listitem>
- <listitem>
- <para>
- Change add_missing_from to 'false'
- </para>
- <para>
- Generate an error if a table used in a query without a FROM reference (Neil)
- No more SELECT pg_class.*;
- </para>
- </listitem>
-
<listitem>
<para>
Add support for \x hex escapes in backend and ecpg strings (Bruce)
<title>Object Manipulation Changes</title>
<itemizedlist>
- <listitem>
- <para>
- Make default_with_oids default to false (Neil)
- </para>
- <para>
- With this option set to false, user-created tables no
- have an the usually-invisible OID column unless WITH OIDS
- is specified in CREATE TABLE. Though OIDs have existed in all previous
- releases of PostgreSQL, their use is limited because they are only four
- bytes long and the counter is unique across all installed databases.
- The preferred way of uniquely identifying rows is via sequences and
- SERIAL, which has been supported since PostgreSQL 6.4.
- </para>
- </listitem>
-
<listitem>
<para>
Track dependencies of shared objects (Alvaro)
</para>
<para>
In release 8.0, carriage returns and line feeds in CSV COPY TO were
- not processed in a inconsitent manner. (This was documented on the TODO
+ processed in an inconsistent manner. (This was documented on the TODO
list.)
</para>
</listitem>
to use "postgres" rather than "template1" for standard lookups (Dave)
</para>
<para>
- In prior releases, template1 was used both as a default connection for
- things like createuser, and as a template for new databases. This
- caused CREATE DATABASE to sometimes fail because a new database can
- not be created if anyone else is in the template database. With this
- change, the default connection database is now 'postgres', meaning is
- is much less likely someone will be using template1 during CREATE
- DATABASE.
+ In prior releases, template1 was used both as a default
+ connection for utilities like createuser, and as a template for
+ new databases. This caused CREATE DATABASE to sometimes fail
+ because a new database cannot be created if anyone else is in
+ the template database. With this change, the default connection
+ database is now 'postgres', meaning it is much less likely
+ someone will be using template1 during CREATE DATABASE.
</para>
</listitem>
This allows regular expression replacement, like sed. A four-argument
version also allows for global (replace all) and case-insensitive
modes.
-
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
Fix interval division and multiplication (Bruce)
</para>
<para>
<listitem>
<para>
Move /contrib/dbsize into the backend, and rename some of the functions
- (Dave Page)
+ (Dave Page, Andreas Pflug)
</para>
<para>
The new functions are:
- </para>
- </listitem>
-
- <listitem>
- <para>
pg_tablespace_size()
pg_database_size()
pg_relation_size()
<sect3>
<title>PL/Perl Server-Side Language Changes</title>
<itemizedlist>
-
+
+ <listitem>
+ <para>
+ Allow large result sets to be returned efficiently (Abhijit Menon-Sen)
+ </para>
+ <para>
+ This allows functions to use return_next() to avoid building
+ the entire result set in memory.
+ </para>
+ </listitem>
+
<listitem>
<para>
- Allow the return large result sets (Abhijit Menon-Sen)
+ Allow one-row-at-a-time retrieval of query results (Abhijit)
</para>
<para>
- This allows PL/Perl to use spi_query(), spi_fetchrow(), and
- return_next() to return one row at a time from the function.
+ This allows functions to use spi_query() and spi_fetchrow() to
+ avoid accumulating the entire result set in memory.
</para>
</listitem>