+ of a string payload to listeners with each event.
+ indexes, rather than moving around single rows to compact space.
was defaulted to
linkend="posix-syntax-details">advanced>
- (e.g. Perl-regex compatible) for many years (Tom Lane)
+ (e.g. Perl-regex compatible) for many years. (Tom Lane)
- Administrators still can rename such columns manually. Expression
- index names are also not renamed. WHY ARE EXPRESSION INDEXES
- SIGNIFICANT?
+ Administrators still can rename such columns manually. This change
+ will require an update of the JDBC driver and possibly other drivers
+ so that unique indexes are correctly recognized.
+
+
+
+
+ No longer change function input variable names via
+ REPLACE FUNCTION(Pavel Stehule).
+
+
+ In order to support names parameter calls, it is
+ no longer possible to change the aliases for input variables
+ in the function declaration in place. You now have to DROP
+ and recreate the function.
linkend="plpgsql-var-subst">plpgsql.variable_conflict>,
or by the per-function option #variable_conflict>.
The former behavior was to bind to variable names over
- column names.
+ column names, but not consistently. Stored procedures
+ with naming conflicts will probably need to be refactored.
- Variables can be double-quoted to avoid this restriction.
+ Variables can be double-quoted to avoid this restriction.
Server
-
Continuous Archiving
-
+
Continuous Archiving and Binary Replication
+
+ PostgreSQL's native standby capability has been expanded both to
+ support read-only queries on standby slaves and to greatly reduce
+ the lag between master and standby servers. For many users, this
+ will be a useful and low-administration form of replication, either
+ for high availability or for horizontal scalability.
+
+
Allow continuous archive standby systems to accept read-only queries
+ This feature is called Streaming Replication.
Previously
WAL> files could be sent to standby systems only
as 16 megabytes files; this allows master changes to be sent to the
standby with very little delay. There are new postgresql.conf>
Performance
+
+ Version 9.0 also contains several performance and optimizer enhancements to
+ improve specific uses of PostgreSQL and remedy certain poor-performing cases.
+
+
Optimizer
+
- Allow IS NOT NULL> restrictions to use indexes (Tom Lane)
+ Remove unnecessary outer
+ joins (Robert Haas)
- This is particularly useful for finding
- MAX()>/MIN()> values in indexes that also
- contain NULLs.
+ Outer joins where the inner side is unique and not referenced in
+ the query are unnecessary and are therefore now removed. This will
+ accelerate many automatically generated queries, such as those created
+ by object-relational mappers.
- Remove unnecessary outer
- joins (Robert Haas)
+ Allow IS NOT NULL> restrictions to use indexes (Tom Lane)
- Outer joins where the inner side is unique and not referenced in
- the query are unnecessary and are therefore now removed.
+ This is particularly useful for finding
+ MAX()>/MIN()> values in indexes that also
+ contain NULLs.
This allows user-override of the number or percentage of distinct
values for a column and optionally its child tables. This value
- is normally computed by ANALYZE>.
+ is normally computed by ANALYZE>. Database administrators
+ can use this feature to fix some poor statistics, especially on
+ tables with millions or billions of rows.
- It currently supports tables, views, sequences, and functions, and
- also has per-schema control.
+ This greatly simplifies the assignment of object priveleges in
+ a complex database application. Defaults currently support tables
+ views, sequences, and functions. Defaults may be assigned on a
+ per-schema basis or database-wide.
TABLE CONSTRAINT ... EXCLUDE> clause. While
uniqueness checks could be specified using this syntax,
the real value of this feature is in using complex
- operators that do not have built-in constraints.
+ operators that do not have built-in constraints.
+
+
+ The primary use of exclusion constraints is to allow defining
+ non-overlapping uniqueness, such as for time periods, arrays
+ or ranges of values. This supports data integrity at the
+ table level for calendaring, time-management, and scientific
+ applications.
+
linkend="SQL-GRANT">GRANT>/REVOKE
IN SCHEMA> clause (Petr Jelinek)
+
+ This simplifies the assignment of object permissions
+ and makes it easier to utilize database roles for application
+ data security.
+
+
- This greatly improves performance for these operations.
+ LISTEN/NOTIFY may now be used as a full-featured, high-performance
+ event queue system for PostgreSQL, with transactional support
+ and guaranteed delivery.
EXPLAIN>
+
+ Allow
EXPLAIN> output in XML>, JSON>,
+ and
YAML> formats (Robert Haas, Greg Sabino Mullane)
+
+
+ The new output formats will support the development of new tools
+ for analysis of EXPLAIN output.
+
+
+
Add new EXPLAIN (BUFFERS)> to report query buffer
+ This allows better query profiling for individual queries.
log_*_stats log output, e.g.
linkend="runtime-config-statistics-monitor">log_statement_stats,
no longer shows this information.
-
- Allow
EXPLAIN> output in XML>, JSON>,
- and
YAML> formats (Robert Haas, Greg Sabino Mullane)
-
-
-
Allow EXPLAIN> options to be specified inside parentheses
- The previous method was usually slower and caused index bloat.
+ The previous method was usually slower and caused index bloat.
+ Note that the new method may use more disk space during VACUUM
+ FULL.
+
- Red-black trees are self-balanced so allow for faster index
- creation.
+ Red-black trees are self-balanced. This means much faster
+ GIN index creation.
+