9.1alpha1 release notes.
This commit is contained in:
parent
9b3c19d8f2
commit
c89a1198f9
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/filelist.sgml,v 1.69 2010/06/14 17:25:24 sriggs Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/filelist.sgml,v 1.70 2010/09/02 17:30:06 tgl Exp $ -->
|
||||
|
||||
<!entity history SYSTEM "history.sgml">
|
||||
<!entity info SYSTEM "info.sgml">
|
||||
@ -145,6 +145,7 @@
|
||||
<!entity keywords SYSTEM "keywords.sgml">
|
||||
|
||||
<!entity release SYSTEM "release.sgml">
|
||||
<!entity release-9.1 SYSTEM "release-9.1.sgml">
|
||||
<!entity release-9.0 SYSTEM "release-9.0.sgml">
|
||||
<!entity release-8.4 SYSTEM "release-8.4.sgml">
|
||||
<!entity release-8.3 SYSTEM "release-8.3.sgml">
|
||||
|
484
doc/src/sgml/release-9.1.sgml
Normal file
484
doc/src/sgml/release-9.1.sgml
Normal file
@ -0,0 +1,484 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release-9.1.sgml,v 1.1 2010/09/02 17:30:06 tgl Exp $ -->
|
||||
|
||||
<!-- This is up-to-date with commits through 2010-09-01 -->
|
||||
|
||||
<sect1 id="release-9-1-alpha">
|
||||
<title>Release 9.1alpha1</title>
|
||||
<sect2>
|
||||
<title>Overview</title>
|
||||
<para>
|
||||
PostgreSQL alpha releases are snapshots of development code. They
|
||||
are intended to preview and test upcoming features and to provide
|
||||
the possibility for early feedback. They should not be used in
|
||||
production installations or active development projects. While the
|
||||
PostgreSQL code is continuously subject to a number of automated
|
||||
and manual tests, alpha releases might have serious bugs. Also
|
||||
features may be changed incompatibly or removed at any time during
|
||||
the development cycle.
|
||||
</para>
|
||||
<para>
|
||||
The development cycle of a PostgreSQL major release alternates
|
||||
between periods of development and periods of integration work,
|
||||
called commit fests, normally one month each. Alpha releases are
|
||||
planned to be produced at the end of every commit fest, thus every
|
||||
two months. Since the first commit fest starts within a month from
|
||||
the beginning of development altogether, early alpha releases are
|
||||
not indicative of the likely feature set of the final release.
|
||||
</para>
|
||||
<para>
|
||||
The release notes below highlight user visible changes and new
|
||||
features. There are normally numerous bug fixes and performance
|
||||
improvements in every new snapshot of PostgreSQL, and it would be
|
||||
too bulky to attempt to list them all. Note that many bug fixes are
|
||||
also backported to stable releases of PostgreSQL, and you should be
|
||||
using those if you are looking for bug-fix-only upgrades for your
|
||||
current installations.
|
||||
</para>
|
||||
<para>
|
||||
These notes are cumulative over all alpha releases of the current
|
||||
development cycle. Items that are new in the latest alpha release are
|
||||
<emphasis>emphasized</emphasis>.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Migration</title>
|
||||
<para>
|
||||
To upgrade from any release to an alpha release or from an alpha
|
||||
release to any other release will most likely require a
|
||||
dump/restore upgrade procedure. It may happen that this is not
|
||||
necessary in particular cases, but that is not verified beforehand.
|
||||
(The server will warn you in any case when a dump/restore is
|
||||
necessary if you attempt to use it with an old data directory.)
|
||||
Note, however, that the dump/restore upgrade procedure is expected
|
||||
to work for alpha releases, and problems in this area should be
|
||||
reported.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Testing</title>
|
||||
<para>
|
||||
The primary reason we release alphas is to get users to test new
|
||||
features as early as possible. If you are interested in helping
|
||||
with organized testing, please see
|
||||
<ulink url="http://wiki.postgresql.org/wiki/HowToBetaTest">the
|
||||
testing information page</ulink>.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Changes</title>
|
||||
<sect3>
|
||||
<title>SQL Features</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Recognize functional dependency on primary
|
||||
keys</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
This allows a table's other columns to be referenced without listing
|
||||
them in GROUP BY, so long as the primary key column(s) are listed in
|
||||
GROUP BY.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add CREATE TABLE IF NOT EXISTS</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Performance</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Reduce lock levels of CREATE TRIGGER and some ALTER
|
||||
TABLE, CREATE RULE actions</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add some knowledge about prefix matches to
|
||||
tsmatchsel()</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Replace the naive HYPOT() macro with a
|
||||
standards-conformant hypotenuse function</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Server Settings</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Change the default value of
|
||||
<literal>standard_conforming_strings</> to
|
||||
<literal>on</></emphasis>
|
||||
</para>
|
||||
<warning>
|
||||
<para>
|
||||
This is a significant incompatibility with previous releases,
|
||||
because it may break unwary applications in security-critical ways.
|
||||
</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add <literal>log_file_mode</> parameter</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
This allows control of the file permissions set on log files created
|
||||
by the syslogger process.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add <literal>restart_after_crash</> parameter</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
Normally, we automatically restart after a backend crash, but in
|
||||
some cases when PostgreSQL is invoked by clusterware it may be
|
||||
desirable to suppress this behavior, so we now provide an option which
|
||||
does that.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Administration and Monitoring</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Make EXPLAIN show the function call expression of a
|
||||
FunctionScan plan node, but only in VERBOSE mode</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Make EXPLAIN print PARAM_EXEC Params as
|
||||
the referenced expressions, rather than just $N</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add vacuum and analyze counters to pg_stat_*_tables
|
||||
views</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add stats functions and views to provide access to a
|
||||
transaction's own statistics counts</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Security</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add server authentication over Unix-domain
|
||||
sockets</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
This adds a libpq connection parameter <literal>requirepeer</> that
|
||||
specifies the user name that the server process is expected to run
|
||||
under.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Built-In Functions</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add string functions: concat(), concat_ws(), left(),
|
||||
right(), and reverse()</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add three-parameter forms of array_to_string and
|
||||
string_to_array</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add XMLEXISTS function</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add xpath_exists() function</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
This is equivalent to XMLEXISTS except that it offers support for
|
||||
namespace mapping.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add xml_is_well_formed, xml_is_well_formed_document,
|
||||
xml_is_well_formed_content functions to the core XML
|
||||
code</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
These supersede a version previously offered by contrib/xml2.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Data Types</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Allow numeric to use a more compact, 2-byte header in
|
||||
many cases</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add support for dividing money by money (yielding a
|
||||
float8 result) and for casting between money and numeric</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Server Tools</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add options to force quoting of all
|
||||
identifiers</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
This includes a quote_all_identifiers parameter which affects the
|
||||
behavior of the backend, and a --quote-all-identifiers argument to
|
||||
pg_dump and pg_dumpall which sets the parameter and also affects the
|
||||
quoting done internally by those applications.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>psql</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add \conninfo command to psql, to show current connection
|
||||
info</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Extend psql's \e and \ef commands so that a line number
|
||||
can be specified, and the editor's cursor will be initially placed
|
||||
on that line</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
To avoid assumptions about what switch the user's editor takes for
|
||||
this purpose, there is a new psql variable EDITOR_LINENUMBER_SWITCH
|
||||
with (at present) no default value.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add a \sf (show function) command to psql, for those
|
||||
times when you need to look at a function but don't wish to fire up
|
||||
an editor</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Make psql distinguish between unique indices and unique
|
||||
constraints in \d printout</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Procedural Languages</title>
|
||||
<sect4>
|
||||
<title>PL/pgSQL</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Modify the handling of RAISE without parameters so that
|
||||
the error it throws can be caught in the same places that could
|
||||
catch an ordinary RAISE ERROR in the same location</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
The previous coding insisted on throwing the error from the block
|
||||
containing the active exception handler; which is arguably more
|
||||
surprising, and definitely unlike Oracle's behavior.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Remove ancient PL/pgSQL line numbering hack</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
PL/pgSQL used to count the second line of the function body as
|
||||
<quote>line 1</>, if the first line was zero-length.
|
||||
While this hack arguably has some benefit in terms of making
|
||||
PL/pgsql's line numbering match the programmer's expectations, it
|
||||
also makes PL/pgsql inconsistent with the remaining PLs, making it
|
||||
difficult for clients to reliably determine where the error
|
||||
actually is. On balance, it seems better to be consistent.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect4>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Additional Supplied Modules</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add the ability to compute per-statement latencies (ie,
|
||||
average execution times) to pgbench</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Teach levenshtein() about multi-byte
|
||||
characters</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add btree_gist support for searching on <quote>not
|
||||
equals</quote></emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add ssl_cipher() and ssl_version() functions to
|
||||
contrib/sslinfo</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Remove the arbitrary (and undocumented) limit on the
|
||||
number of parameter=value pairs that can be handled by
|
||||
xslt_process()</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Source Code, Build Options</title>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Include the backend ID in the relpath of temporary
|
||||
relations</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
This allows us to reliably remove all leftover temporary relation
|
||||
files on cluster startup without reference to system catalogs or
|
||||
WAL; therefore, we no longer include temporary relations in
|
||||
XLOG_XACT_COMMIT and XLOG_XACT_ABORT WAL records.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Rewrite COMMENT ON <replaceable>object</> code for better
|
||||
modularity, and add necessary locking</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Add a hook in ExecCheckRTPerms() for eventual use by
|
||||
external security-checking modules</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Standardize names and calling conventions of
|
||||
get_whatever_oid functions</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Make NestLoop plan nodes pass outer-relation variables
|
||||
into their inner relation using the general PARAM_EXEC executor
|
||||
parameter mechanism, rather than the ad-hoc kluge of passing the
|
||||
outer tuple down through ExecReScan</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Make details of the Numeric representation private to
|
||||
numeric.c</emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<emphasis>Suppress some compiler warnings from
|
||||
<literal>clang</></emphasis>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.639 2010/08/17 04:37:21 petere Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.640 2010/09/02 17:30:06 tgl Exp $ -->
|
||||
<!--
|
||||
|
||||
Typical markup:
|
||||
@ -72,6 +72,7 @@ can be created without links to the main documentation. Don't use <xref>.
|
||||
The reason for splitting the release notes this way is so that appropriate
|
||||
subsets can easily be copied into back branches.
|
||||
-->
|
||||
&release-9.1;
|
||||
&release-9.0;
|
||||
&release-8.4;
|
||||
&release-8.3;
|
||||
|
Loading…
Reference in New Issue
Block a user