diff options
author | Robert Haas <rhaas@postgresql.org> | 2011-03-05 09:36:19 -0500 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2011-03-05 09:36:19 -0500 |
commit | 5c44f38d3b63c5a11f58fe558adfe4d3cf4dcc39 (patch) | |
tree | d00a6f16267a311223c903b13716636140007429 | |
parent | a4406da967093a9793db0fbceb6e226e318932b6 (diff) | |
download | postgresql-5c44f38d3b63c5a11f58fe558adfe4d3cf4dcc39.tar.gz postgresql-5c44f38d3b63c5a11f58fe558adfe4d3cf4dcc39.zip |
First cut at 9.1alpha4 release notes.
-rw-r--r-- | doc/src/sgml/release-9.1.sgml | 545 |
1 files changed, 539 insertions, 6 deletions
diff --git a/doc/src/sgml/release-9.1.sgml b/doc/src/sgml/release-9.1.sgml index 649d6b0599c..30817d99130 100644 --- a/doc/src/sgml/release-9.1.sgml +++ b/doc/src/sgml/release-9.1.sgml @@ -1,9 +1,9 @@ <!-- doc/src/sgml/release-9.1.sgml --> -<!-- This is up-to-date with commits through 2010-12-28 --> +<!-- This is (hopefully) up-to-date with commits through 2011-03-05 --> <sect1 id="release-9-1-alpha"> - <title>Release 9.1alpha3</title> + <title>Release 9.1alpha4</title> <sect2> <title>Overview</title> <para> @@ -131,11 +131,12 @@ Allow WITH clauses to be attached to INSERT, UPDATE, DELETE statements </para> + </listitem> + <listitem> <para> - This is not the hoped-for facility of using - INSERT/UPDATE/DELETE inside a WITH, but rather the other way - around. + <emphasis>Allow INSERT/UPDATE/DELETE to be used inside a WITH + clause</emphasis> </para> </listitem> @@ -163,6 +164,98 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Allow a table's row type to be cast to the table's supertype + if it's a type table.</emphasis> + </para> + <para> + This is analagous to the existing facility that allows casting a row + type to a supertable's row type. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Make foreign data wrappers functional, and support FOREIGN + TABLEs.</emphasis> + </para> + <para> + Foreign tables are component of SQL/MED, and provide a framework to + allow data stored outside the database to be accessed via SQL. + contrib/file_fdw is provided as a sample foreign data wrapper. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Allow a unique or primary key constraint to be created + using an existing index.</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Implement a truly serializable isolation level</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Allow foreign key constraints to be added as initially + NOT VALID, and validated later</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Allow multiple collations to be used within a single + database</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Support extensions, which provide a cleaner method for + installing and upgrading add-on modules, such as those in contrib + </emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Teach ALTER TABLE .. SET DATA TYPE to avoid a table write + in some cases where it isn't necessary + </emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add ENCODING option to COPY TO/FROM</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Allow binary I/O of type "void"</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Rearrange snapshot handlling to make rule expansion more + consistent</emphasis> + </para> + <para> + Portals, SQL functions, and SPI all now agree that a completely new + MVCC snapshot should be obtained only after fully executing each + original query. This is equivalent to the prior behavior of EXPLAIN + ANALYZE. It eliminates one source of concurrency hazards for + rules, and should also be marginally faster. + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -184,6 +277,7 @@ This can be used to optimize nearest-neighbor searches. </para> </listitem> + <listitem> <para> Improve process shutdown speed @@ -212,6 +306,31 @@ <listitem> <para> + <emphasis>Support unlogged tables.</emphasis> + </para> + <para> + The contents of an unlogged table are not WAL-logged; thus, they + are replicated and are truncated whenever the database system enters + recovery. Indexes on unlogged tables are also unlogged, but GIST + indexes on unlogged tables are not currently supported. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Hash joins now support right and full outer joins.</emphasis> + </para> + <para> + Previously, full joins could be implemented only as a merge join, + and left and right outer joins could only hash the table on the + nullable side of the join. This optimization is particularly + advantageous when the non-nullable side of a left or right outer + join is much smaller than the nullable side. + </para> + </listitem> + + <listitem> + <para> Reduce the memory requirement for large ispell dictionaries </para> </listitem> @@ -231,6 +350,20 @@ <listitem> <para> + <emphasis>Fix GIN to support null keys, empty and null items, and + full index scans</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Teach GIN to combine duplicate keys even across different + quals</emphasis> + </para> + </listitem> + + <listitem> + <para> Performance improvements in pg_upgrade for uses with many tables </para> </listitem> @@ -256,6 +389,20 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Avoid unnecessary detoast when comparing unequal-length text + or bytea values for equality or inequality</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Try to compact the background writer's fsync queue when + it overflows, instead of doing an fsync per block written</emphasis> + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -298,6 +445,55 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Teach replication connections to respect the value of + log_connections</emphasis> + </para> + <para> + Previously, they were always logged. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Log restartpoints in the same fashion as + checkpoints</emphasis> + </para> + <para> + Previously, less information was logged for restartpoints. + </para> + </listitem> + + <listitem> + <para> + <emphasis>By default, set wal_buffers to a reasonable value, based + on the setting for shared_buffers</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add new recovery.conf parameter, pause_at_recovery_target, + which defaults to on.</emphasis> + </para> + <para> + This is a behavior change from previous releases, which entered normal + running upon reaching the recovery target. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add new recovery.conf parameter, recovery_target_name, + allowing recovery to proceed to a named restore point</emphasis> + </para> + <para> + Named restore points can be created using a new server function, + pg_create_restore_point. + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -375,6 +571,77 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Implement remaining fields of + information_schema.sequences view</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add a "conflicts" column to pg_stat_database</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>New system view pg_stat_database_conflicts</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>New system view pg_stat_replication</emphasis> + </para> + <para> + This view shows which replication slaves are connected to the master, + and reports their status and replication progress. + </para> + </listitem> + + <listitem> + <para> + <emphasis>When an autovacuum worker (other than one performing an + anti-wraparound vacuum) is unable to obtain a lock on the target + relation without blocking, skip the relation.</emphasis> + </para> + <para> + This avoids pinning down an autovacuum worker. The next autovacuum + cycle will try again. + </para> + </listitem> + + <listitem> + <para> + <emphasis>When an autovacuum worker (other than one performing an + anti-wraparound vacuum) is unable to obtain a lock on the target + relation without blocking, skip the relation.</emphasis> + </para> + <para> + This avoids pinning down an autovacuum worker. The next autovacuum + cycle will try again. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Track time of last statistics reset on databases and + bgwriter</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Allow standby servers to send information on running + transactions back to the master</emphasis> + </para> + <para> + When enabled, this prevents most recovery conflicts on the slave, + but may cause MVCC bloat on the master. + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -404,6 +671,16 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Add REPLICATION privilege for ROLEs.</emphasis> + </para> + <para> + This makes it possible for replication to be performed by a + non-superuser account. + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -480,6 +757,20 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Add pg_is_xlog_replay_paused, pg_xlog_replay_pause, and + pg_xlog_replay_resume functions.</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Change pg_last_xlog_receive_location not to move + backwards.</emphasis> + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -519,6 +810,22 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Support streaming base backups.</emphasis> + </para> + <para> + A new client, pg_basebackup, can be used to perform a streaming base + backup. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add a directory output format to pg_dump</emphasis> + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -553,7 +860,6 @@ with (at present) no default value. </para> </listitem> - <listitem> <para> Add a \sf (show function) command to psql, for those @@ -569,6 +875,20 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Add a \dL command to psql, to list procedural + languages</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Allow psql to automatically deduce the client encoding from + the locale</emphasis> + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -608,6 +928,17 @@ </itemizedlist> </sect3> <sect3> + <title>ecpg</title> + <itemizedlist> + <listitem> + <para> + <emphasis>Allow ecpg to accept dynamic cursor names even in WHERE + CURRENT OF clauses</emphasis> + </para> + </listitem> + </itemizedlist> + </sect3> + <sect3> <title>Procedural Languages</title> <sect4> <title>PL/pgSQL</title> @@ -653,9 +984,138 @@ Allow generic record arguments to PL/Perl functions </para> </listitem> + + <listitem> + <para> + <emphasis>Convert PostgreSQL arrays passed to PL/perl functions to + Perl arrays</emphasis> + </para> + </listitem> + </itemizedlist> + </sect4> + + <sect4> + <title>PL/Python</title> + <itemizedlist> + + <listitem> + <para> + <emphasis>Fix an error when a set-returning function fails halfway + through</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Skip dropped attributes when converting Python objects to + tuples</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Improve messages for errors in compiling anonymous + PL/Python blocks</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Improve the handling of exceptions</emphasis> + </para> + <para> + Fix the way that exceptions are handled by the plpy module for Python + 3. Get rid of the global variable holding the error state, and + instead arrange to report PostgreSQL errors to Python immediately. + Call PLy_spi_execute_fetch_result inside the try/catch block, so that + errors from fetching tuples are correct reported as errors in the + SPI call. Use the built-in TypeError, not SPIError, for errors + having to do with argument counts or types. Use SPIError, not simply + plpy.Error, for errors in PLy_spi_execute_plan. Do not set + a Python exception if PyArg_ParseTuple failed, as it already sets + the correct exception. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Do not prefix error messages with the string + "PL/Python: "</emphasis> + </para> + <para> + It is redundant, given the error context. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Check PL/Python functions for syntax errors at creation + time</emphasis> + </para> + <para> + Previously, even gross syntax errors would not be detected until + the function was executed. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Allow Python try/catch blocks to catch exceptions arising + from SPI calls</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Invalidate PL/python functions with composite type + arguments when the type changes</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add quoting functions plpy.quote_ident, plpy.quote_literal, + and plpy.quote_nullable</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Support table functions</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add a plpy.subtransaction() context manager</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Provide a separate exception class for each error code + the backend defines, and make it possible to get the SQLSTATE from + the exception object</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Assorted code cleanup</emphasis> + </para> + <para> + We now use HTABs instead of Python dictionary objects to cache + procedures. palloc is used in TopMemoryContext instead of malloc. + Avoid use of undocumented API PyObject_NEW. Free plan values in + the PlyPlanObject dealloc function. Add braces around an if block, + for readability. Refactor PLy_spi_prepare to save two levels of + indentation. Avoid palloc(0). + </para> + </listitem> </itemizedlist> </sect4> </sect3> + <sect3> <title>Additional Supplied Modules</title> <itemizedlist> @@ -668,6 +1128,13 @@ <listitem> <para> + <emphasis>New module contrib/sepgsql, an SE-Linux integration for + PostgreSQL</emphasis> + </para> + </listitem> + + <listitem> + <para> Updates to contrib/isn ISBN tables </para> </listitem> @@ -708,6 +1175,54 @@ </para> </listitem> + <listitem> + <para> + <emphasis>New module contrib/pg_test_fsync, replacing + src/tools/test_fsync</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>In contrib/pageinspect, fix the heap_page_item to return + infomasks as 32 bit values</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>In contrib/btree_gist, support KNN GiST searches</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>In contrib/pg_trgm, support LIKE, ILIKE, and KNN GiST + searches</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Several improvements to contrib/intarray</emphasis> + </para> + <para> + Correct the behavior of array containment operators, so that an empty + array is contained in any other array. Fix bogus failures where + operators would claim that nulls were present when they really + weren't. Remove arbitrary restriction to 1-D arrays. + </para> + </listitem> + + <listitem> + <para> + <emphasis>Fix pg_upgrade not to insist on pg_dumpall and psql in the + old cluster, since we don't need them, but do check for pg_resetxlog + in the old and new clusters, since we do. Avoid a useless attempt + to call pg_config in the old cluster.</emphasis> + </para> + </listitem> + </itemizedlist> </sect3> <sect3> @@ -808,6 +1323,24 @@ </para> </listitem> + <listitem> + <para> + <emphasis>Allow make check in PL directories</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>Add a make check-world target</emphasis> + </para> + </listitem> + + <listitem> + <para> + <emphasis>PGXS support for contrib/hstore</emphasis> + </para> + </listitem> + </itemizedlist> </sect3> </sect2> |