-
Migration to version 8.0
+
Migration to version 8.1
A dump/restore using
pg_dump is
+
+ Change add_missing_from to 'false'
+
+ Generate an error if a table used in a query without a FROM reference (Neil)
+ No more SELECT pg_class.*;
+
+
+
Cause input of a zero-length string ('') for float4/float8/oid to throw
+
+ Make default_with_oids default to false (Neil)
+
+ 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.
+
+
+
In psql, treat unquoted \{digit}+ sequences as octal (Bruce)
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.
single query (Tom)
- Multiple AND and ORs
+ This allows multiple indexes to be combined to access a single
+ table.
Change WAL CRC records from 64bit to 32bit to improve performance
(Tom)
+
+
+
+
Prevent writing large empty gaps in WAL pages (Tom)
+
+
+
+
Allow non-consecutive index columns to be used in a multi-column index
(Tom)
Allow concurrent GIST index access, greatly improving performance
- (Teodor)
+ (Teodor, Oleg)
+
+
+
+
Add GUC full_page_writes to control writing full pages to WAL (Bruce)
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.
O_DIRECT causes disk writes to bypass the kernel cache, and for WAL
writes, this improves performance.
-
+
+
+
+
Improve COPY FROM performance (Alon Goldshuv)
Add session start time and client IP address to pg_stat_activity (Magnus)
+
+
+
+
Enhance pg_locks display (Tom)
- Add WAL logging for GIST indexes (Teodor)
+ Add WAL logging for GIST indexes (Teodor, Oleg)
GIST indexes now work for online backup and crash recovery
Remove old *.backup files when we do pg_stop_backup() (Bruce)
-
-
-
This prevents a large number of *.backup files from existing in
pg_xlog/.
-
- Change add_missing_from to 'false'
-
- Generate an error if a table used in a query without a FROM reference (Neil)
- No more SELECT pg_class.*;
-
-
-
Add support for \x hex escapes in backend and ecpg strings (Bruce)
Object Manipulation Changes
-
- Make default_with_oids default to false (Neil)
-
- 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.
-
-
-
Track dependencies of shared objects (Alvaro)
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.)
to use "postgres" rather than "template1" for standard lookups (Dave)
- 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.
This allows regular expression replacement, like sed. A four-argument
version also allows for global (replace all) and case-insensitive
modes.
-
+
+
+
+
Fix interval division and multiplication (Bruce)
Move /contrib/dbsize into the backend, and rename some of the functions
- (Dave Page)
+ (Dave Page, Andreas Pflug)
The new functions are:
-
-
-
-
pg_tablespace_size()
pg_database_size()
pg_relation_size()
PL/Perl Server-Side Language Changes
-
+
+
+ Allow large result sets to be returned efficiently (Abhijit Menon-Sen)
+
+ This allows functions to use return_next() to avoid building
+ the entire result set in memory.
+
+
+
- Allow the return large result sets (Abhijit Menon-Sen)
+ Allow one-row-at-a-time retrieval of query results (Abhijit)
- 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.