From 50a90fac40db82680ac7ceacf3348f3f08f5343e Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 17 Feb 2010 04:19:41 +0000 Subject: Stamp HEAD as 9.0devel, and update various places that were referring to 8.5 (hope I got 'em all). Per discussion, this release will be 9.0 not 8.5. --- doc/src/sgml/catalogs.sgml | 4 +- doc/src/sgml/config.sgml | 8 +- doc/src/sgml/datatype.sgml | 4 +- doc/src/sgml/ecpg.sgml | 4 +- doc/src/sgml/filelist.sgml | 4 +- doc/src/sgml/high-availability.sgml | 4 +- doc/src/sgml/hstore.sgml | 4 +- doc/src/sgml/libpq.sgml | 4 +- doc/src/sgml/lobj.sgml | 4 +- doc/src/sgml/plpgsql.sgml | 8 +- doc/src/sgml/protocol.sgml | 4 +- doc/src/sgml/ref/copy.sgml | 4 +- doc/src/sgml/ref/explain.sgml | 4 +- doc/src/sgml/ref/vacuum.sgml | 4 +- doc/src/sgml/release-8.5.sgml | 1006 ----------------------------------- doc/src/sgml/release-9.0.sgml | 1006 +++++++++++++++++++++++++++++++++++ doc/src/sgml/release.sgml | 4 +- doc/src/sgml/stylesheet-man.xsl | 2 +- 18 files changed, 1041 insertions(+), 1041 deletions(-) delete mode 100644 doc/src/sgml/release-8.5.sgml create mode 100644 doc/src/sgml/release-9.0.sgml (limited to 'doc/src') diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index e5bef18d7d8..197b7820219 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -1,4 +1,4 @@ - + @@ -3134,7 +3134,7 @@ - Prior to PostgreSQL 8.5, there was no permission structure + Prior to PostgreSQL 9.0, there was no permission structure associated with large objects. As a result, pg_largeobject was publicly readable and could be used to obtain the OIDs (and contents) of all large objects in the system. diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 6c1c047c7b8..4d7119fed26 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ - + Server Configuration @@ -4977,7 +4977,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' - In PostgreSQL releases prior to 8.5, large objects + In PostgreSQL releases prior to 9.0, large objects did not have access privileges and were, in effect, readable and writable by all users. Setting this variable to on disables the new privilege checks, for compatibility with prior @@ -4985,8 +4985,8 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' Setting this variable does not disable all security checks for - large objects - only those for which the default behavior has changed - in PostgreSQL 8.5. + large objects — only those for which the default behavior has + changed in PostgreSQL 9.0. For example, lo_import() and lo_export() need superuser privileges independent of this setting. diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index abe747a6964..215a4dbab14 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -1,4 +1,4 @@ - + Data Types @@ -1197,7 +1197,7 @@ SELECT b, char_length(b) FROM test2; of these are always accepted on input. The output format depends on the configuration parameter ; the default is hex. (Note that the hex format was introduced in - PostgreSQL 8.5; earlier versions and some + PostgreSQL 9.0; earlier versions and some tools don't understand it.) diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index bfd0676cd1b..eb94a41d8a2 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -1,4 +1,4 @@ - + <application>ECPG</application> - Embedded <acronym>SQL</acronym> in C @@ -2439,7 +2439,7 @@ EXEC SQL DESCRIBE stmt1 INTO SQL DESCRIPTOR mydesc; - Before PostgreSQL 8.5, the SQL keyword was optional, + Before PostgreSQL 9.0, the SQL keyword was optional, so using DESCRIPTOR and SQL DESCRIPTOR produced named SQL Descriptor Areas. Now it is mandatory, omitting the SQL keyword produces SQLDA Descriptor Areas, diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index 2ceee79cb98..732c41fb7b3 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -1,4 +1,4 @@ - + @@ -142,7 +142,7 @@ - + diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml index 2c0c91e15b4..e868e232d6c 100644 --- a/doc/src/sgml/high-availability.sgml +++ b/doc/src/sgml/high-availability.sgml @@ -1,4 +1,4 @@ - + High Availability, Load Balancing, and Replication @@ -747,7 +747,7 @@ if (!triggered) - Starting with PostgreSQL version 8.5, you can use + Starting with PostgreSQL version 9.0, you can use streaming replication (see ) to achieve the same with less effort. diff --git a/doc/src/sgml/hstore.sgml b/doc/src/sgml/hstore.sgml index ed707d21914..958a6b9d160 100644 --- a/doc/src/sgml/hstore.sgml +++ b/doc/src/sgml/hstore.sgml @@ -1,4 +1,4 @@ - + hstore @@ -542,7 +542,7 @@ SELECT key, count(*) FROM - As of PostgreSQL 8.5, hstore uses a different internal + As of PostgreSQL 9.0, hstore uses a different internal representation than previous versions. This presents no obstacle for dump/restore upgrades since the text representation (used in the dump) is unchanged. diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index 0bdb6401c34..6ab8969fc8b 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -1,4 +1,4 @@ - + <application>libpq</application> - C Library @@ -1255,7 +1255,7 @@ PQconninfoOption *PQconninfoParse(const char *conninfo, char **errmsg); standard_conforming_strings was not reported by releases before 8.1; IntervalStyle was not reported by releases before 8.4; - application_name was not reported by releases before 8.5.) + application_name was not reported by releases before 9.0.) Note that server_version, server_encoding and diff --git a/doc/src/sgml/lobj.sgml b/doc/src/sgml/lobj.sgml index 90319c47fee..0e567e7dbcd 100644 --- a/doc/src/sgml/lobj.sgml +++ b/doc/src/sgml/lobj.sgml @@ -1,4 +1,4 @@ - + Large Objects @@ -61,7 +61,7 @@ - As of PostgreSQL 8.5, large objects have an owner + As of PostgreSQL 9.0, large objects have an owner and a set of access permissions, which can be managed using and . diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml index af8e372fe83..b682db80bc0 100644 --- a/doc/src/sgml/plpgsql.sgml +++ b/doc/src/sgml/plpgsql.sgml @@ -1,4 +1,4 @@ - + <application>PL/pgSQL</application> - <acronym>SQL</acronym> Procedural Language @@ -59,7 +59,7 @@ - In PostgreSQL 8.5 and later, + In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it. @@ -3520,7 +3520,7 @@ SELECT * FROM sales_summary_bytime; - PostgreSQL versions before 8.5 would try + PostgreSQL versions before 9.0 would try to substitute the variable in all three cases, leading to syntax errors. @@ -3583,7 +3583,7 @@ SELECT * FROM sales_summary_bytime; large body of PL/pgSQL code. In such cases you can specify that PL/pgSQL should resolve ambiguous references as the variable (which is compatible with PL/pgSQL's - behavior before PostgreSQL 8.5), or as the + behavior before PostgreSQL 9.0), or as the table column (which is compatible with some other systems such as Oracle). diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index f0a2aeba03a..e30ca0d9299 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -1,4 +1,4 @@ - + Frontend/Backend Protocol @@ -1101,7 +1101,7 @@ standard_conforming_strings was not reported by releases before 8.1; IntervalStyle was not reported by releases before 8.4; - application_name was not reported by releases before 8.5.) + application_name was not reported by releases before 9.0.) Note that server_version, server_encoding and diff --git a/doc/src/sgml/ref/copy.sgml b/doc/src/sgml/ref/copy.sgml index 57a0a6e5f19..ae6e250e46e 100644 --- a/doc/src/sgml/ref/copy.sgml +++ b/doc/src/sgml/ref/copy.sgml @@ -1,5 +1,5 @@ @@ -839,7 +839,7 @@ ZW ZIMBABWE The following syntax was used before PostgreSQL - version 8.5 and is still supported: + version 9.0 and is still supported: COPY table_name [ ( column [, ...] ) ] diff --git a/doc/src/sgml/ref/explain.sgml b/doc/src/sgml/ref/explain.sgml index 2f6aaf427a8..c28c5174000 100644 --- a/doc/src/sgml/ref/explain.sgml +++ b/doc/src/sgml/ref/explain.sgml @@ -1,5 +1,5 @@ @@ -94,7 +94,7 @@ ROLLBACK; Only the ANALYZE and VERBOSE options can be specified, and only in that order, without surrounding the option - list in parentheses. Prior to PostgreSQL 8.5, + list in parentheses. Prior to PostgreSQL 9.0, the unparenthesized syntax was the only one supported. It is expected that all new options will be supported only in the parenthesized syntax. diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml index 64b6f5e23e6..bd2b6726c44 100644 --- a/doc/src/sgml/ref/vacuum.sgml +++ b/doc/src/sgml/ref/vacuum.sgml @@ -1,5 +1,5 @@ @@ -70,7 +70,7 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ When the option list is surrounded by parentheses, the options can be written in any order. Without parentheses, options must be specified in exactly the order shown above. - Prior to PostgreSQL 8.5, the unparenthesized + Prior to PostgreSQL 9.0, the unparenthesized syntax was the only one supported. It is expected that all new options will be supported only in the parenthesized syntax. diff --git a/doc/src/sgml/release-8.5.sgml b/doc/src/sgml/release-8.5.sgml deleted file mode 100644 index 4e247a38115..00000000000 --- a/doc/src/sgml/release-8.5.sgml +++ /dev/null @@ -1,1006 +0,0 @@ - - - - Release 8.5alpha3 - - 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. - - - The release notes are cumulative over all alpha releases. Items - that are new in the latest alpha release - are emphasized. - - - - 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. - - - - Testing - - 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 - the - testing information page. - - - - Changes - - SQL Features - - - - Remove previously deprecated configuration - parameter add_missing_from. The system now always behaves as - though add_missing_from were off. - - - - - Performance and behavioral improvements in UPDATE, - DELETE, and SELECT FOR UPDATE/SHARE queries with joins. - Fix various corner cases that could have resulted in duplicated output - rows. Set-returning functions are now prohibited in the - target list of SELECT FOR UPDATE/SHARE. FOR UPDATE does not - propagate into a WITH query anymore. - - - - - Fix SELECT FOR UPDATE/SHARE in conjunction with LIMIT. - Previously, it could return fewer rows than the limit specified. - - - - - Add a WHEN clause to CREATE TRIGGER, allowing a boolean expression - to be checked to determine whether the trigger should be fired. - - - For BEFORE triggers this is mostly a matter of spec compliance; but - for AFTER triggers it can provide a noticeable performance - improvement, since queuing of a deferred trigger event and - re-fetching of the row(s) at end of statement can be - short-circuited if the trigger does not need to be fired. - - - - - Add exclusion constraints, which generalize the concept of - uniqueness to support any indexable commutative operator, not just - equality. Two rows violate the exclusion constraint if - "row1.col OP row2.col" is TRUE for each of the columns in - the constraint. - - - - - Support ORDER BY within aggregate function calls, at long last - providing a non-kluge method for controlling the order in which - values are fed to an aggregate function. At the same time eliminate - the old implementation restriction that DISTINCT was only supported - for single-argument aggregates. - - - Behavioral change: formerly, agg(DISTINCT x) dropped null values of - x unconditionally. Now, it does so only if the aggregate's transition - function is strict; otherwise nulls are treated as DISTINCT - normally would, i.e., you get one copy. - - - - - Add SQL-compliant triggers on columns, which fire only if - certain columns are named in the UPDATE's SET list. - - - - - Add CREATE LIKE INCLUDING COMMENTS and STORAGE, and INCLUDING - ALL shortcut to allow users to make an exact copy of a table including - all options and features. - - - - - Define a new, more extensible syntax for COPY options - in order to support additional COPY options in the future. - - - - - Modify the definition of window-function PARTITION - BY and ORDER BY clauses so that their elements are always - taken as simple expressions over the query's input - columns. This fixes a bug. - - - - - Fix bug with nested WITH RECURSIVE statements. - - - - - Add surrogate pair support for U& string and identifier - syntax. - - - - - Add Unicode escapes in E'...' strings. - - - - - DROP COLUMN and DROP CONSTRAINT now support an IF EXISTS clause so - that users can avoid fatal errors when running repeatable scripts. - - - - - UNIQUE constraints can now be DEFERRABLE. This is primarily useful - for incremental updates of numerical keys, e.g. "ID = ID + - 1" - - - - - 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 standard. - - - - - Change character_octet_length to more sensible values in - INFORMATION_SCHEMA. - - - - - Allow * as parameter for FORCE QUOTE for COPY CSV, so that all - columns will be quoted. - - - - - - Performance - - - - Allow rewriting forms of ALTER TABLE to skip WAL - logging. - - - - - Speed up INFORMATION_SCHEMA's privilege views. - - - - - Make TRUNCATE do truncate-in-place when processing - a relation that was created or previously truncated in the - current (sub)transaction. - - - - - Implement "join removal" for cases where the inner side - of a left join is unique and is not referenced above the join. This should - speed up many ORM-generated and reporting tool queries. - - - - - Remove the use of the flat files pg_auth and - pg_database in order to improve performance. (Warning: pgbouncer - and possibly other tools currently suggest referring to the pg_auth - file for its user database. Such schemes will no longer work.) - - - - - EXPLAIN allows output of plans in XML, JSON, or YAML format for automated - processing of explain plans by analysis or visualization tools. - - - - - EXPLAIN now supports the use of generic options in EXPLAIN ( option - value, ... ) format, which permits the creation of additional - EXPLAIN options. - - - - - ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCT allows - users to manually tweak the number of distinct values estimated for - a column, to fix cases where ANALYZE estimates are incorrect. - - - - - 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). - - - - - Simplify the forms foo <> true and foo <> false to foo - = false and foo = true during query optimization. - - - - - Avoid per-send() system calls to manage SIGPIPE in libpq, if the - platform provides either sockopt(SO_NOSIGPIPE) or the MSG_NOSIGNAL - flag to send(). - - - - - - Administration and Monitoring - - - - Allow read-only connections during recovery, also - known as Hot Standby. This provides a built-in master-slave - replication solution. - - - - - Provide a parenthesized-options syntax for VACUUM, analogous to - that recently adopted for EXPLAIN. This will allow additional - options to be implemented in future without having to make them - fully-reserved keywords. The old syntax remains available for - existing options, however. - - - - - Add support for an application_name parameter, which is displayed - in pg_stat_activity and recorded in log entries. - - - - - Fix longstanding problems in VACUUM caused by untimely - interruptions. - - - - - Add YAML to list of EXPLAIN formats. - - - - - Add an EXPLAIN (BUFFERS) option to show buffer-usage statistics. - - - - - Add a hook to let loadable modules get control at ProcessUtility - execution, and use it to extend contrib/pg_stat_statements to track - utility commands. - - - - - Add a Boolean server configuration parameter - "bonjour" to control whether a Bonjour-enabled - build actually attempts to advertise itself via Bonjour. - - - - - When reloading postgresql.conf, log what parameters actually - changed. - - - - - Make it possibly to specify server configuration parameters - per user-database combination. Add a \drds command to psql to - display the settings. - - - - - Allow the collection of statistics on sequences. - - - - - Increase the maximum value of extra_float_digits to - 3, and have pg_dump use that value when the backend is new - enough to allow it, because it is possible to need 3 extra - digits for float4 values (but not for float8 values). - - - - - Add 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. - - - - - Show the exact value being complained of in - unique-constraint-violation error messages, including unique-index - build failures. - - - - - - Security - - - - When querying a table with child tables, do not check permissions - on the child tables, only on the parent table. The old behavior was - found to be useless and confusing in virtually all cases, and also - contrary to the SQL standard. - - - - - Add a hook to CREATE/ALTER ROLE to allow an external module to - check the strength of database passwords, and create a sample - implementation of such a hook as a new contrib module - "passwordcheck". - - - - - Add large object access control. - - - - - Allow LDAP authentication to operate in search+bind - mode, meaning it does a search for the user in the directory - first, and then binds with the DN found for this user. This - allows for LDAP logins in scenarios where the DN of the user - cannot be determined simply by prefix and suffix, such as the - case where different users are located in different - containers. The old way of authentication can be - significantly faster, so it's kept as an option. - - - - - Add ALTER DEFAULT PRIVILEGES command, which allows - users to adjust the privileges that will be applied to - subsequently-created objects. - - - - - Add GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS IN SCHEMA. - This makes it easier to manage permissions on database objects. - - - - - Support "samehost" and "samenet" specifications - in pg_hba.conf. This allows users with dynamic server addresses to run - PostgreSQL without frequently modifying pg_hba.conf. - - - - - New has_sequence_privilege() functions allow you to check sequence - privileges for a given ROLE. - - - - - - Built-In Functions - - - - Remove configuration parameter regex_flavor. It is now always - "advanced". - - - - - Teach the regular expression functions to do case-insensitive - matching and locale-dependent character classification properly - when the database encoding is UTF8. This previously only worked - correctly for single-byte encodings. It is still broken for other - multibyte encodings. - - - - - Support POSIX-compatible interpretation of ? as well as {m,n} - and related constructs in SIMILAR TO, per SQL:2008. - - - - - The to_char() formatting functions now supports EEEE (scientific - notation). - - - - - Use floor() not rint() when reducing precision of fractional - seconds in timestamp_trunc, timestamptz_trunc, and interval_trunc() - for the float-datetime case. This improves accuracy of time - calculations. - - - - - Fix ancient bug in handling of to_char() modifier 'TH', when used - with HH. - - - - - - Data Types - - - - When doing "ARRAY[...]::domain", where domain is a domain - over an array type, we need to check domain constraints. Regression - introduced in 8.4. - - - - - Fix integer-to-bit-string conversions to handle the first - fractional byte correctly when the output bit width is wider than - the given integer by something other than a multiple of 8 bits. - - - - - Fix encoding handling in binary input function of xml type. - - - - - Tighten binary receive functions so that they reject values - that the text input functions don't accept either. - - - - - New hex-string input and output format options for type bytea. Hex - output format is enabled by default, which is an incompatible - change. See the new bytea_output parameter if you need to restore - compatibility. - - - - - Adds prefix support for text search synonym dictionary, allowing - creation of synonyms on partial matches. - - - - - - Server Tools - - - - initdb now selects the encoding SQL_ASCII when the locale specifies - US-ASCII. This case previously failed. - - - - - Add init[db] option to pg_ctl. - - - - - It is now reasonably safe to use pg_ctl to start - the postmaster from a boot-time script. - - - - - pg_dump/pg_restore --clean now drops large objects. - - - - - Modify parallel pg_restore ordering logic to avoid a potential - O(N^2) slowdown for some complex databases. - - - - - - libpq - - - - Throw error when a specified connection service name is not - found in pg_service.conf, instead of ignoring it. - - - - - Make libpq reject non-numeric and out-of-range port numbers with a - suitable error message. - - - - - - psql - - - - In psql, show view definition only with \d+, not with \d. - - - - - In psql, ignore UTF-8-encoded Unicode byte-order mark at the - beginning of a file if the client encoding is UTF-8. - - - - - Improve psql's tabular display of wrapped-around data by inserting - markers in the formerly-always-blank columns just to left and right - of the data. "pset linestyle old-ascii" is added to make - the previous behavior available if anyone really wants it. - - - - - Simplify psql's new linestyle behavior to default to - linestyle=ascii all the time, rather than hoping we can tell - whether the terminal supports UTF-8 characters. - - - - - Implement significantly saner behavior when two or - more psql sessions overlap in their use of the history file. - - - - - Add "pset linestyle ascii/unicode" option to psql, - allowing our traditional ASCII-art style of table output to - be upgraded to use Unicode box drawing characters if - desired. - - - - - Have \d show child tables that inherit from the specified parent - - - - - psql now shows the index methods in \di - - - - - - Procedural Languages - - - - PL/pgSQL is installed by default. - - - - - Remove PL/pgSQL's RENAME declaration, which has - bizarre and mostly nonfunctional behavior, and is so little - used that no one has been interested in fixing it. To ensure - that possible uses are covered, remove the ALIAS declaration's - arbitrary restriction that only $n identifiers can be - aliased. - - - - - The PL/pgSQL parser and scanner were reworked to behave much more - sanely: - - - A variable reference will only be recognized where it can validly - go, ie, a place where a column value or parameter would be legal, - instead of the former behavior that would replace any textual match - including table names and column aliases (leading to syntax errors - later on). - - - When a name could refer either to a PL/pgSQL variable or a - table column, PL/pgSQL formerly always assumed the variable was - meant, sometimes resulting in surprising behavior. Now, PL/pgSQL - can assume the variable is meant, or assume the table column is - meant, or throw an error in ambiguous cases. For safety the default - is to throw error. To configure this see the PL/pgSQL documentation. - - - Error reporting is much nicer: it no longer shows edited - versions of statements that look significantly different from what - you wrote. - - - Note that this change affects the set of keywords that are - reserved in PL/pgSQL (i.e., cannot be the name of a PL/pgSQL - variable). Now, all keywords shown as reserved in Appendix C are reserved for - PL/pgSQL purposes as well. However, many PL/pgSQL-only keywords - that were formerly treated as reserved no longer are. As in regular - SQL, you can double-quote a variable's name if you want to use a - name that conflicts with a reserved keyword. - - - - - Add support for anonymous code blocks (DO blocks) to PL/Perl. - - - - - Support arrays as parameters and return values of PL/Python - functions. - - - - - Add Python 3 support to PL/Python. It behaves more or less - unchanged compared to Python 2, but the new language variant is - called plpython3u. - - - - - Add DO statement to support execution of procedural language - code without having to create a function for it. - - - - - Support use of function argument names to identify which - actual arguments match which function parameters. The syntax - uses AS, for example funcname(value AS arg1, anothervalue AS - arg2). - - - - - Fix/improve bytea and boolean support in PL/Python. Data type - conversion into and out of PL/Python previously went through - an intermediate string representation, which caused various - discrepancies especially with bytea and boolean data. This is - now fixed by converting the values directly. - - - - - PL/Python now accepts Unicode objects where it previously - only accepted string objects (for example, as return - value). Unicode objects are converted to the PostgreSQL - server encoding as necessary. - - - - - Improve error context reporting in PL/Perl, for - easier debugging. - - - - - PL/pgSQL IN parameters now accept value assignments. - - - - - Convert a Perl array to a PostgreSQL array when returned by - set-returning functions as well as non-SRFs. - - - - - Allow cursor commands MOVE FORWARD n, MOVE BACKWARD n, - MOVE FORWARD ALL, MOVE BACKWARD ALL in PL/pgSQL. - - - - - PL/pgSQL functions can now better cope with row types - containing dropped columns. - - - - - Improve error context reporting in PL/Python, for easier - debugging. - - - - - Greatly expand the regression testing for PL/Python. - - - - - - Additional Supplied Modules - - - - Add \shell and \setshell meta commands to pgbench. - - - \shell runs an external shell command. \setshell - does the same and assigns the result to a variable. - - - - - Multiple improvements in contrib/hstore, including - raising limits on keys and values, conversions to and from - records and arrays, and support for GROUP BY and DISTINCT. - - - - - pgbench is now multi-threaded, allowing it to use multiple CPU's - for its client connections, and to do more realistic workload - testing. - - - - - Added the ability to retrieve asynchronous notifications using - dblink, via the addition of the function dblink_get_notify(). - - - - - Added matchorig, matchsynonyms, and keepsynonyms options to - contrib/dict_xsyn. - - - - - Added contrib/unaccent. - - - - - - ecpg - - - - Refactor ECPG grammar so that it uses the core grammar's - unreserved_keyword list, minus a few specific words that have to be - treated specially. This de-reserves a number of words in ECPG. - - - - - Added dynamic cursor names to ECPG. - - - - - Add ECPG function that returns the current transaction status. - - - - - Make ECPG more robust against applications freeing strings. - - - - - ECPG now includes a STRING datatype for Informix compatibility - mode. - - - - - - Ports - - - - Disable triggering failover with a signal in pg_standby on Windows. - It never really worked before anyway. - - - - - Change the WIN32 API version to be 5.01 (Windows XP), to - bring in the proper IPv6 headers in newer SDKs. - - - - - Write to the Windows eventlog in UTF-16, converting the - message encoding as necessary. - - - - - Replace use of the long-deprecated Bonjour API - DNSServiceRegistrationCreate with the not-so-deprecated - DNSServiceRegister. The new code will fail on Mac OS X - releases before 10.3. - - - - - 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. - - - - - Add s_lock support for SuperH architecture (not well tested). - - - - - - Source Code, Build Options - - - - configure --enable-thread-safety is now the default (but can still - be turned off). - - - - - Fix inclusions of readline/editline header files so that we - only attempt to #include the version of history.h that is in - the same directory as the readline.h we are using. This - avoids problems in some scenarios where both readline and - editline are installed. - - - - - Derived files that are shipped in the distribution used to be - built in the source directory even for out-of-tree - builds. They are now built in the build tree. This - should be more convenient for certain developers' workflows. - - - - - Functions which conflict with C++ reserved words have been renamed, - making backend header files now safe to use with C++ libraries. - - - - - Add man pages for SPI functions. - - - - - Upgrade to Autoconf 2.63 (not relevant to users of distribution - tarballs). - - - - - 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. The generated - documentation files are now shipped "loose", not in - sub-tarballs. - - - - - New toolchain to generate man pages. From now on, the man pages - will be current in every release. - - - - - Code-coverage testing support now extends to the entire source - tree, not only src/backend/. - - - - - Make the core scanner re-entrant, along with additional fixes that - will let it be used directly by PL/pgSQL. - - - - - - diff --git a/doc/src/sgml/release-9.0.sgml b/doc/src/sgml/release-9.0.sgml new file mode 100644 index 00000000000..a9e0b1f97b2 --- /dev/null +++ b/doc/src/sgml/release-9.0.sgml @@ -0,0 +1,1006 @@ + + + + Release 9.0alpha3 + + 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. + + + The release notes are cumulative over all alpha releases. Items + that are new in the latest alpha release + are emphasized. + + + + 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. + + + + Testing + + 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 + the + testing information page. + + + + Changes + + SQL Features + + + + Remove previously deprecated configuration + parameter add_missing_from. The system now always behaves as + though add_missing_from were off. + + + + + Performance and behavioral improvements in UPDATE, + DELETE, and SELECT FOR UPDATE/SHARE queries with joins. + Fix various corner cases that could have resulted in duplicated output + rows. Set-returning functions are now prohibited in the + target list of SELECT FOR UPDATE/SHARE. FOR UPDATE does not + propagate into a WITH query anymore. + + + + + Fix SELECT FOR UPDATE/SHARE in conjunction with LIMIT. + Previously, it could return fewer rows than the limit specified. + + + + + Add a WHEN clause to CREATE TRIGGER, allowing a boolean expression + to be checked to determine whether the trigger should be fired. + + + For BEFORE triggers this is mostly a matter of spec compliance; but + for AFTER triggers it can provide a noticeable performance + improvement, since queuing of a deferred trigger event and + re-fetching of the row(s) at end of statement can be + short-circuited if the trigger does not need to be fired. + + + + + Add exclusion constraints, which generalize the concept of + uniqueness to support any indexable commutative operator, not just + equality. Two rows violate the exclusion constraint if + "row1.col OP row2.col" is TRUE for each of the columns in + the constraint. + + + + + Support ORDER BY within aggregate function calls, at long last + providing a non-kluge method for controlling the order in which + values are fed to an aggregate function. At the same time eliminate + the old implementation restriction that DISTINCT was only supported + for single-argument aggregates. + + + Behavioral change: formerly, agg(DISTINCT x) dropped null values of + x unconditionally. Now, it does so only if the aggregate's transition + function is strict; otherwise nulls are treated as DISTINCT + normally would, i.e., you get one copy. + + + + + Add SQL-compliant triggers on columns, which fire only if + certain columns are named in the UPDATE's SET list. + + + + + Add CREATE LIKE INCLUDING COMMENTS and STORAGE, and INCLUDING + ALL shortcut to allow users to make an exact copy of a table including + all options and features. + + + + + Define a new, more extensible syntax for COPY options + in order to support additional COPY options in the future. + + + + + Modify the definition of window-function PARTITION + BY and ORDER BY clauses so that their elements are always + taken as simple expressions over the query's input + columns. This fixes a bug. + + + + + Fix bug with nested WITH RECURSIVE statements. + + + + + Add surrogate pair support for U& string and identifier + syntax. + + + + + Add Unicode escapes in E'...' strings. + + + + + DROP COLUMN and DROP CONSTRAINT now support an IF EXISTS clause so + that users can avoid fatal errors when running repeatable scripts. + + + + + UNIQUE constraints can now be DEFERRABLE. This is primarily useful + for incremental updates of numerical keys, e.g. "ID = ID + + 1" + + + + + 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 standard. + + + + + Change character_octet_length to more sensible values in + INFORMATION_SCHEMA. + + + + + Allow * as parameter for FORCE QUOTE for COPY CSV, so that all + columns will be quoted. + + + + + + Performance + + + + Allow rewriting forms of ALTER TABLE to skip WAL + logging. + + + + + Speed up INFORMATION_SCHEMA's privilege views. + + + + + Make TRUNCATE do truncate-in-place when processing + a relation that was created or previously truncated in the + current (sub)transaction. + + + + + Implement "join removal" for cases where the inner side + of a left join is unique and is not referenced above the join. This should + speed up many ORM-generated and reporting tool queries. + + + + + Remove the use of the flat files pg_auth and + pg_database in order to improve performance. (Warning: pgbouncer + and possibly other tools currently suggest referring to the pg_auth + file for its user database. Such schemes will no longer work.) + + + + + EXPLAIN allows output of plans in XML, JSON, or YAML format for automated + processing of explain plans by analysis or visualization tools. + + + + + EXPLAIN now supports the use of generic options in EXPLAIN ( option + value, ... ) format, which permits the creation of additional + EXPLAIN options. + + + + + ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCT allows + users to manually tweak the number of distinct values estimated for + a column, to fix cases where ANALYZE estimates are incorrect. + + + + + 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). + + + + + Simplify the forms foo <> true and foo <> false to foo + = false and foo = true during query optimization. + + + + + Avoid per-send() system calls to manage SIGPIPE in libpq, if the + platform provides either sockopt(SO_NOSIGPIPE) or the MSG_NOSIGNAL + flag to send(). + + + + + + Administration and Monitoring + + + + Allow read-only connections during recovery, also + known as Hot Standby. This provides a built-in master-slave + replication solution. + + + + + Provide a parenthesized-options syntax for VACUUM, analogous to + that recently adopted for EXPLAIN. This will allow additional + options to be implemented in future without having to make them + fully-reserved keywords. The old syntax remains available for + existing options, however. + + + + + Add support for an application_name parameter, which is displayed + in pg_stat_activity and recorded in log entries. + + + + + Fix longstanding problems in VACUUM caused by untimely + interruptions. + + + + + Add YAML to list of EXPLAIN formats. + + + + + Add an EXPLAIN (BUFFERS) option to show buffer-usage statistics. + + + + + Add a hook to let loadable modules get control at ProcessUtility + execution, and use it to extend contrib/pg_stat_statements to track + utility commands. + + + + + Add a Boolean server configuration parameter + "bonjour" to control whether a Bonjour-enabled + build actually attempts to advertise itself via Bonjour. + + + + + When reloading postgresql.conf, log what parameters actually + changed. + + + + + Make it possibly to specify server configuration parameters + per user-database combination. Add a \drds command to psql to + display the settings. + + + + + Allow the collection of statistics on sequences. + + + + + Increase the maximum value of extra_float_digits to + 3, and have pg_dump use that value when the backend is new + enough to allow it, because it is possible to need 3 extra + digits for float4 values (but not for float8 values). + + + + + Add 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. + + + + + Show the exact value being complained of in + unique-constraint-violation error messages, including unique-index + build failures. + + + + + + Security + + + + When querying a table with child tables, do not check permissions + on the child tables, only on the parent table. The old behavior was + found to be useless and confusing in virtually all cases, and also + contrary to the SQL standard. + + + + + Add a hook to CREATE/ALTER ROLE to allow an external module to + check the strength of database passwords, and create a sample + implementation of such a hook as a new contrib module + "passwordcheck". + + + + + Add large object access control. + + + + + Allow LDAP authentication to operate in search+bind + mode, meaning it does a search for the user in the directory + first, and then binds with the DN found for this user. This + allows for LDAP logins in scenarios where the DN of the user + cannot be determined simply by prefix and suffix, such as the + case where different users are located in different + containers. The old way of authentication can be + significantly faster, so it's kept as an option. + + + + + Add ALTER DEFAULT PRIVILEGES command, which allows + users to adjust the privileges that will be applied to + subsequently-created objects. + + + + + Add GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS IN SCHEMA. + This makes it easier to manage permissions on database objects. + + + + + Support "samehost" and "samenet" specifications + in pg_hba.conf. This allows users with dynamic server addresses to run + PostgreSQL without frequently modifying pg_hba.conf. + + + + + New has_sequence_privilege() functions allow you to check sequence + privileges for a given ROLE. + + + + + + Built-In Functions + + + + Remove configuration parameter regex_flavor. It is now always + "advanced". + + + + + Teach the regular expression functions to do case-insensitive + matching and locale-dependent character classification properly + when the database encoding is UTF8. This previously only worked + correctly for single-byte encodings. It is still broken for other + multibyte encodings. + + + + + Support POSIX-compatible interpretation of ? as well as {m,n} + and related constructs in SIMILAR TO, per SQL:2008. + + + + + The to_char() formatting functions now supports EEEE (scientific + notation). + + + + + Use floor() not rint() when reducing precision of fractional + seconds in timestamp_trunc, timestamptz_trunc, and interval_trunc() + for the float-datetime case. This improves accuracy of time + calculations. + + + + + Fix ancient bug in handling of to_char() modifier 'TH', when used + with HH. + + + + + + Data Types + + + + When doing "ARRAY[...]::domain", where domain is a domain + over an array type, we need to check domain constraints. Regression + introduced in 8.4. + + + + + Fix integer-to-bit-string conversions to handle the first + fractional byte correctly when the output bit width is wider than + the given integer by something other than a multiple of 8 bits. + + + + + Fix encoding handling in binary input function of xml type. + + + + + Tighten binary receive functions so that they reject values + that the text input functions don't accept either. + + + + + New hex-string input and output format options for type bytea. Hex + output format is enabled by default, which is an incompatible + change. See the new bytea_output parameter if you need to restore + compatibility. + + + + + Adds prefix support for text search synonym dictionary, allowing + creation of synonyms on partial matches. + + + + + + Server Tools + + + + initdb now selects the encoding SQL_ASCII when the locale specifies + US-ASCII. This case previously failed. + + + + + Add init[db] option to pg_ctl. + + + + + It is now reasonably safe to use pg_ctl to start + the postmaster from a boot-time script. + + + + + pg_dump/pg_restore --clean now drops large objects. + + + + + Modify parallel pg_restore ordering logic to avoid a potential + O(N^2) slowdown for some complex databases. + + + + + + libpq + + + + Throw error when a specified connection service name is not + found in pg_service.conf, instead of ignoring it. + + + + + Make libpq reject non-numeric and out-of-range port numbers with a + suitable error message. + + + + + + psql + + + + In psql, show view definition only with \d+, not with \d. + + + + + In psql, ignore UTF-8-encoded Unicode byte-order mark at the + beginning of a file if the client encoding is UTF-8. + + + + + Improve psql's tabular display of wrapped-around data by inserting + markers in the formerly-always-blank columns just to left and right + of the data. "pset linestyle old-ascii" is added to make + the previous behavior available if anyone really wants it. + + + + + Simplify psql's new linestyle behavior to default to + linestyle=ascii all the time, rather than hoping we can tell + whether the terminal supports UTF-8 characters. + + + + + Implement significantly saner behavior when two or + more psql sessions overlap in their use of the history file. + + + + + Add "pset linestyle ascii/unicode" option to psql, + allowing our traditional ASCII-art style of table output to + be upgraded to use Unicode box drawing characters if + desired. + + + + + Have \d show child tables that inherit from the specified parent + + + + + psql now shows the index methods in \di + + + + + + Procedural Languages + + + + PL/pgSQL is installed by default. + + + + + Remove PL/pgSQL's RENAME declaration, which has + bizarre and mostly nonfunctional behavior, and is so little + used that no one has been interested in fixing it. To ensure + that possible uses are covered, remove the ALIAS declaration's + arbitrary restriction that only $n identifiers can be + aliased. + + + + + The PL/pgSQL parser and scanner were reworked to behave much more + sanely: + + + A variable reference will only be recognized where it can validly + go, ie, a place where a column value or parameter would be legal, + instead of the former behavior that would replace any textual match + including table names and column aliases (leading to syntax errors + later on). + + + When a name could refer either to a PL/pgSQL variable or a + table column, PL/pgSQL formerly always assumed the variable was + meant, sometimes resulting in surprising behavior. Now, PL/pgSQL + can assume the variable is meant, or assume the table column is + meant, or throw an error in ambiguous cases. For safety the default + is to throw error. To configure this see the PL/pgSQL documentation. + + + Error reporting is much nicer: it no longer shows edited + versions of statements that look significantly different from what + you wrote. + + + Note that this change affects the set of keywords that are + reserved in PL/pgSQL (i.e., cannot be the name of a PL/pgSQL + variable). Now, all keywords shown as reserved in Appendix C are reserved for + PL/pgSQL purposes as well. However, many PL/pgSQL-only keywords + that were formerly treated as reserved no longer are. As in regular + SQL, you can double-quote a variable's name if you want to use a + name that conflicts with a reserved keyword. + + + + + Add support for anonymous code blocks (DO blocks) to PL/Perl. + + + + + Support arrays as parameters and return values of PL/Python + functions. + + + + + Add Python 3 support to PL/Python. It behaves more or less + unchanged compared to Python 2, but the new language variant is + called plpython3u. + + + + + Add DO statement to support execution of procedural language + code without having to create a function for it. + + + + + Support use of function argument names to identify which + actual arguments match which function parameters. The syntax + uses AS, for example funcname(value AS arg1, anothervalue AS + arg2). + + + + + Fix/improve bytea and boolean support in PL/Python. Data type + conversion into and out of PL/Python previously went through + an intermediate string representation, which caused various + discrepancies especially with bytea and boolean data. This is + now fixed by converting the values directly. + + + + + PL/Python now accepts Unicode objects where it previously + only accepted string objects (for example, as return + value). Unicode objects are converted to the PostgreSQL + server encoding as necessary. + + + + + Improve error context reporting in PL/Perl, for + easier debugging. + + + + + PL/pgSQL IN parameters now accept value assignments. + + + + + Convert a Perl array to a PostgreSQL array when returned by + set-returning functions as well as non-SRFs. + + + + + Allow cursor commands MOVE FORWARD n, MOVE BACKWARD n, + MOVE FORWARD ALL, MOVE BACKWARD ALL in PL/pgSQL. + + + + + PL/pgSQL functions can now better cope with row types + containing dropped columns. + + + + + Improve error context reporting in PL/Python, for easier + debugging. + + + + + Greatly expand the regression testing for PL/Python. + + + + + + Additional Supplied Modules + + + + Add \shell and \setshell meta commands to pgbench. + + + \shell runs an external shell command. \setshell + does the same and assigns the result to a variable. + + + + + Multiple improvements in contrib/hstore, including + raising limits on keys and values, conversions to and from + records and arrays, and support for GROUP BY and DISTINCT. + + + + + pgbench is now multi-threaded, allowing it to use multiple CPU's + for its client connections, and to do more realistic workload + testing. + + + + + Added the ability to retrieve asynchronous notifications using + dblink, via the addition of the function dblink_get_notify(). + + + + + Added matchorig, matchsynonyms, and keepsynonyms options to + contrib/dict_xsyn. + + + + + Added contrib/unaccent. + + + + + + ecpg + + + + Refactor ECPG grammar so that it uses the core grammar's + unreserved_keyword list, minus a few specific words that have to be + treated specially. This de-reserves a number of words in ECPG. + + + + + Added dynamic cursor names to ECPG. + + + + + Add ECPG function that returns the current transaction status. + + + + + Make ECPG more robust against applications freeing strings. + + + + + ECPG now includes a STRING datatype for Informix compatibility + mode. + + + + + + Ports + + + + Disable triggering failover with a signal in pg_standby on Windows. + It never really worked before anyway. + + + + + Change the WIN32 API version to be 5.01 (Windows XP), to + bring in the proper IPv6 headers in newer SDKs. + + + + + Write to the Windows eventlog in UTF-16, converting the + message encoding as necessary. + + + + + Replace use of the long-deprecated Bonjour API + DNSServiceRegistrationCreate with the not-so-deprecated + DNSServiceRegister. The new code will fail on Mac OS X + releases before 10.3. + + + + + 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. + + + + + Add s_lock support for SuperH architecture (not well tested). + + + + + + Source Code, Build Options + + + + configure --enable-thread-safety is now the default (but can still + be turned off). + + + + + Fix inclusions of readline/editline header files so that we + only attempt to #include the version of history.h that is in + the same directory as the readline.h we are using. This + avoids problems in some scenarios where both readline and + editline are installed. + + + + + Derived files that are shipped in the distribution used to be + built in the source directory even for out-of-tree + builds. They are now built in the build tree. This + should be more convenient for certain developers' workflows. + + + + + Functions which conflict with C++ reserved words have been renamed, + making backend header files now safe to use with C++ libraries. + + + + + Add man pages for SPI functions. + + + + + Upgrade to Autoconf 2.63 (not relevant to users of distribution + tarballs). + + + + + 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. The generated + documentation files are now shipped "loose", not in + sub-tarballs. + + + + + New toolchain to generate man pages. From now on, the man pages + will be current in every release. + + + + + Code-coverage testing support now extends to the entire source + tree, not only src/backend/. + + + + + Make the core scanner re-entrant, along with additional fixes that + will let it be used directly by PL/pgSQL. + + + + + + diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 70f31f0de47..cc3b3e7a738 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,4 +1,4 @@ - + -&release-8.5; +&release-9.0; &release-8.4; &release-8.3; &release-8.2; diff --git a/doc/src/sgml/stylesheet-man.xsl b/doc/src/sgml/stylesheet-man.xsl index 842a9bd5039..888f9d416c7 100644 --- a/doc/src/sgml/stylesheet-man.xsl +++ b/doc/src/sgml/stylesheet-man.xsl @@ -28,7 +28,7 @@ -40 +40