-<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.595 2009/03/26 02:40:37 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.596 2009/03/26 02:48:53 momjian Exp $ -->
<!--
Typical markup:
</sect3>
<sect3>
- <title>Database Operations</title>
+ <title>Database Manipulation</title>
<itemizedlist>
<listitem>
</sect3>
<sect3>
- <title>Vacuum</title>
+ <title>EXPLAIN</title>
<itemizedlist>
<listitem>
<para>
- Allow relation forks to track free space (Heikki)
+ Have EXPLAIN VERBOSE show the output columns of a query (Tom)
</para>
<para>
- This allows the recording of all free space discovered by vacuum in
- *.fsm files, rather than having to limit recording to a fixed-sized
- shared memory area; max_fsm_pages and max_fsm_relations settings
- have been removed.
+ Previously EXPLAIN VERBOSE output an internal representation of the
+ output columns.
</para>
</listitem>
<listitem>
<para>
- New visibility map file to track pages that do not require vacuum
- (Heikki)
+ Have EXPLAIN honor debug_print_plan (Tom) bjm: verify behavior, this
+ replaces EXPLAIN VERBOSE?
</para>
+ </listitem>
+ <listitem>
<para>
- This allows VACUUM to avoid sequentially scanning a table when only a
- portion of the table needs vacuuming.
+ Allow EXPLAIN on CREATE TABLE AS (Peter)
</para>
</listitem>
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Indexes</title>
+ <itemizedlist>
+
<listitem>
<para>
- Track explicit transaction snapshots (Alvaro)
+ Dramatically improve the speed of building and accessing hash indexes
+ (Tom Raney, Shreya Bhargava, Kenneth Marshall, Tom)
</para>
<para>
- This improves space reuse by vacuum in the presence of long-running
- transactions.
+ This allows hash indexes to be often faster than btree indexes.
+ However, hash indexes are still not crash-safe.
</para>
</listitem>
<listitem>
<para>
- Add vacuum_freeze_table_age to postgresql.conf to control when VACUUM should
- ignore the visibility map and do a full table scan to set frozen xids
- (Heikki)
+ Have hash indexes store only the hashed value, not the full indexed
+ columns (Xiao Meng)
+ </para>
+
+ <para>
+ This greatly reduces the size of hash indexes for long indexed
+ values, and improves performance.
</para>
</listitem>
<listitem>
<para>
- Add ability to specify autovacuum and TOAST parameters in
- CREATE TABLE (Alvaro, Euler Taveira de Oliveira)
+ Remove requirement to use "@@@" when doing GIN weighted lookups on full
+ text indexes (Tom)
</para>
+ </listitem>
+ <listitem>
<para>
- Autovacuum options uses to be stored in a system table.
+ Add optimizer selectivity function for '@@' text search operations (Jan
+ Urbanski)
</para>
</listitem>
<listitem>
<para>
- Add --freeze option to vacuumdb (Bruce)
+ Add partial match support for GIN indexes (Teodor Sigaev, Oleg Bartunov)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Allow prefix matching in full text searches (Teodor Sigaev, Oleg
+ Bartunov)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Support multi-column GIN indexes (Teodor Sigaev)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Special xxx_pattern_ops LIKE indexes can now be used for simple equality
+ comparisons (Tom)
</para>
</listitem>
</sect3>
<sect3>
- <title>EXPLAIN</title>
+ <title>VACUUM</title>
<itemizedlist>
<listitem>
<para>
- Have EXPLAIN VERBOSE show the output columns of a query (Tom)
+ Allow relation forks to track free space (Heikki)
</para>
<para>
- Previously EXPLAIN VERBOSE output an internal representation of the
- output columns.
+ This allows the recording of all free space discovered by vacuum in
+ *.fsm files, rather than having to limit recording to a fixed-sized
+ shared memory area; max_fsm_pages and max_fsm_relations settings
+ have been removed.
</para>
</listitem>
<listitem>
<para>
- Have EXPLAIN honor debug_print_plan (Tom) bjm: verify behavior, this
- replaces EXPLAIN VERBOSE?
+ New visibility map file to track pages that do not require vacuum
+ (Heikki)
+ </para>
+
+ <para>
+ This allows VACUUM to avoid sequentially scanning a table when only a
+ portion of the table needs vacuuming.
</para>
</listitem>
<listitem>
<para>
- Allow EXPLAIN on CREATE TABLE AS (Peter)
+ Track explicit transaction snapshots (Alvaro)
+ </para>
+
+ <para>
+ This improves space reuse by vacuum in the presence of long-running
+ transactions.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add vacuum_freeze_table_age to postgresql.conf to control when VACUUM should
+ ignore the visibility map and do a full table scan to set frozen xids
+ (Heikki)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add ability to specify autovacuum and TOAST parameters in
+ CREATE TABLE (Alvaro, Euler Taveira de Oliveira)
+ </para>
+
+ <para>
+ Autovacuum options uses to be stored in a system table.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add --freeze option to vacuumdb (Bruce)
</para>
</listitem>
</sect3>
<sect3>
- <title>General Functions</title>
+ <title>Arrays</title>
<itemizedlist>
<listitem>
<para>
- Document that setseed() allows values from -1 to 1 (not 0 to 1), and
- enforce the valid range (Kris Jurka)
+ Have cast on ARRAY[] apply to all elements, not just the array result
+ (Brendan Jurd)
</para>
- </listitem>
- <listitem>
<para>
- Add server side lo_import(filename, oid) function (Tatsuo)
+ This allows NULL ARRAY[] entries as long as it is properly cast
</para>
</listitem>
<listitem>
<para>
- Add quote_nullable(), which behaves like quote_literal() but returns
- 'NULL' for a null argument (Brendan Jurd)
+ Make the SQL ARRAY dimensions optional to match the SQL standard
+ (Peter)
</para>
</listitem>
<listitem>
<para>
- Improve full text search headline() generation to allow several
- fragments (Sushant Sinha)
+ Add array_ndims() function to return the number of dimensions of an array (Robert
+ Haas)
</para>
</listitem>
<listitem>
<para>
- Add suppress_redundant_updates_trigger() trigger function to avoid
- non-data-changing updates (Andrew)
+ Add array_length() function to return the length of an array for the
+ specified dimensions (Jim Nasby, Robert Haas, Peter Eisentraut)
</para>
- </listitem>
- <listitem>
<para>
- Add div(NUMERIC, NUMERIC) for NUMERIC division, without rounding (Tom)
+ Also add identically-functioning SQL-standard function cardinality().
</para>
</listitem>
<listitem>
<para>
- Add timestamp and timestamptz versions of generate_series() (Hitoshi
- Harada)
+ Add new aggregate function array_agg(), which returns all aggregated
+ values as a single array (Robert Haas, Jeff Davis, Peter)
</para>
</listitem>
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Database Informational Functions</title>
- <itemizedlist>
-
<listitem>
<para>
- Implement current_query() for use by functions that need to know the
- currently running query (Tomas Doran)
+ Add function unnest(), which converts an array to individual row values
+ (Tom)
</para>
- </listitem>
- <listitem>
<para>
- Add pg_get_keywords() function to return predefined parser keywords
- (Dave Page)
+ This is the opposite of array_agg().
</para>
</listitem>
<listitem>
<para>
- Add function pg_get_functiondef() to see a functions definition (Abhijit
- Menon-Sen)
+ Add array_fill() to create arrays initialized with a value (Pavel Stehule)
</para>
</listitem>
<listitem>
<para>
- Modify pg_relation_size() to handle free space map (*.fsm) files
- (Heikki)
+ Add generate_subscripts() to generate array subscripts (Pavel Stehule)
</para>
</listitem>
<listitem>
<para>
- Modify pg_relation_size() to use 'regclass' (Heikki)
- </para>
-
- <para>
- pg_relation_size(data_type_name) no longer works.
+ Generate proper error if a SERIAL array is specified (Tom)
</para>
</listitem>
- <listitem>
- <para>
- Add boot_val and reset_val columns to pg_settings output (Greg Smith)
- </para>
- </listitem>
+ </itemizedlist>
- <listitem>
- <para>
- Add support for CURRENT_CATALOG, CURRENT_SCHEMA, SET CATALOG, SET SCHEMA
- (Peter)
- </para>
+ </sect3>
- <para>
- These are SQL-standard capabilities.
- </para>
- </listitem>
+ <sect3>
+ <title>General Functions</title>
+ <itemizedlist>
<listitem>
<para>
- Add pg_typeof() function to return the data type of any value (Brendan
- Jurd)
+ Document that setseed() allows values from -1 to 1 (not 0 to 1), and
+ enforce the valid range (Kris Jurka)
</para>
</listitem>
<listitem>
<para>
- Have version() return information about whether the server is a 32
- or 64-bit binary (Bruce)
+ Add server side lo_import(filename, oid) function (Tatsuo)
</para>
</listitem>
<listitem>
<para>
- Fix the behavior of information schema columns is_insertable_into and
- is_updatable to be consistent (Peter)
+ Add quote_nullable(), which behaves like quote_literal() but returns
+ 'NULL' for a null argument (Brendan Jurd)
</para>
</listitem>
<listitem>
<para>
- Convert remaining builtin set-returning functions to use OUT parameters
- (Jaime Casanova)
+ Improve full text search headline() generation to allow several
+ fragments (Sushant Sinha)
</para>
+ </listitem>
+ <listitem>
<para>
- This makes it possible to call these functions without specifying
- a column list: pg_show_all_settings(), pg_lock_status(),
- pg_prepared_xact(), pg_prepared_statement(), pg_cursor()
+ Add suppress_redundant_updates_trigger() trigger function to avoid
+ non-data-changing updates (Andrew)
</para>
</listitem>
<listitem>
<para>
- Have pg_*_is_visible and has_*_privilege functions return NULL for
- invalid oids, rather than generate an error (Tom)
+ Add div(NUMERIC, NUMERIC) for NUMERIC division, without rounding (Tom)
</para>
</listitem>
<listitem>
<para>
- Add has_column_privilege() and has_any_column_privilege() functions
- (Stephen Frost, Tom)
+ Add timestamp and timestamptz versions of generate_series() (Hitoshi
+ Harada)
</para>
</listitem>
</sect3>
<sect3>
- <title>Function Creation</title>
+ <title>Object Information Functions</title>
<itemizedlist>
<listitem>
<para>
- Support variadic functions (functions with a variable number of
- arguments) (Pavel Stehule)
+ Implement current_query() for use by functions that need to know the
+ currently running query (Tomas Doran)
</para>
+ </listitem>
+ <listitem>
<para>
- Only trailing arguments can be of variable length, and they all must
- be of the same data type.
+ Add pg_get_keywords() function to return predefined parser keywords
+ (Dave Page)
</para>
</listitem>
<listitem>
<para>
- Allow DEFAULT values for function arguments (Pavel Stehule)
+ Add function pg_get_functiondef() to see a functions definition (Abhijit
+ Menon-Sen)
</para>
</listitem>
<listitem>
<para>
- Add CREATE FUNCTION ... RETURNS TABLE clause (Pavel Stehule)
+ Modify pg_relation_size() to handle free space map (*.fsm) files
+ (Heikki)
</para>
</listitem>
<listitem>
<para>
- Allow SQL-language functions to return the output of an INSERT/UPDATE/DELETE
- RETURNING clause (Tom)
+ Modify pg_relation_size() to use 'regclass' (Heikki)
</para>
<para>
- Formerly only SELECT was supported.
+ pg_relation_size(data_type_name) no longer works.
</para>
</listitem>
- </itemizedlist>
-
- </sect3>
-
- <sect3>
- <title>Arrays</title>
- <itemizedlist>
-
<listitem>
<para>
- Have cast on ARRAY[] apply to all elements, not just the array result
- (Brendan Jurd)
- </para>
-
- <para>
- This allows NULL ARRAY[] entries as long as it is properly cast
+ Add boot_val and reset_val columns to pg_settings output (Greg Smith)
</para>
</listitem>
<listitem>
<para>
- Make the SQL ARRAY dimensions optional to match the SQL standard
+ Add support for CURRENT_CATALOG, CURRENT_SCHEMA, SET CATALOG, SET SCHEMA
(Peter)
</para>
- </listitem>
- <listitem>
<para>
- Add array_ndims() function to return the number of dimensions of an array (Robert
- Haas)
+ These are SQL-standard capabilities.
</para>
</listitem>
<listitem>
<para>
- Add array_length() function to return the length of an array for the
- specified dimensions (Jim Nasby, Robert Haas, Peter Eisentraut)
- </para>
-
- <para>
- Also add identically-functioning SQL-standard function cardinality().
+ Add pg_typeof() function to return the data type of any value (Brendan
+ Jurd)
</para>
</listitem>
<listitem>
<para>
- Add new aggregate function array_agg(), which returns all aggregated
- values as a single array (Robert Haas, Jeff Davis, Peter)
+ Have version() return information about whether the server is a 32
+ or 64-bit binary (Bruce)
</para>
</listitem>
<listitem>
<para>
- Add function unnest(), which converts an array to individual row values
- (Tom)
+ Fix the behavior of information schema columns is_insertable_into and
+ is_updatable to be consistent (Peter)
</para>
+ </listitem>
+ <listitem>
<para>
- This is the opposite of array_agg().
+ Convert remaining builtin set-returning functions to use OUT parameters
+ (Jaime Casanova)
</para>
- </listitem>
- <listitem>
<para>
- Add array_fill() to create arrays initialized with a value (Pavel Stehule)
+ This makes it possible to call these functions without specifying
+ a column list: pg_show_all_settings(), pg_lock_status(),
+ pg_prepared_xact(), pg_prepared_statement(), pg_cursor()
</para>
</listitem>
<listitem>
<para>
- Add generate_subscripts() to generate array subscripts (Pavel Stehule)
+ Have pg_*_is_visible and has_*_privilege functions return NULL for
+ invalid oids, rather than generate an error (Tom)
</para>
</listitem>
<listitem>
<para>
- Generate proper error if a SERIAL array is specified (Tom)
+ Add has_column_privilege() and has_any_column_privilege() functions
+ (Stephen Frost, Tom)
</para>
</listitem>
</sect3>
<sect3>
- <title>Indexes</title>
+ <title>Function Creation</title>
<itemizedlist>
<listitem>
<para>
- Dramatically improve the speed of building and accessing hash indexes
- (Tom Raney, Shreya Bhargava, Kenneth Marshall, Tom)
- </para>
-
- <para>
- This allows hash indexes to be often faster than btree indexes.
- However, hash indexes are still not crash-safe.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Have hash indexes store only the hashed value, not the full indexed
- columns (Xiao Meng)
- </para>
-
- <para>
- This greatly reduces the size of hash indexes for long indexed
- values, and improves performance.
- </para>
- </listitem>
-
- <listitem>
- <para>
- Remove requirement to use "@@@" when doing GIN weighted lookups on full
- text indexes (Tom)
+ Support variadic functions (functions with a variable number of
+ arguments) (Pavel Stehule)
</para>
- </listitem>
- <listitem>
<para>
- Add optimizer selectivity function for '@@' text search operations (Jan
- Urbanski)
+ Only trailing arguments can be of variable length, and they all must
+ be of the same data type.
</para>
</listitem>
<listitem>
<para>
- Add partial match support for GIN indexes (Teodor Sigaev, Oleg Bartunov)
+ Allow DEFAULT values for function arguments (Pavel Stehule)
</para>
</listitem>
<listitem>
<para>
- Allow prefix matching in full text searches (Teodor Sigaev, Oleg
- Bartunov)
+ Add CREATE FUNCTION ... RETURNS TABLE clause (Pavel Stehule)
</para>
</listitem>
<listitem>
<para>
- Support multi-column GIN indexes (Teodor Sigaev)
+ Allow SQL-language functions to return the output of an INSERT/UPDATE/DELETE
+ RETURNING clause (Tom)
</para>
- </listitem>
- <listitem>
<para>
- Special xxx_pattern_ops LIKE indexes can now be used for simple equality
- comparisons (Tom)
+ Formerly only SELECT was supported.
</para>
</listitem>