47
47
* Change the default value of standard_conforming_strings to on
49
This removes a long-standing incompatibility with the SQL standard;
49
By default, backslashes are now ordinary characters in string
50
literals, not escape characters. This change removes a
51
long-standing incompatibility with the SQL standard.
50
52
escape_string_warning has produced warnings about this usage for
51
years. E'' strings are the proper way to embed escapes in strings
52
and are unaffected by this change.
53
years. E'' strings are the proper way to embed backslash escapes in
54
strings and are unaffected by this change.
53
55
__________________________________________________________________
57
59
* Disallow function-style and attribute-style data type casts for
58
60
composite types (Tom Lane)
59
61
For example, disallow composite_value.text and
60
text(composite_value). The CAST and :: syntaxes are still available
61
for use when a cast of an entire composite value is actually
62
text(composite_value). Unintentional uses of this syntax have
63
frequently resulted in bug reports; although it was not a bug, it
64
seems better to go back to rejecting such expressions. The CAST and
65
:: syntaxes are still available for use when a cast of an entire
66
composite value is actually intended.
63
67
* Tighten casting checks for domains based on arrays (Tom Lane)
64
68
When a domain is based on an array type, it is allowed to "look
65
69
through" the domain type to access the array elements, including
68
72
UPDATE ... SET domaincol[5] = ..., will now result in rechecking
69
73
the domain type's constraints, whereas before the checks were
71
Also, such a domain type is no longer allowed to match an anyarray
72
parameter of a polymorphic function, except by explicitly
73
downcasting it to the base array type.
74
75
__________________________________________________________________
78
79
* Change string_to_array() to return an empty array for a zero-length
79
80
string (Pavel Stehule)
80
Previously this returned NULL.
81
Previously this returned a null value.
81
82
* Change string_to_array() so a NULL separator splits the string into
82
83
characters (Pavel Stehule)
83
Previously this returned NULL.
84
Previously this returned a null value.
84
85
__________________________________________________________________
86
87
Object Modification
110
111
by the attached exception block (Piyush Newe)
111
112
Previously RAISE in a code block was always scoped to an attached
112
113
exception block, so it was uncatchable at the same scope.
113
* Adjust PL/pgSQL's error line reporting code to be consistent with
114
* Adjust PL/pgSQL's error line numbering code to be consistent with
114
115
other PLs (Pavel Stehule)
115
116
Previously, PL/pgSQL would ignore (not count) an empty line at the
116
117
start of the function body. Since this was inconsistent with all
117
118
other languages, the special case was removed.
119
* Make PL/pgSQL complain about conflicting IN and OUT parameter names
121
Formerly, the collision was not detected, and the name would just
122
silently refer to only the OUT parameter.
123
* Type modifiers of PL/pgSQL variables are now visible to the SQL
125
A type modifier (such as a varchar length limit) attached to a
126
PL/pgSQL variable was formerly enforced during assignments, but was
127
ignored for all other purposes. Such variables will now behave more
128
like table columns declared with the same modifier. This is not
129
expected to make any visible difference in most cases, but it could
130
result in subtle changes for some SQL commands issued by PL/pgSQL
118
132
__________________________________________________________________
120
134
Other Incompatibilities
122
* Have pg_stat_reset() reset all database-level statistics (Tomas
136
* Make pg_stat_reset() reset all database-level statistics (Tomas
124
138
Some pg_stat_database counters were not being reset.
125
139
* Fix some information_schema.triggers column names to match the new
139
* Allow unlogged tables using UNLOGGED during "CREATE TABLE" (Robert
141
These tables are optimized for performance but are cleared in case
153
* Support unlogged tables using the UNLOGGED option in "CREATE TABLE"
155
Such tables provide better update performance than regular tables,
156
but are not crash-safe: their contents are automatically cleared in
157
case of a server crash. Their contents do not propagate to
158
replication slaves, either.
143
159
* Allow FULL OUTER JOIN to be implemented as a hash join, and allow
144
160
either side of a LEFT OUTER JOIN or RIGHT OUTER JOIN to be hashed
160
* Allow inheritance table queries to return meaningfully-sorted
161
results (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom Lane)
162
This allows optimization of ORDER BY and LIMIT clauses in
163
inheritance table queries.
164
* Allow optimizations of MIN/MAX for inheritance table queries (Tom
166
* Support hashing array values (Tom Lane)
167
This provides additional query optimization possibilities.
176
* Allow inheritance table scans to return meaningfully-sorted results
177
(Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom Lane)
178
This allows better optimization of queries that use ORDER BY,
179
LIMIT, or MIN/MAX with inherited tables.
168
180
* Improve GIN index scan cost estimation (Teodor Sigaev)
181
* Improve cost estimation for aggregates and window functions (Tom
169
183
__________________________________________________________________
173
187
* Support host names and host suffixes (e.g. .example.com) in
174
188
"pg_hba.conf" (Peter Eisentraut)
175
189
Previously only host IP addresses and CIDR values were supported.
176
* Support the keyword all in the host column of "pg_hba.conf" (Peter
190
* Support the key word all in the host column of "pg_hba.conf" (Peter
178
192
Previously people used 0.0.0.0/0 or ::/0 for this.
193
* Reject local lines in "pg_hba.conf" on platforms that don't support
194
Unix-socket connections (Magnus Hagander)
195
Formerly, such lines were silently ignored, which could be
196
surprising. This makes the behavior more like other unsupported
179
198
* Allow GSSAPI to be used to authenticate to servers via SSPI
180
199
(Christian Ullrich)
181
200
Specifically this allows Unix-based GSSAPI clients to do SSPI
182
201
authentication with Windows servers.
202
* ident authentication over local sockets is now known as peer
204
The old term is still accepted for backward compatibility.
205
* Rewrite peer authentication to avoid use of credential control
207
This change makes the peer authentication code simpler and
208
better-performing. However, it requires the platform to provide the
209
getpeereid function or an equivalent socket operation. So far as is
210
known, the only platform for which peer authentication worked
211
before and now will not is pre-5.0 NetBSD.
183
212
__________________________________________________________________
188
217
is controlled by log_checkpoints (Fujii Masao, Greg Smith)
189
218
New details show WAL file and sync activity.
190
219
* Add log_file_mode which controls the permissions on log files
191
created by the logging_collector (Martin Pihlak)
220
created by the logging collector (Martin Pihlak)
192
221
__________________________________________________________________
194
223
Statistical Views
196
* Add client_hostname field to pg_stat_activity (Peter Eisentraut)
225
* Add client_hostname column to pg_stat_activity (Peter Eisentraut)
197
226
Previously only the client address was reported.
198
227
* Add pg_stat_xact_* statistics functions and views (Joel Jacobson)
199
228
These are like the database-wide statistics counter views, but
202
231
statistics views (Tomas Vondra)
203
232
* Add columns showing the number of vacuum and analyze operations in
204
233
pg_stat_*_tables views (Magnus Hagander)
205
* Add buffers_backend_fsync field to pg_stat_bgwriter (Greg Smith)
206
This new field counts the number of times a backend fsyncs a
234
* Add buffers_backend_fsync column to pg_stat_bgwriter (Greg Smith)
235
This new column counts the number of times a backend fsyncs a
208
237
__________________________________________________________________
234
263
using the streaming replication network connection (Magnus
235
264
Hagander, Heikki Linnakangas)
236
265
This avoids the requirement of manually transferring a file system
237
backup when creating a standby server.
266
backup when setting up a standby server.
267
* Add replication_timeout setting (Fujii Masao, Heikki Linnakangas)
268
Replication connections that are idle for more than the
269
replication_timeout interval will be terminated automatically.
270
Formerly, a failed connection was typically not detected until the
271
TCP timeout elapsed, which is inconveniently long in many
238
273
* Add command-line tool pg_basebackup for creating a new standby
239
274
server or database backup (Magnus Hagander)
240
275
* Add replication permission for roles (Magnus Hagander)
241
This is a read-only permission used for streaming replication and
242
allows non-superusers to initiate replication connections.
276
This is a read-only permission used for streaming replication. It
277
allows a non-superuser role to be used for replication connections.
243
278
Previously only superusers could initiate replication connections;
244
superusers have this permission by default.
245
* ident authentication over local sockets is now known as peer
247
The old term is still accepted for backward compatibility.
279
superusers still have this permission by default.
248
280
__________________________________________________________________
250
282
Replication Monitoring
254
286
This reports the status of all connected standby servers.
255
287
* Add monitoring function pg_last_xact_replay_timestamp() (Fujii
257
This returns the time on the primary that generated the most recent
258
commit or abort record applied on the standby.
289
This returns the time at which the primary generated the most
290
recent commit or abort record applied on the standby.
259
291
__________________________________________________________________
263
* Add variable hot_standby_feedback to enable standbys to postpone
264
cleanup of old row versions on the primary (Simon Riggs)
295
* Add configuration parameter hot_standby_feedback to enable standbys
296
to postpone cleanup of old row versions on the primary (Simon
265
298
This helps avoid cancelling long-running queries on the standby.
266
299
* Add the pg_stat_database_conflicts system view to show queries that
267
300
have been canceled and the reason (Magnus Hagander)
286
319
pg_is_xlog_replay_paused().
287
320
* Add "recovery.conf" setting pause_at_recovery_target to pause
288
321
recovery at target (Simon Riggs)
289
This allows a recovery server to be queried to check if the
322
This allows a recovery server to be queried to check whether the
290
323
recovery point is the one desired.
291
324
* Add the ability to create named restore points using
292
325
pg_create_restore_point() (Jaime Casanova)
293
326
These named restore points can be specified as recovery targets
294
using the new "recovery.conf" setting recovery_target_name
327
using the new "recovery.conf" setting recovery_target_name.
295
328
* Allow standby recovery to switch to a new timeline automatically
296
329
(Heikki Linnakangas)
297
330
Now standby servers scan the archive directory for new timelines
299
* Add restart_after_crash which disables server restart after a
300
backend crash (Robert Haas)
332
* Add restart_after_crash setting which disables automatic server
333
restart after a backend crash (Robert Haas)
301
334
This allows external cluster management software to take control of
302
335
whether servers restart or not.
303
336
* Allow "recovery.conf" to use the same quoting behavior as
323
356
primary key is specified in the GROUP BY clause (Peter Eisentraut)
324
357
Some other database system already allowed this behavior, and
325
358
because of the primary key, the result is unambiguous.
326
* Allow use of the keyword DISTINCT in UNION/INTERSECT/EXCEPT clauses
328
DISTINCT is the default behavior so use of this keyword is
359
* Allow use of the key word DISTINCT in UNION/INTERSECT/EXCEPT
361
DISTINCT is the default behavior so use of this key word is
329
362
redundant, but the SQL standard allows it.
330
363
* Fix ordinary queries with rules to use the same snapshot behavior
331
364
as "EXPLAIN ANALYZE" (Marko Tiikkaja)
345
378
Object Manipulation
380
* Add extensions which simplify packaging of additions to PostgreSQL
381
(Dimitri Fontaine, Tom Lane)
382
Extensions are controlled by the new "CREATE"/"ALTER"/"DROP
383
EXTENSION" commands. This replaces ad-hoc methods of grouping
384
objects that are added to a PostgreSQL installation.
347
385
* Add support for foreign tables (Shigeru Hanada, Robert Haas, Jan
348
386
Urbanski, Heikki Linnakangas)
349
387
This allows data stored outside the database to be used like native
361
399
* Add RESTRICT/CASCADE to "ALTER TYPE" operations on typed tables
362
400
(Peter Eisentraut)
363
401
This controls ADD/DROP/ALTER/RENAME ATTRIBUTE cascading behavior.
402
* Support ALTER TABLE name {OF | NOT OF} type (Noah Misch)
403
This syntax allows a standalone table to be made into a typed
404
table, or a typed table to be made standalone.
364
405
* Add support for more object types in "ALTER ... SET SCHEMA"
365
406
commands (Dimitri Fontaine)
366
407
This command is now supported for conversions, operators, operator
367
classes, operator families, text search configurations, and text
368
search dictionaries, text search parsers, and text search
408
classes, operator families, text search configurations, text search
409
dictionaries, text search parsers, and text search templates.
370
410
__________________________________________________________________
372
412
CREATE/ALTER TABLE
374
414
* Add "ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX" (Gurjeet
376
This allows a primary key or unique constraint to be added using an
377
existing unique index, including a concurrently created unique
416
This allows a primary key or unique constraint to be defined using
417
an existing unique index, including a concurrently created unique
379
419
* Allow "ALTER TABLE" to add foreign keys without validation (Simon
381
421
The new option is called NOT VALID, which can later be modified to
382
422
VALIDATED and validation checks performed. Together these allow you
383
to add a Foreign Key with minimal impact on read and write
423
to add a foreign key with minimal impact on read and write
385
425
* Allow "ALTER TABLE ... SET DATA TYPE" to avoid table rewrites in
386
426
appropriate cases (Noah Misch, Robert Haas)
390
430
* Add "CREATE TABLE IF NOT EXISTS" syntax (Robert Haas)
391
431
This allows table creation without causing an error if the table
393
* Fix possible "tuple concurrently updated" error when two server
394
backends attempted to add an inheritance parent to the same table
395
at the same time (Robert Haas)
433
* Fix possible "tuple concurrently updated" error when two backends
434
attempted to add an inheritance child to the same table at the same
396
436
"ALTER TABLE" now takes a stronger lock on the parent table, so
397
437
that both children do not try to update it simultaneously.
398
438
__________________________________________________________________
477
517
* Improve hypotenuse calculations for geometric operators (Paul
479
519
This avoids unnecessary overflows, and may also be more accurate.
520
* Support hashing array values (Tom Lane)
521
This provides additional query optimization possibilities.
522
* Don't treat a composite type as sortable unless all its column
523
types are sortable (Tom Lane)
524
This avoids possible "could not identify a comparison function"
525
failures at runtime, if it is possible to implement the query
526
without sorting. Also, "ANALYZE" won't try to use inappropriate
527
statistics-gathering methods for columns of such composite types.
480
528
__________________________________________________________________
484
532
* Add support for casting between money and numeric (Andy Balholm)
533
* Add support for casting from int4 and int8 to numeric (Joey Adams)
485
534
* Allow casting a table's row type to the table's supertype if it's a
486
535
typed table (Peter Eisentraut)
487
536
This is analogous to the existing facility that allows casting a
493
542
* Add XML function XMLEXISTS and xpath_exists() functions (Mike
495
These are used for xpath matching.
544
These are used for XPath matching.
496
545
* Add XML functions xml_is_well_formed(),
497
546
xml_is_well_formed_document(), xml_is_well_formed_content() (Mike
515
564
* Add a single-parameter version of function pg_read_file() to read
516
565
an entire file (Dimitri Fontaine, Itagaki Takahiro)
517
566
* Add three-parameter forms of array_to_string() and
518
string_to_array() for NULL processing control (Pavel Stehule)
567
string_to_array() for null value processing control (Pavel Stehule)
519
568
__________________________________________________________________
521
570
Object Information Functions
523
572
* Add the pg_describe_object() function (Alvaro Herrera)
524
573
This function is used to obtain a human-readable string describing
525
574
an object, based on the pg_class OID, object OID, and sub-object
526
OID. It can be used to help interpret the contents of pg_depend.
575
ID. It can be used to help interpret the contents of pg_depend.
527
576
* Update comments for built-in operators and their underlying
528
577
functions (Tom Lane)
578
Functions that are meant to be used via an associated operator are
579
now commented as such.
529
580
* Add variable quote_all_identifiers to force the quoting of all
530
581
identifiers in "EXPLAIN" and in system catalog functions like
531
582
pg_get_viewdef() (Robert Haas)
532
583
This makes exporting schemas to tools and other databases with
533
584
different quoting rules easier.
534
* Add fields to the information_schema.sequences system view (Peter
585
* Add columns to the information_schema.sequences system view (Peter
536
Previously, though the view existed, all of these view fields were
587
Previously, though the view existed, the columns about the sequence
588
parameters were unimplemented.
538
589
* Allow public as a pseudo-role name in has_table_privilege() and
539
590
related functions (Alvaro Herrera)
540
591
This allows checking for public permissions.
543
594
Function and Trigger Creation
545
* Allow INSTEAD OF triggers on views (Dean Rasheed)
596
* Support INSTEAD OF triggers on views (Dean Rasheed)
546
597
This feature can be used to implement fully updatable views.
547
598
* Minimize lock levels for "CREATE TRIGGER" and many "ALTER TABLE"
548
599
and "CREATE RULE" operations (Simon Riggs)
592
643
* Add PL/Python functions for quoting strings (Jan Urbanski)
593
644
The functions are plpy.quote_ident, plpy.quote_literal, and
594
645
plpy.quote_nullable.
646
* Add traceback information to PL/Python errors (Jan Urbanski)
595
647
* Report PL/Python errors from iterators with PLy_elog (Jan Urbanski)
596
* plpy.Fatal now raises FATAL, rather than ERROR (Jan Urbanski)
597
The old behavior was incorrect.
598
* Overhaul of PL/Python (Jan Urbanski)
599
This includes exception support for Python 3. **More detail?
648
* Fix exception handling with Python 3 (Jan Urbanski)
649
Exception classes were previously not available in plpy under
600
651
__________________________________________________________________
602
653
Client Applications
610
* Add the \conninfo command to psql, to show current connection
611
information (David Christensen)
661
* Add psql command \conninfo to show current connection information
612
663
* Add psql command \sf to show a function's definition (Pavel
614
665
* Add psql command \dL to list languages (Fernando Ike)
615
* Add system table "S" option to psql \dn (schemas) (Tom Lane)
666
* Add "S" ("system") option to psql's \dn (list schemas) command (Tom
616
668
\dn without S now suppresses system schemas.
617
669
* Allow psql's \e and \ef commands to accept a line number to be used
618
670
to position the cursor in the editor (Pavel Stehule)
619
This is passed to the editor using the EDITOR_LINENUMBER_SWITCH
620
environment variable.
671
This is passed to the editor according to the
672
EDITOR_LINENUMBER_SWITCH psql variable.
621
673
* Have psql set the client encoding from the operating system locale
622
674
by default (Heikki Linnakangas)
623
675
This only happens if the PGCLIENTENCODING environment variable is
625
* Make psql distinguish between unique indices and unique constraints
677
* Make \d distinguish between unique indexes and unique constraints
626
678
(Josh Kupershmidt)
679
* Make \dt+ report pg_table_size instead of pg_relation_size when
680
talking to 9.0 or later servers (Bernd Helmle)
681
This is a more useful measure of table size, but note that it is
682
not identical to what was previously reported in the same display.
627
683
* Additional tab completion support (Itagaki Takahiro, Pavel Stehule,
628
684
Andrey Popp, Christoph Berg, David Fetter, Josh Kupershmidt)
629
685
__________________________________________________________________
643
699
not running (Bruce Momjian)
644
700
Previously this could happen if the server was running but pg_ctl
645
701
could not authenticate.
646
* Improve pg_ctl start's "wait" ("-w") mode to handle non-standard
647
port numbers, non-standard Unix-domain socket locations, permission
648
problems, and stale postmaster lock files (Bruce Momjian)
702
* Improve pg_ctl start's "wait" ("-w") option (Bruce Momjian, Tom
704
The wait mode is now significantly more robust. It will not get
705
confused by non-default postmaster port numbers, non-default
706
Unix-domain socket locations, permission problems, or stale
707
postmaster lock files.
649
708
* Add promote option to pg_ctl to switch a standby server to primary
651
710
__________________________________________________________________
662
721
(Magnus Hagander)
663
722
libpq already had PQserverVersion() which returns the server
665
* Allow libpq database clients to use Unix-domain sockets to check
666
the user name of the server process using requirepeer (Peter
668
PostgreSQL already allowed servers to determine the client user
669
name via Unix-domain sockets.
724
* Allow libpq database clients to check the user name of the server
725
process using requirepeer when connecting via Unix-domain sockets
727
PostgreSQL already allowed servers to check the client user name
728
when connecting via Unix-domain sockets.
670
729
* Add PQping() and PQpingParams() to libpq (Bruce Momjian, Tom Lane)
671
The allow detection of the server's status without creating a new
730
These functions allow detection of the server's status without
731
trying to open a new session.
673
732
__________________________________________________________________
677
* Allow ecpg to accept dynamic cursor names even in WHERE CURRENT OF
736
* Allow ECPG to accept dynamic cursor names even in WHERE CURRENT OF
679
738
__________________________________________________________________
683
* Add extensions which simplify packaging of additions to PostgreSQL
684
(Dimitri Fontaine, Tom Lane)
685
This is controlled by the new "CREATE"/"ALTER"/"DROP EXTENSION "
686
command; this replaces a more manual method of adding features to
742
* Use +Olibmerrno compile flag with HP-UX C compilers that accept it
744
This avoids possible misbehavior of math library calls on recent HP
688
746
__________________________________________________________________
692
750
* Improved parallel make support (Peter Eisentraut)
693
This allows for faster compiles. Also, make "-k" and make "-q" now
694
work properly in a parallel build.
751
This allows for faster compiles. Also, make -k now works more
695
753
* Require GNU make 3.80 or newer (Peter Eisentraut)
696
754
This is necessary because of the parallel-make improvements.
755
* Add make maintainer-check target (Peter Eisentraut)
756
This target performs various source code checks that are not
757
appropriate for either the build or the regression tests.
758
Currently: duplicate_oids, SGML syntax and tabs check, NLS syntax
760
* Support make check in "contrib" (Peter Eisentraut)
761
Formerly only make installcheck worked, but now there is support
762
for testing in a temporary installation. The top-level make
763
check-world target now includes testing "contrib" this way.
697
764
__________________________________________________________________
705
772
minidumps can now be generated by non-debug Windows binaries and
706
773
analyzed by standard debugging tools.
707
* Enable building with the Mingw64 compiler (Andrew Dunstan)
774
* Enable building with the MinGW64 compiler (Andrew Dunstan)
708
775
This allows building 64-bit Windows binaries even on non-Windows
709
platforms with cross-compiling.
776
platforms via cross-compiling.
710
777
__________________________________________________________________
781
* Revise the API for GUC variable assign hooks (Tom Lane)
782
The previous functions of assign hooks are now split between check
783
hooks and assign hooks, where the former can fail but the latter
784
shouldn't. This change will impact add-on modules that define
785
custom GUC parameters.
714
786
* Add latches to the source code to wait for events (Heikki
716
788
* Centralize data modification permissions-checking logic (KaiGai
718
* Add missing get_{object}_oid() functions, for consistency (Robert
790
* Add missing get_object_oid() functions, for consistency (Robert
720
* Improve ability to use C++ compilers for backend compiles by
721
removing conflicting keywords (Tom Lane)
792
* Improve ability to use C++ compilers for compiling add-on modules
793
by removing conflicting key words (Tom Lane)
722
794
* Add support for DragonFly BSD (Rumko)
723
795
* Expose quote_literal_cstr() for backend use (Robert Haas)
724
796
* Run regression tests in the default encoding (Peter Eisentraut)
744
* Modify "/contrib" modules and stored procedure languages to install
816
* Modify "contrib" modules and stored procedure languages to install
745
817
via the new extension mechanism (Tom Lane, Dimitri Fontaine)
746
This replaces a more manual method of installation.
747
818
* Add "contrib/file_fdw" foreign-data wrapper (Shigeru Hanada)
748
819
Foreign tables using this foreign data wrapper can read flat files
749
820
in a manner very similar to "COPY".
751
822
"contrib/btree_gist" (Teodor Sigaev)
752
823
* Add "contrib/btree_gist" support for searching on not-equals (Jeff
754
* Allow "contrib/fuzzystrmatch"'s levenshtein() function handle
755
multi-byte characters (Alexander Korotkov)
825
* Fix "contrib/fuzzystrmatch"'s levenshtein() function to handle
826
multibyte characters (Alexander Korotkov)
756
827
* Add ssl_cipher() and ssl_version() functions to "contrib/sslinfo"
758
829
* Fix "contrib/intarray" and "contrib/hstore" to give consistent
759
830
results with indexed empty arrays (Tom Lane)
760
831
Previously an empty-array query that used an index might return
761
832
different results from one that used a sequential scan.
762
* Allow "contrib/intarray" to work properly on multi-dimensional
833
* Allow "contrib/intarray" to work properly on multidimensional
763
834
arrays (Tom Lane)
764
835
* In "contrib/intarray", avoid errors complaining about the presence
765
836
of nulls in cases where no nulls are actually present (Tom Lane)
821
892
* Add documentation for exit_on_error (Robert Haas)
822
893
This parameter causes sessions to exit on any error.
823
894
* Add documentation for pg_options_to_table() (Josh Berkus)
824
This parameter shows table storage options.
825
* Document that it is possible to access all composite fields using
826
(compositeval).* syntax (Peter Eisentraut)
895
This function shows table storage options in a readable form.
896
* Document that it is possible to access all composite type fields
897
using (compositeval).* syntax (Peter Eisentraut)
827
898
* Document that translate() removes characters in from that don't
828
899
have a corresponding to character (Josh Kupershmidt)
829
900
* Merge docs for "CREATE CONSTRAINT TRIGGER" and "CREATE TRIGGER"