.. -*- mode: rst -*- ================= Release 8.5alpha1 ================= .. last commit: Simplify and speed up man page installation Overview -------- 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. 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. 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. Migration --------- 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. Changes ------- SQL Features ~~~~~~~~~~~~ - DROP IF EXISTS for columns and constraints - Allow parentheses around the query expression that follows a WITH clause. - INFORMATION_SCHEMA, a catalog of standard views of database objects, has been updated to the SQL:2008 ANSI/ISO standard. - Changed character_octet_length to more sensible values in INFORMATION_SCHEMA. - Simplify the forms foo <> true and foo <> false to foo = true and foo = false. - Allow * as parameter for FORCE QUOTE for COPY CSV - Support deferrable uniqueness constraints. Performance ~~~~~~~~~~~ - Make GEQO's planning deterministic by having it start from a predictable random number seed each time. - Rewrite GEQO's gimme_tree function so that it always finds a legal join sequence. Previously, it could have failed to produce a plan in some cases. - Tweak TOAST code so that columns marked with MAIN storage strategy are not forced out-of-line unless that is necessary to make the row fit on a page. Previously, they were forced out-of-line if needed to get the row down to the default target size (1/4th page). - EXPLAIN can now take generic options - EXPLAIN allows output of plans in XML or JSON format. - Added ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCT Administration and Monitoring ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Added the ability to include the SQLSTATE error code of any error messages in the PostgreSQL activity log with the new log_line_prefix placeholder %e. - Fast shutdown stop should forcibly disconnect any active backends, even if a smart shutdown is already in progress. Backpatched to 8.3. Security ~~~~~~~~ - has_sequence_privilege() Built-In Functions ~~~~~~~~~~~~~~~~~~ - Fixed ancient bug in handling of to_char() modifier 'TH', when used with HH. - Use floor() not rint() when reducing precision of fractional seconds in timestamp_trunc, timestamptz_trunc, and interval_trunc() for the float-datetime case. - Support EEEE (scientific notation) in to_char(). pg_dump ~~~~~~~ - Fixed up --binary-upgrade option so that it behaves properly with inherited columns and check constraints. - Properly restore pg_largeobject.relfozenxid in binary upgrade mode. - Make pg_dump/pg_restore --clean options drop large objects too. - Modify parallel pg_restore logic to avoid potential O(N^2) slowdown in extreme cases. psql ~~~~ - Have \\d show child tables that inherit from the specified parent - Show definition of index columns in \\d on index ecpg ~~~~ - Added STRING datatype for Informix compatibility mode. Procedural Languages ~~~~~~~~~~~~~~~~~~~~ - Improve plpgsql's ability to cope with rowtypes containing dropped columns, Contrib ~~~~~~~ - Multi-threaded version of pgbench - Adds the ability to retrieve async notifications using dblink, via the addition of the function dblink_get_notify(). - Add matchorig, matchsynonyms, and keepsynonyms options to contrib/dict_xsyn. Development ~~~~~~~~~~~ - New hex-string input and output for type BYTEA. - Functions which conflict with C++ reserved words have been renames, making backend header files now safe to use with C++ libraries. - Added man pages for SPI functions. Source code, build options ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Upgrade to Autoconf 2.63 - Minimum version of Flex is now 2.5.31, to support reentrant scanners (not relevant to users of distribution tarballs). - Documentation build rules have been improved - New toolchain to generate man pages. From now on, the man pages will be current in every release. - Reserve the shared memory region during backend startup on Windows, so that memory allocated by starting third party DLLs doesn't end up conflicting with it. Hopefully this solves the long-time issue with "could not reattach to shared memory" errors on Win32. - Added s_lock support for SuperH architecture. - Test coverage support now extends to the entire source tree, not only src/backend/.