1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
8
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
10
HREF="mailto:pgsql-docs@postgresql.org"><LINK
12
TITLE="PostgreSQL 9.1beta1 Documentation"
13
HREF="index.html"><LINK
16
HREF="release.html"><LINK
19
HREF="release-8-2-1.html"><LINK
21
TITLE="Release 8.1.23"
22
HREF="release-8-1-23.html"><LINK
25
HREF="stylesheet.css"><META
26
HTTP-EQUIV="Content-Type"
27
CONTENT="text/html; charset=ISO-8859-1"><META
29
CONTENT="2011-04-27T21:20:33"></HEAD
35
SUMMARY="Header navigation table"
47
>PostgreSQL 9.1beta1 Documentation</A
57
HREF="release-8-2-1.html"
74
>Appendix E. Release Notes</TD
89
TITLE="Release 8.1.23"
90
HREF="release-8-1-23.html"
105
>E.53. Release 8.2</A
126
> This release adds many functionality and performance improvements that
127
were requested by users, including:
134
> Query language enhancements including <TT
136
>INSERT/UPDATE/DELETE
142
optional target-table alias in
154
> Index creation without blocking concurrent
170
> Many query optimization improvements, including support for
171
reordering outer joins
176
> Improved sorting performance with lower memory usage
181
> More efficient locking with better concurrency
186
> More efficient vacuuming
191
> Easier administration of warm standby servers
199
> support for tables and indexes
204
> Monitoring, logging, and performance tuning additions
209
> More control over creating and dropping objects
214
> Table inheritance relationships can be defined
215
for and removed from pre-existing tables
223
> can copy the output of an arbitrary
232
> Array improvements, including nulls in arrays
237
> Aggregate-function improvements, including multiple-input
238
aggregates and SQL:2003 statistical functions
260
>E.53.2. Migration to Version 8.2</A
263
> A dump/restore using <SPAN
267
required for those wishing to migrate data from any previous
271
> Observe the following incompatibilities:
279
HREF="runtime-config-compatible.html#GUC-ESCAPE-STRING-WARNING"
282
>escape_string_warning</TT
291
> This issues a warning if backslash escapes are used in
293
HREF="sql-syntax-lexical.html#SQL-SYNTAX-STRINGS"
305
HREF="sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS"
307
constructor syntax</A
315
> will be expanded to a list
316
of their member fields, rather than creating a nested
317
row type field as formerly (Tom)
320
> The new behavior is substantially more useful since it
321
allows, for example, triggers to check for data changes
324
>IF row(new.*) IS DISTINCT FROM row(old.*)</TT
326
The old behavior is still available by omitting <TT
335
HREF="functions-comparisons.html#ROW-WISE-COMPARISON"
341
> standard semantics and allow them
342
to be used in index scans (Tom)
345
> Previously, row = and <> comparisons followed the
346
standard but < <= > >= did not. A row comparison
347
can now be used as an index constraint for a multicolumn
348
index matching the row value.
354
HREF="functions-comparison.html"
363
tests follow <ACRONYM
366
> standard semantics (Tom)
369
> The former behavior conformed to the standard for simple cases
377
true if any row field was non-null, whereas the standard says it
378
should return true only when all fields are non-null.
384
HREF="sql-set-constraints.html"
390
> affect only one constraint (Kris Jurka)
393
> In previous releases, <TT
397
all constraints with a matching name. In this release,
398
the schema search path is used to modify only the first
399
matching constraint. A schema specification is also
400
supported. This more nearly conforms to the SQL standard.
408
> permission for tables, for security reasons
412
> As of this release, only a table's owner can create or modify
413
rules for the table. For backwards compatibility,
426
> Array comparison improvements (Tom)
429
> Now array dimensions are also compared.
435
HREF="functions-array.html"
436
>array concatenation</A
438
to match documented behavior (Tom)
441
> This changes the previous behavior where concatenation
442
would modify the array lower bound.
447
> Make command-line options of <SPAN
452
HREF="app-postgres.html"
461
> This allows the postmaster to pass arguments to each backend
465
>. Note that some options are now
466
only available as long-form options, because there were conflicting
467
single-letter options.
472
> Deprecate use of <SPAN
475
> symbolic link (Peter)
485
commands now act identically, with the behavior determined
486
by command-line options. The <SPAN
490
kept for compatibility, but is not really needed.
496
HREF="runtime-config-logging.html#GUC-LOG-DURATION"
502
to output even if the query is not output (Tom)
505
> In prior releases, <TT
509
the query appeared earlier in the log.
515
HREF="functions-formatting.html"
522
HREF="functions-formatting.html"
525
>to_char(interval)</CODE
538
> Most applications should use <TT
542
want a 12-hour display.
547
> Zero unmasked bits in conversion from <A
548
HREF="datatype-net-types.html#DATATYPE-INET"
554
HREF="datatype-net-types.html#DATATYPE-INET"
562
> This ensures that the converted value is actually valid for
573
>australian_timezones</TT
574
> configuration variable
578
> This variable has been superseded by a more general facility
579
for configuring timezone abbreviations.
584
> Improve cost estimation for nested-loop index scans (Tom)
587
> This might eliminate the need to set unrealistically small
589
HREF="runtime-config-query.html#GUC-RANDOM-PAGE-COST"
592
>random_page_cost</TT
595
If you have been using a very small <TT
597
>random_page_cost</TT
599
please recheck your test cases.
604
> Change behavior of <TT
614
> options. (Greg Sabino Mullane)
620
> manual page for details.
635
> to return a useful value (Martijn
658
> (Martijn van Oosterhout)
661
> This allows applications to use the function without including
667
> C-language loadable modules must now include a
669
HREF="xfunc-c.html#XFUNC-C-DYNLOAD"
675
macro call for version compatibility checking
676
(Martijn van Oosterhout)
681
> For security's sake, modules used by a PL/PerlU function are no
682
longer available to PL/Perl functions (Andrew)
691
> This also implies that data can no longer be shared between a PL/Perl
692
function and a PL/PerlU function.
693
Some Perl installations have not been compiled with the correct flags
694
to allow multiple interpreters to exist within a single process.
695
In this situation PL/Perl and PL/PerlU cannot both be used in a
696
single backend. The solution is to get a Perl installation which
697
supports multiple interpreters.
713
>xml_is_well_formed()</CODE
720
> will remain for backward compatibility,
721
but its behavior will change to do schema checking in a future
731
HREF="http://www.samse.fr/GPL/ora2pg"
733
>http://www.samse.fr/GPL/ora2pg</A
739
> Remove contrib modules that have been migrated to PgFoundry:
764
> Remove abandoned contrib modules:
785
> These ports no longer had active maintainers.
799
> Below you will find a detailed account of the
800
changes between <SPAN
804
the previous major release.
812
>E.53.3.1. Performance Improvements</A
819
> Allow the planner to reorder <A
820
HREF="queries-table-expressions.html#QUERIES-JOIN"
823
> in some circumstances (Tom)
826
> In previous releases, outer joins would always be evaluated in
827
the order written in the query. This change allows the
828
query optimizer to consider reordering outer joins, in cases where
829
it can determine that the join order can be changed without
830
altering the meaning of the query. This can make a
831
considerable performance difference for queries involving
832
multiple outer joins or mixed inner and outer joins.
837
> Improve efficiency of <A
838
HREF="functions-comparisons.html"
843
(list-of-expressions)</A
849
> Improve sorting speed and reduce memory usage (Simon, Tom)
854
> Improve subtransaction performance (Alvaro, Itagaki Takahiro,
864
HREF="sql-createtable.html"
867
HREF="sql-createindex.html"
873
> This leaves extra free space in each table or index page,
874
allowing improved performance as the database grows. This
875
is particularly valuable to maintain clustering.
880
> Increase default values for <A
881
HREF="runtime-config-resource.html#GUC-SHARED-BUFFERS"
896
> Improve locking performance by breaking the lock manager tables into
901
> This allows locking to be more fine-grained, reducing
907
> Reduce locking requirements of sequential scans (Qingqing
913
> Reduce locking required for database creation and destruction
919
> Improve the optimizer's selectivity estimates for <A
920
HREF="functions-matching.html#FUNCTIONS-LIKE"
926
HREF="functions-matching.html#FUNCTIONS-LIKE"
933
HREF="functions-matching.html#FUNCTIONS-POSIX-REGEXP"
934
>regular expression</A
941
> Improve planning of joins to <A
942
HREF="ddl-inherit.html"
946
HREF="queries-union.html"
958
HREF="runtime-config-query.html#GUC-CONSTRAINT-EXCLUSION"
961
> to be applied to <A
962
HREF="ddl-inherit.html"
977
> already honored constraint exclusion.
982
> Improve planning of constant <TT
986
a condition that depends only on variables inherited from an
987
outer query level (Tom)
992
> Protocol-level unnamed prepared statements are re-planned
999
> This improves performance because the exact parameter values
1000
can be used in the plan.
1005
> Speed up vacuuming of B-Tree indexes (Heikki Linnakangas,
1011
> Avoid extra scan of tables without indexes during <A
1012
HREF="sql-vacuum.html"
1022
> Improve multicolumn <A
1029
indexing (Oleg, Teodor)
1034
> Remove dead index entries before B-Tree page split (Junji
1046
>E.53.3.2. Server Changes</A
1053
> Allow a forced switch to a new transaction log file (Simon, Tom)
1056
> This is valuable for keeping warm standby slave servers
1057
in sync with the master. Transaction log file switching now also happens
1058
automatically during <A
1059
HREF="functions-admin.html"
1062
>pg_stop_backup()</CODE
1065
This ensures that all
1066
transaction log files needed for recovery can be archived immediately.
1074
> informational functions (Simon)
1077
> Add functions for interrogating the current transaction log insertion
1078
point and determining <ACRONYM
1081
> filenames from the
1085
> locations displayed by <A
1086
HREF="functions-admin.html"
1089
>pg_stop_backup()</CODE
1092
and related functions.
1097
> Improve recovery from a crash during <ACRONYM
1103
> The server now does periodic checkpoints during <ACRONYM
1107
recovery, so if there is a crash, future <ACRONYM
1111
recovery is shortened. This also eliminates the need for
1112
warm standby servers to replay the entire log since the
1113
base backup if they crash.
1118
> Improve reliability of long-term <ACRONYM
1122
(Heikki, Simon, Tom)
1125
> Formerly, trying to roll forward through more than 2 billion
1126
transactions would not work due to XID wraparound. This meant
1127
warm standby servers had to be reloaded
1128
from fresh base backups periodically.
1134
HREF="runtime-config-wal.html#GUC-ARCHIVE-TIMEOUT"
1137
>archive_timeout</TT
1140
to force transaction log file switches at a given interval (Simon)
1143
> This enforces a maximum replication delay for warm standby servers.
1149
HREF="auth-methods.html#AUTH-LDAP"
1155
authentication (Magnus Hagander)
1158
> This is particularly useful for platforms that do not
1168
HREF="sql-grant.html#SQL-GRANT-DESCRIPTION-OBJECTS"
1172
CONNECT ON DATABASE</TT
1177
> This gives SQL-level control over database access. It works as
1178
an additional filter on top of the existing
1180
HREF="auth-pg-hba-conf.html"
1191
> Add support for <A
1197
Certificate Revocation List</A
1202
(Libor Hohoš)
1205
> The server and <SPAN
1208
> both recognize <ACRONYM
1224
now clusterable (Teodor)
1229
> Remove routine autovacuum server log entries (Bruce)
1233
HREF="monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE"
1236
>pg_stat_activity</TT
1239
now shows autovacuum activity.
1244
> Track maximum XID age within individual tables, instead of whole databases (Alvaro)
1247
> This reduces the overhead involved in preventing transaction
1248
ID wraparound, by avoiding unnecessary VACUUMs.
1253
> Add last vacuum and analyze timestamp columns to the stats
1254
collector (Larry Rosenman)
1257
> These values now appear in the <A
1258
HREF="monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE"
1261
>pg_stat_*_tables</TT
1269
> Improve performance of statistics monitoring, especially
1272
>stats_command_string</TT
1277
> This release enables <TT
1279
>stats_command_string</TT
1281
default, now that its overhead is minimal. This means
1283
HREF="monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE"
1286
>pg_stat_activity</TT
1289
will now show all active queries by default.
1298
HREF="monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE"
1301
>pg_stat_activity</TT
1309
>pg_stat_activity</TT
1311
information included in the <SPAN
1319
> Add configuration parameter <A
1320
HREF="runtime-config-statistics.html#GUC-UPDATE-PROCESS-TITLE"
1323
>update_process_title</TT
1326
to control whether the <SPAN
1329
> display is updated
1330
for every command (Bruce)
1333
> On platforms where it is expensive to update the <SPAN
1337
display, it might be worthwhile to turn this off and rely solely on
1340
>pg_stat_activity</TT
1341
> for status information.
1346
> Allow units to be specified in configuration settings
1350
> For example, you can now set <A
1351
HREF="runtime-config-resource.html#GUC-SHARED-BUFFERS"
1360
> rather than mentally converting sizes.
1365
> Add support for <A
1366
HREF="config-setting.html"
1371
>postgresql.conf</TT
1378
> Improve logging of protocol-level prepare/bind/execute
1379
messages (Bruce, Tom)
1382
> Such logging now shows statement names, bind parameter
1383
values, and the text of the query being executed. Also,
1384
the query text is properly included in logged error messages
1387
>log_min_error_statement</TT
1394
HREF="runtime-config-resource.html#GUC-MAX-STACK-DEPTH"
1397
>max_stack_depth</TT
1400
from being set to unsafe values
1403
> On platforms where we can determine the actual kernel stack depth
1404
limit (which is most), make sure that the initial default value of
1407
>max_stack_depth</TT
1408
> is safe, and reject attempts to set it
1409
to unsafely large values.
1414
> Enable highlighting of error location in query in more
1418
> The server is now able to report a specific error location for
1419
some semantic errors (such as unrecognized column name), rather
1420
than just for basic syntax errors as before.
1427
>"failed to re-find parent key"</SPAN
1439
>pg_internal.init</TT
1440
> cache files during server
1444
> This avoids a hazard that the cache files might contain stale
1445
data after PITR recovery.
1450
> Fix race condition for truncation of a large relation across a
1451
gigabyte boundary by <TT
1459
> Fix bug causing needless deadlock errors on row-level locks (Tom)
1464
> Fix bugs affecting multi-gigabyte hash indexes (Tom)
1469
> Each backend process is now its own process group leader (Tom)
1472
> This allows query cancel to abort subprocesses invoked from a
1473
backend or archive/recovery process.
1484
>E.53.3.3. Query Changes</A
1492
HREF="sql-insert.html"
1498
HREF="sql-update.html"
1504
HREF="sql-delete.html"
1513
> (Jonah Harris, Tom)
1516
> This allows these commands to return values, such as the
1517
computed serial key for a new row. In the <TT
1521
case, values from the updated version of the row are returned.
1526
> Add support for multiple-row <A
1527
HREF="queries-values.html"
1533
per SQL standard (Joe, Tom)
1539
> to insert multiple rows of
1540
constants, or queries to generate result sets using constants.
1543
>INSERT ... VALUES (...), (...),
1547
>SELECT * FROM (VALUES (...), (...),
1548
....) AS alias(f1, ...)</TT
1555
HREF="sql-update.html"
1562
HREF="sql-delete.html"
1568
to use an alias for the target table (Atsushi Ogawa)
1571
> The SQL standard does not permit an alias in these commands, but
1572
many database systems allow one anyway for notational convenience.
1578
HREF="sql-update.html"
1584
to set multiple columns with a list of values (Susanne
1588
> This is basically a short-hand for assigning the columns
1589
and values in pairs. The syntax is <TT
1608
> Make row comparisons work per standard (Tom)
1611
> The forms <, <=, >, >= now compare rows lexicographically,
1612
that is, compare the first elements, if equal compare the second
1613
elements, and so on. Formerly they expanded to an AND condition
1614
across all the elements, which was neither standard nor very useful.
1620
HREF="sql-truncate.html"
1635
> to automatically include all tables
1636
that reference the specified table(s) via foreign keys. While
1637
convenient, this is a dangerous tool — use with caution!
1650
HREF="sql-insert.html"
1662
HREF="functions-comparisons.html"
1671
> This operator is similar to equality (<TT
1675
evaluates to true when both left and right operands are
1679
>, and to false when just one is, rather than
1688
> Improve the length output used by <A
1689
HREF="queries-union.html"
1704
> When all corresponding columns are of the same defined length, that
1705
length is used for the result, rather than a generic length.
1711
HREF="functions-matching.html#FUNCTIONS-LIKE"
1717
to work for multi-byte encodings (Tom)
1730
>. Locale-specific regular
1731
expression patterns still do not work in these encodings.
1737
HREF="runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS"
1740
>standard_conforming_strings</TT
1749
> This allows backslash escaping in strings to be disabled,
1754
standards-compliant. The default is <TT
1758
compatibility, but future releases will default this to <TT
1766
> Do not flatten subqueries that contain <TT
1770
functions in their target lists (Jaime Casanova)
1773
> This prevents surprising behavior due to multiple evaluation
1777
> function (such as <CODE
1784
>). It might cause performance
1785
degradation in the presence of functions that are unnecessarily
1794
> Add system views <A
1795
HREF="view-pg-prepared-statements.html"
1798
>pg_prepared_statements</TT
1802
HREF="view-pg-cursors.html"
1808
to show prepared statements and open cursors (Joachim Wieland, Neil)
1811
> These are very useful in pooled connection setups.
1816
> Support portal parameters in <A
1817
HREF="sql-explain.html"
1823
HREF="sql-execute.html"
1831
> This allows, for example, <ACRONYM
1838
work in these commands.
1847
HREF="sql-prepare.html"
1853
are unspecified, infer their types from the content of the
1857
> Protocol-level <TT
1872
two billion (Dhanaraj M)
1883
>E.53.3.4. Object Manipulation Changes</A
1894
HREF="sql-createtableas.html"
1897
>CREATE TABLE AS</TT
1903
> This allows a tablespace to be specified for the new table.
1912
HREF="sql-createtableas.html"
1915
>CREATE TABLE AS</TT
1921
> This allows temporary tables to be truncated or dropped on
1922
transaction commit. The default behavior is for the table
1923
to remain until the session ends.
1930
>INCLUDING CONSTRAINTS</TT
1932
HREF="sql-createtable.html"
1935
>CREATE TABLE LIKE</TT
1941
> This allows easy copying of <TT
1944
> constraints to a new
1950
> Allow the creation of placeholder (shell) <A
1951
HREF="sql-createtype.html"
1953
> (Martijn van Oosterhout)
1956
> A shell type declaration creates a type name, without specifying
1957
any of the details of the type. Making a shell type is useful
1958
because it allows cleaner declaration of the type's input/output
1959
functions, which must exist before the type can be defined <SPAN
1963
>. The syntax is <TT
1977
HREF="sql-createaggregate.html"
1978
>Aggregate functions</A
1980
now support multiple input parameters (Sergey Koposov, Tom)
1985
> Add new aggregate creation <A
1986
HREF="sql-createaggregate.html"
1991
> The new syntax is <TT
2012
naturally supports the new multi-parameter aggregate
2013
functionality. The previous syntax is still supported.
2019
HREF="sql-alterrole.html"
2022
>ALTER ROLE PASSWORD NULL</TT
2025
to remove a previously set role password (Peter)
2037
object types (Andrew)
2043
> operations on non-existent
2044
objects without generating an error.
2050
HREF="sql-drop-owned.html"
2056
to drop all objects owned by a role (Alvaro)
2062
HREF="sql-reassign-owned.html"
2068
> to reassign ownership of all objects owned
2075
> above, facilitate dropping
2082
HREF="sql-grant.html"
2085
>GRANT ON SEQUENCE</TT
2091
> This was added for setting sequence-specific permissions.
2095
> for sequences is still supported
2096
for backward compatibility.
2102
HREF="sql-grant.html"
2108
permission for sequences that allows only <CODE
2125
> permission allows more fine-grained
2126
control over sequence access. Granting <TT
2130
allows users to increment
2131
a sequence, but prevents them from setting the sequence to
2132
an arbitrary value using <CODE
2141
HREF="sql-altertable.html"
2150
> This allows inheritance to be adjusted dynamically, rather than
2151
just at table creation and destruction. This is very valuable
2152
when using inheritance to implement table partitioning.
2158
HREF="sql-comment.html"
2161
objects to be stored globally (Kris Jurka)
2164
> Previously, comments attached to databases were stored in individual
2165
databases, making them ineffective, and there was no provision
2166
at all for comments on roles or tablespaces. This change adds a new
2168
HREF="catalog-pg-shdescription.html"
2171
>pg_shdescription</TT
2174
and stores comments on databases, roles, and tablespaces therein.
2185
>E.53.3.5. Utility Command Changes</A
2192
> Add option to allow indexes to be created without blocking
2193
concurrent writes to the table (Greg Stark, Tom)
2196
> The new syntax is <A
2197
HREF="sql-createindex.html"
2201
INDEX CONCURRENTLY</TT
2203
>. The default behavior is
2204
still to block table modification while a index is being
2211
HREF="functions-admin.html#FUNCTIONS-ADVISORY-LOCKS"
2214
> functionality (Abhijit Menon-Sen, Tom)
2217
> This is a new locking API designed to replace what used to be
2218
in /contrib/userlock. The userlock code is now on pgfoundry.
2224
HREF="sql-copy.html"
2233
> query (Zoltan Boszormenyi, Karel
2240
> to dump arbitrary <ACRONYM
2244
queries. The syntax is <TT
2246
>COPY (SELECT ...) TO</TT
2253
HREF="sql-copy.html"
2259
command return a command tag that includes the number of
2260
rows copied (Volkan YAZICI)
2266
HREF="sql-vacuum.html"
2272
to expire rows without being affected by other concurrent
2276
> operations (Hannu Krossing, Alvaro, Tom)
2282
HREF="app-initdb.html"
2288
detect the operating system locale and set the default
2292
> accordingly (Peter)
2295
> This makes it more likely that the installed
2298
>postgresql.conf</TT
2308
> Reduce number of progress messages displayed by <SPAN
2322
>E.53.3.6. Date/Time Changes</A
2329
> Allow full timezone names in <A
2330
HREF="datatype-datetime.html"
2342
America/New_York'::timestamptz</TT
2348
> Support configurable timezone abbreviations (Joachim Wieland)
2351
> A desired set of timezone abbreviations can be chosen via the
2352
configuration parameter <A
2353
HREF="runtime-config-client.html#GUC-TIMEZONE-ABBREVIATIONS"
2356
>timezone_abbreviations</TT
2364
HREF="view-pg-timezone-abbrevs.html"
2367
>pg_timezone_abbrevs</TT
2371
HREF="view-pg-timezone-names.html"
2374
>pg_timezone_names</TT
2377
views to show supported timezones (Magnus Hagander)
2383
HREF="functions-datetime.html#FUNCTIONS-DATETIME-TABLE"
2386
>clock_timestamp()</CODE
2390
HREF="functions-datetime.html#FUNCTIONS-DATETIME-TABLE"
2393
>statement_timestamp()</CODE
2397
HREF="functions-datetime.html#FUNCTIONS-DATETIME-TABLE"
2400
>transaction_timestamp()</CODE
2408
>clock_timestamp()</CODE
2409
> is the current wall-clock time,
2412
>statement_timestamp()</CODE
2413
> is the time the current
2414
statement arrived at the server, and
2417
>transaction_timestamp()</CODE
2428
HREF="functions-formatting.html"
2434
to print localized month and day names (Euler Taveira de
2441
HREF="functions-formatting.html"
2444
>to_char(time)</CODE
2448
HREF="functions-formatting.html"
2451
>to_char(interval)</CODE
2464
> Intervals and times are treated as 24-hour periods, e.g.
2468
> is considered <ACRONYM
2476
> Add new function <A
2477
HREF="functions-datetime.html#FUNCTIONS-DATETIME-TABLE"
2480
>justify_interval()</CODE
2483
to adjust interval units (Mark Dilger)
2488
> Allow timezone offsets up to 14:59 away from GMT
2491
> Kiribati uses GMT+14, so we'd better accept that.
2496
> Interval computation improvements (Michael Glaesemann, Bruce)
2507
>E.53.3.7. Other Data Type and Function Changes</A
2514
> Allow arrays to contain <TT
2522
> Allow assignment to array elements not contiguous with the existing
2526
> The intervening array positions will be filled with nulls.
2527
This is per SQL standard.
2533
HREF="functions-array.html"
2536
for array-subset comparisons (<TT
2549
> These operators can be indexed for many data types using
2561
> Add convenient arithmetic <A
2562
HREF="functions-net.html#CIDR-INET-OPERATORS-TABLE"
2571
> values (Stephen R. van den
2575
> The new operators are <TT
2620
HREF="functions-aggregate.html#FUNCTIONS-AGGREGATE-STATISTICS-TABLE"
2621
>aggregate functions</A
2623
from SQL:2003 (Neil)
2626
> The new functions are <CODE
2639
>stddev_samp()</CODE
2646
>stddev_samp()</CODE
2647
> are merely renamings of the
2648
existing aggregates <CODE
2655
>. The latter names remain available
2656
for backward compatibility.
2661
> Add SQL:2003 statistical <A
2662
HREF="functions-aggregate.html#FUNCTIONS-AGGREGATE-STATISTICS-TABLE"
2668
> New functions: <CODE
2670
>regr_intercept()</CODE
2716
HREF="sql-createdomain.html"
2719
based on other domains (Tom)
2724
> Properly enforce domain <A
2725
HREF="ddl-constraints.html"
2731
everywhere (Neil, Tom)
2734
> For example, the result of a user-defined function that is
2735
declared to return a domain type is now checked against the
2736
domain's constraints. This closes a significant hole in the domain
2742
> Fix problems with dumping renamed <A
2743
HREF="datatype-numeric.html#DATATYPE-SERIAL"
2752
> The fix is to dump a <TT
2755
> column by explicitly
2759
> and sequence elements,
2760
and reconstructing the <TT
2765
HREF="sql-altersequence.html"
2769
SEQUENCE OWNED BY</TT
2771
> command. This also allows
2775
> column specification.
2780
> Add a server-side sleep function <A
2781
HREF="functions-datetime.html#FUNCTIONS-DATETIME-DELAY"
2792
> Add all comparison operators for the <A
2793
HREF="datatype-oid.html"
2799
type (Mark Kirkwood, Greg Stark, Tom)
2810
>E.53.3.8. PL/pgSQL Server-Side Language Changes</A
2822
>TG_table_schema</TT
2824
trigger parameters (Andrew)
2830
> is now deprecated. Comparable
2831
changes have been made in the trigger parameters for the other
2840
> statements to return values to scalars
2841
as well as records and row types (Pavel Stehule)
2853
to control the iteration increment (Jaime Casanova)
2862
HREF="plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW"
2874
> mode throws an exception if more or less
2875
than one row is returned by the <TT
2881
>Oracle PL/SQL</SPAN
2893
>E.53.3.9. PL/Perl Server-Side Language Changes</A
2907
trigger parameters (Adam Sjøgren)
2912
> Add prepared queries (Dmitry Karasik)
2920
> trigger data a global variable (Andrew)
2923
> Previously, it was lexical, which caused unexpected sharing
2929
> Run PL/Perl and PL/PerlU in separate interpreters, for security
2933
> In consequence, they can no longer share data nor loaded modules.
2934
Also, if Perl has not been compiled with the requisite flags to
2935
allow multiple interpreters, only one of these languages can be used
2936
in any given backend process.
2947
>E.53.3.10. PL/Python Server-Side Language Changes</A
2954
> Named parameters are passed as ordinary variables, as well as in the
2958
> array (Sven Suursoho)
2970
trigger parameters (Andrew)
2975
> Allow returning of composite types and result sets (Sven Suursoho)
2980
> Return result-set as <TT
2995
> Allow functions to return <TT
3003
> Python 2.5 is now supported (Tom)
3015
HREF="app-psql.html"
3027
> Add new command <TT
3031
password with client-side password encryption (Peter)
3039
> to connect to a new host and port
3040
number (David, Volkan YAZICI)
3045
> Add tablespace display to <TT
3056
> slash command to include the argument
3057
names and modes (<TT
3064
the function (David Fetter)
3069
> Support binary <TT
3077
> Add option to run the entire session in a single transaction
3086
>--single-transaction</TT
3092
> Support for automatically retrieving <TT
3096
results in batches using a cursor (Chris Mair)
3099
> This is enabled using <TT
3109
feature allows large result sets to be retrieved in
3113
> without attempting to buffer the entire
3114
result set in memory.
3119
> Make multi-line values align in the proper column
3120
(Martijn van Oosterhout)
3123
> Field values containing newlines are now displayed in a more
3129
> Save multi-line statements as a single entry, rather than
3130
one line at a time (Sergey E. Koposov)
3133
> This makes up-arrow recall of queries easier. (This is
3134
not available on Windows, because that platform uses the native
3135
command-line editing present in the operating system.)
3140
> Make the line counter 64-bit so it can handle files with more
3141
than two billion lines (David Fetter)
3146
> Report both the returned data and the command status tag
3169
HREF="app-pgdump.html"
3181
> Allow complex selection of objects to be included or excluded
3185
> (Greg Sabino Mullane)
3191
> now supports multiple <TT
3198
> (table) options, and adds
3205
> options to exclude objects.
3206
Also, the arguments of these switches can now be wild-card expressions
3207
rather than single object names, for example
3211
>, and a schema can be part of
3218
> switch, for example
3221
>-t schema1.table1</TT
3228
HREF="app-pgrestore.html"
3236
>--no-data-for-failed-tables</TT
3237
> option to suppress
3238
loading data if table creation failed (i.e., the table already
3239
exists) (Martin Pitt)
3245
HREF="app-pgrestore.html"
3251
option to run the entire session in a single transaction
3260
>--single-transaction</TT
3286
HREF="libpq-misc.html"
3289
>PQencryptPassword()</CODE
3292
to encrypt passwords (Tom)
3295
> This allows passwords to be sent pre-encrypted for commands
3297
HREF="sql-alterrole.html"
3309
HREF="libpq-threading.html"
3312
>PQisthreadsafe()</CODE
3318
> This allows applications to query the thread-safety status
3325
HREF="libpq-exec.html#LIBPQ-EXEC-MAIN"
3328
>PQdescribePrepared()</CODE
3332
HREF="libpq-exec.html#LIBPQ-EXEC-MAIN"
3335
>PQdescribePortal()</CODE
3338
and related functions to return information about previously
3339
prepared statements and open cursors (Volkan YAZICI)
3345
HREF="libpq-ldap.html"
3352
HREF="libpq-pgservice.html"
3355
>pg_service.conf</TT
3363
> Allow a hostname in <A
3364
HREF="libpq-pgpass.html"
3370
to match the default socket directory (Bruce)
3373
> A blank hostname continues to match any Unix-socket connection,
3374
but this addition allows entries that are specific to one of
3375
several postmasters on the machine.
3400
HREF="sql-show.html"
3406
put its result into a variable (Joachim Wieland)
3412
HREF="sql-copy.html"
3423
> Add regression tests (Joachim Wieland, Michael)
3428
> Major source code cleanups (Joachim Wieland, Michael)
3452
> to compile the <SPAN
3456
server (Magnus, Hiroshi Saito)
3464
> support for utility commands and <A
3465
HREF="app-pgdump.html"
3476
> Add support for Windows code pages <TT
3495
> Drop privileges on startup, so that the server can be started from
3496
an administrative account (Magnus)
3501
> Stability fixes (Qingqing Zhou, Magnus)
3506
> Add native semaphore implementation (Qingqing Zhou)
3509
> The previous code mimicked SysV semaphores.
3520
>E.53.3.16. Source Code Changes</A
3534
Inverted iNdex) index access method (Teodor, Oleg)
3539
> Remove R-tree indexing (Tom)
3542
> Rtree has been re-implemented using <A
3549
differences, this means that rtree indexes now have support
3550
for crash recovery via write-ahead logging (WAL).
3555
> Reduce libraries needlessly linked into the backend (Martijn
3556
van Oosterhout, Tom)
3561
> Add a configure flag to allow libedit to be preferred over
3569
HREF="install-procedure.html#CONFIGURE"
3572
>--with-libedit-preferred</TT
3579
> Allow installation into directories containing spaces
3585
> Improve ability to relocate installation directories (Tom)
3590
> Add support for <SPAN
3592
>Solaris x86_64</SPAN
3597
> compiler (Pierre Girard, Theo
3598
Schlossnagle, Bruce)
3606
> support (Robert Lor)
3614
> for use by third-party
3615
applications wanting to test the backend version in C using >
3616
and < comparisons (Bruce)
3624
> as independent from <TT
3636
> define to report locking
3642
> Emit warnings for unknown <SPAN
3646
(Martijn van Oosterhout)
3651
> Add server support for <SPAN
3655
that can be used for add-on tasks such as debugging and performance
3656
measurement (Korry Douglas)
3659
> This consists of two features: a table of <SPAN
3663
> that allows separately-loaded shared libraries to
3664
communicate, and a new configuration parameter <A
3665
HREF="runtime-config-client.html#GUC-LOCAL-PRELOAD-LIBRARIES"
3668
>local_preload_libraries</TT
3671
that allows libraries to be loaded into specific sessions without
3672
explicit cooperation from the client application. This allows
3673
external add-ons to implement features such as a PL/pgSQL debugger.
3678
> Rename existing configuration parameter
3681
>preload_libraries</TT
3683
HREF="runtime-config-resource.html#GUC-SHARED-PRELOAD-LIBRARIES"
3686
>shared_preload_libraries</TT
3692
> This was done for clarity in comparison to
3695
>local_preload_libraries</TT
3701
> Add new configuration parameter <A
3702
HREF="runtime-config-preset.html#GUC-SERVER-VERSION-NUM"
3705
>server_version_num</TT
3708
(Greg Sabino Mullane)
3718
>. This allows applications to
3719
make version checks more easily.
3724
> Add a configuration parameter <A
3725
HREF="runtime-config-query.html#GUC-SEQ-PAGE-COST"
3736
> Re-implement the <A
3739
> script as a C program
3745
> Allow loadable modules to allocate shared memory and
3746
lightweight locks (Marc Munro)
3751
> Add automatic initialization and finalization of dynamically
3752
loaded libraries (Ralf Engelschall, Tom)
3756
HREF="xfunc-c.html#XFUNC-C-DYNLOAD"
3766
called if the library defines such symbols. Hence we no
3767
longer need to specify an initialization function in
3770
>shared_preload_libraries</TT
3771
>; we can assume that
3772
the library used the <CODE
3782
HREF="xfunc-c.html#XFUNC-C-DYNLOAD"
3785
>PG_MODULE_MAGIC</TT
3788
header block to all shared object files (Martijn van
3792
> The magic block prevents version mismatches between loadable object
3798
> Add shared library support for AIX (Laurenz Albe)
3804
HREF="datatype-xml.html"
3810
documentation section (Bruce)
3821
>E.53.3.17. Contrib Changes</A
3828
> Major tsearch2 improvements (Oleg, Teodor)
3835
> multibyte encoding support, including <ACRONYM
3843
> query rewriting support
3848
> improved ranking functions
3853
> thesaurus dictionary support
3858
> Ispell dictionaries now recognize <SPAN
3862
format, used by <SPAN
3880
> Add adminpack module containing <SPAN
3887
> These functions provide additional file system access
3888
routines not present in the default <SPAN
3897
> Add sslinfo module (Victor Wagner)
3900
> Reports information about the current connection's <ACRONYM
3909
> Add pgrowlocks module (Tatsuo)
3912
> This shows row locking information for a specified table.
3917
> Add hstore module (Oleg, Teodor)
3922
> Add isn module, replacing isbn_issn (Jeremy Kronuz)
3925
> This new implementation supports <ACRONYM
3947
> Add index information functions to pgstattuple (ITAGAKI Takahiro,
3953
> Add pg_freespacemap module to display free space map information
3959
> pgcrypto now has all planned functionality (Marko Kreen)
3966
> Include iMath library in pgcrypto to have the public-key encryption
3967
functions always available.
3972
> Add SHA224 algorithm that was missing in OpenBSD code.
3977
> Activate builtin code for SHA224/256/384/512 hashes on older
3978
OpenSSL to have those algorithms always available.
3983
> New function gen_random_bytes() that returns cryptographically strong
3984
randomness. Useful for generating encryption keys.
3989
> Remove digest_exists(), hmac_exists() and cipher_exists() functions.
3996
> Improvements to cube module (Joshua Reich)
3999
> New functions are <CODE
4001
>cube(float[])</CODE
4005
>cube(float[], float[])</CODE
4009
>cube_subset(cube, int4[])</CODE
4015
> Add async query capability to dblink (Kai Londenberg,
4021
> New operators for array-subset comparisons (<TT
4034
> Various contrib packages already had these operators for their
4035
datatypes, but the naming wasn't consistent. We have now added
4036
consistently named array-subset comparison operators to the core code
4037
and all the contrib packages that have such functionality.
4038
(The old names remain available, but are deprecated.)
4043
> Add uninstall scripts for all contrib packages that have install
4044
scripts (David, Josh Drake)
4056
SUMMARY="Footer navigation table"
4067
HREF="release-8-2-1.html"
4085
HREF="release-8-1-23.html"
b'\\ No newline at end of file'