Database Reference
In-Depth Information
• Cascading streaming replication supports streaming from a slave to another slave.
• SP-GiST, another advance in GiST index technology using space filling trees, should
have enormous positive impact on extensions that rely on GiST for speed.
• Using
ALTER TABLE IF EXISTS
, you can make changes to tables without needing
to first check to see whether the table exists.
• Many new variants of
ALTER TABLE ALTER TYPE
commands that used to require
dropping and recreating the table were added. More details are available at
More
• More
pg_dump
and
pg_restore
options were added. For details, read our article
• PL/V8 joined the ranks of procedural languages. You can now use the ubiquitous
JavaScript to compose functions.
• JSON rose to the level of a built-in data type. Tagging along are functions like
row_to_json
and
array_to_json
. This should be a welcome addition for web de‐
velopers writing Ajax applications. See
“JSON” on page 96
and
Example 7-16
.
• You can create new range data type classes composed of two values to constitute a
range, thereby eliminating the need to cludge range-like functionality, especially in
temporal applications. The debut of range type was chaparoned by numerous range
operators and functions. Exclusion contraints joined the party as the perfect guard‐
ian for range types.
• SQL functions can now reference arguments by name instead of by number. Named
arguments are easier on the eyes if you have more than one.
PostgreSQL 9.1: New Features
With version 9.1, PostgreSQL rolled out enterprise features to compete head-on with
stalwarts like SQL Server and Oracle:
• More built-in replication features, including synchronous replication.
• Extension management using the new
CREATE EXTENSION
and
ALTER EXTENSION
commands. The installation and removal of extensions became a breeze.
• ANSI-compliant foreign data wrappers for querying disparate, external data sour‐
ces.
• Writable CTEs. The syntactical convenience of CTEs now works for
UPDATE
and
INSERT
queries.
• Unlogged tables, which makes writes to tables faster when logging is unnecessary.
• Triggers on views. In prior versions, to make views updatable, you had to resort to
DO INSTEAD
rules
,
which could be written only in SQL, whereas with triggers, you