Release 11Release date:2018-??-?? (CURRENT AS OF 2018-05-01)Overview
Major enhancements in PostgreSQL 11 include:
Major improvements to partitioning:
Partitioning by a hash key
UPDATE statements that change a partition key
now move affected rows to the appropriate partitions
Improved SELECT query performance due to
enhanced partition elimination during query processing and
execution
Support for PRIMARY KEY, FOREIGN
KEY, indexes, and triggers on partitioned tables
Improvements to parallelism:
Parallelized hash joins
Parallelized CREATE INDEX for B-tree indexes
Parallelized CREATE TABLE .. AS,
CREATE MATERIALIZED VIEW, and certain
queries using UNION
SQL stored procedures, with support for embedded transactions
JIT compilation of some SQL code, including support for fast evaluation
of expressions
Window functions now support all options shown in the SQL:2011
standard, including RANGE distance
PRECEDING/FOLLOWING, GROUPS mode, and
frame exclusion options
Many other useful performance improvements, including making
ALTER TABLE .. ADD COLUMN with a
non-null column default faster
The above items are explained in more detail in the sections below.
Migration to Version 11
A dump/restore using , or use of , is required for those wishing to migrate data
from any previous release.
Version 11 contains a number of changes that may affect compatibility
with previous releases. Observe the following incompatibilities:
Have pg_dump
dump all aspects of a database (Haribabu Kommi)
Previously database attributes like
GRANT/REVOKE permissions and
ALTER DATABASE SET and ALTER ROLE IN
DATABASE SET variable settings were only dumped by pg_dumpall.
Now pg_dump --create and
pg_restore --create will restore all
database aspects. pg_dumpall -g will
now only output role and tablespace-related attributes.
pg_dumpall's output (without
) is unchanged.
pg_dump and
pg_restore, without
, no longer dump/restore database comments
and security labels.
pg_dumpall --clean now restores the "postgres"
and "template1" databases with the original locale and encoding
settings.
A restore of pg_dumpall will now create
databases with their original locale and encoding, and will fail if
the creation fails. Previously CREATE DATABASE
would be dumped without such specifications if the database locale
and encoding matched the old cluster's defaults.
DID I GET EVERYTHING?
Correct information schema column tables.table_type
to return FOREIGN instead of FOREIGN
TABLE (Peter Eisentraut)
This new output matches the SQL standard.
Change the ps process display
labels for background workers to match the pg_stat_activity.backend_type
labels (Peter Eisentraut)
Prevent to_number()
from consuming characters when the template separator does not
match (Oliver Ford)
Specifically, SELECT to_number('1234', '9,999')
used to return 134. It will now
return 1234. L and
TH now only consume characters that are not
digits, positive/negative signs, decimal points, and commas.
Fix to_date(),
to_number(), and
to_timestamp() to skip a character for each
template character (Tom Lane)
Previously _bytes_ were skipped.
Adjust the handling of backslashes inside double-quotes in
template strings for to_char(),
to_number(), and
to_timestamp().
Such a backslash now escapes the character after it, particularly
a double-quote or another backslash.
Have libpq's PQhost()
always return the actual connected host (Haribabu Kommi)
Previously PQhost() often returned the
supplied host parameters, which could contain several hosts.
It will now also return the host's IP address if the host name was
not supplied. The same is true of PQport(),
which now returns the actual port number, not the multiple supplied
port numbers.
In the Extended Query
Protocol, have statement_timeout
apply to each Execute message, not to all commands before Sync
(Tatsuo Ishii, Andres Freund)
Remove relhaspkey column from system
table pg_class (Peter Eisentraut)
Applications needing to check for a primary key should consult
pg_index.
Replace system table pg_proc's
proisagg and
proiswindow with
prokind (Peter Eisentraut)
This new column more clearly identifies functions, procedures,
aggregates, and window functions.
Cause large object permission checks
to happen on large object open, lo_open(), not
read/write (Tom Lane, Michael Paquier)
Remove deprecated contrib/adminpack functions
pg_file_read(),
pg_file_length(), and
pg_logfile_rotate() (Stephen Frost)
These functions are now present by default. Old adminpack
installs will continue to have access to these functions until
they are updated via ALTER EXTENSION ... UPDATE.
Honor the capitalization of double-quoted command options
(Daniel Gustafsson)
Previously index options names like ("FillFactor" = 50) were
automatically lower-cased. This quoted capitalization will now
generate an error.
Remove server variable replacement_sort_tuples
(Peter Geoghegan)
Replacement sorts were determined to be no longer useful.
Remove WITH clause in CREATE
FUNCTION (Michael Paquier)
PostgreSQL has long supported a more
standard-compliant syntax for this capability.
Consistently return NaN for
NaN inputs to power()
on older platforms (Tom Lane, Dang Minh Huong)
Changes
Below you will find a detailed account of the changes between
PostgreSQL 11 and the previous major
release.
ServerPartitioning
Allow faster partition elimination during query processing (Amit
Langote, David Rowley, Dilip Kumar)
This speeds access to partitioned tables with many partitions.
Allow partition elimination during query execution (David Rowley,
Beena Emerson)
Previously partition elimination could only happen at planning
time, meaning many joins and prepared queries could not use
partition elimination.
Allow the creation of partitions based on hashing a key (Amul Sul)
Allow updated rows to automatically move to new partitions based
on the new row contents (Amit Khandekar)
Allow partitioned tables to have a default partition (Jeevan Ladhe,
Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas)
The default partition can store rows that don't match any of the
other defined partitions, and is searched accordingly.
Allow UNIQUE indexes on partitioned tables if
the partition key guarantees uniqueness (Álvaro Herrera,
Amit Langote)
Allow indexes on a partitioned table to be automatically created
in any child partitions (Álvaro Herrera)
The new command ALTER
INDEX ATTACH PARTITION allows indexes to be
attached to partitions. This does not behave as a global index
since the contents are private to each index. WARN WHEN USING
AN EXISTING INDEX?
Allow foreign keys on partitioned tables (Álvaro Herrera)
Allow INSERT, UPDATE, and
COPY on partitioned tables to properly route
rows to foreign partitions (Etsuro Fujita, Amit Langote)
This is supported by postgres_fdw
foreign tables.
Allow FOR EACH ROW triggers on partitioned
tables (Álvaro Herrera)
Creation of a trigger on partitioned tables automatically creates
triggers on all partition tables, and on newly-created ones.
This also allows deferred unique constraints on partitioned tables.
Allow equality joins between partitioned tables with identically
partitioned child tables to join the child tables directly
(Ashutosh Bapat)
This feature is disabled by default
but can be enabled by changing enable_partitionwise_join.
Perform aggregation on each partition, and then merge the results
(Jeevan Chalke, Ashutosh Bapat, Robert Haas)
This feature is disabled by default
but can be enabled by changing enable_partitionwise_aggregate.
Allow postgres_fdw
to push down aggregates to foreign tables that are partitions
(Jeevan Chalke)
Parallel Queries
Allow btree indexes to be built in parallel (Peter Geoghegan,
Rushabh Lathia, Heikki Linnakangas)
Allow hash joins to be performed in parallel using a shared hash
table (Thomas Munro)
Allow UNION to run each
SELECT in parallel if the individual
SELECTs cannot be parallelized (Amit Khandekar,
Robert Haas, Amul Sul)
Allow partition scans to more efficiently use parallel workers
(Amit Khandekar, Robert Haas, Amul Sul)
Allow LIMIT to be passed to parallel workers
(Robert Haas, Tom Lane)
This allows workers to reduce returned results and use targeted
index scans.
Allow single-evaluation queries, e.g. WHERE
clause aggregate queries, and functions in the target list to be
parallelized (Amit Kapila, Robert Haas)
Add server option parallel_leader_participation
to control if the leader executes subplans (Thomas Munro)
The default is enabled, meaning the leader will execute subplans.
Allow parallelization of commands CREATE TABLE
.. AS, SELECT INTO, and
CREATE MATERIALIZED VIEW (Haribabu Kommi)
Improve performance of sequential scans with many parallel workers
(David Rowley)
Add reporting of parallel worker sort activity to
EXPLAIN (Robert Haas, Tom Lane)
Indexes
Allow indexes to INCLUDE columns
that are not part of the unique constraint but are available
for index-only scans (Anastasia Lubennikova, Alexander Korotkov,
Teodor Sigaev)
This is also useful for including columns that don't have btree
support.
Remember the highest btree index page to optimize future
monotonically increasing index additions (Pavan Deolasee, Peter
Geoghegan)
Allow entire hash index pages to be scanned (Ashutosh Sharma)
Previously for each hash index entry, we need to refind the scan
position within the page. This cuts down on lock/unlock traffic.
Add predicate locking for hash, GiST and GIN indexes (Shubham
Barai)
This reduces the likelihood of serialization conflicts. ACCURATE?
Allow heap-only-tuple (HOT) updates for
expression indexes when the values of the expressions are unchanged
(Konstantin Knizhnik)
SP-Gist
Add TEXT prefix operator ^@ which is supported by
SP-GiST (Ildus Kurbangaliev)
This is similar to using LIKE 'word%' with
btree indexes, but is more efficient.
Allow polygons to be indexed with SP-GiST (Nikita Glukhov,
Alexander Korotkov)
Allow SP-GiST to use lossy representation of leaf keys (Teodor Sigaev,
Heikki Linnakangas, Alexander Korotkov, Nikita Glukhov)
Optimizer
Improve the selection of the optimizer statistics'
most-common-values (Jeff Janes, Dean Rasheed)
Previously most-common-values (MCV) were
chosen based on their significance compared to all column
values. Now, MCV are chosen based on their
significance compared to the non-MCV values.
This improves the statistics for uniform (fewer) and non-uniform
(more) distributions.
Improve selectivity estimates for >= and <= when the
constants are not common values (Tom Lane)
Previously such cases used the same selectivity as > and
<, respectively. This change is particularly useful for
BETWEEN with small ranges.
Optimize var = var to var IS NOT NULL where
equivalent (Tom Lane)
This leads to better selectivity estimates.
Improve row count optimizer estimates for EXISTS
and NOT EXISTS queries (Tom Lane)
Add optimizer selectivity costs for HAVING
clauses (Tom Lane)
General Performance
Add Just-In-Time
(JIT) compilation of some parts of query plans
to improve execution speed (Andres Freund)
Allow bitmap scans to perform index-only scans when possible
(Alexander Kuzmenkov)
Update the free space map during vacuum (Claudio Freire)
This allows free space to be reused more quickly.
Allow vacuum to avoid unnecessary index scans (Masahiko Sawada,
Alexander Korotkov)
Improve performance of committing multiple concurrent transactions
(Amit Kapila)
Reduce memory usage for queries using set-returning functions in
their target lists (Andres Freund)
Allow postgres_fdw
to push UPDATEs and DELETEs
using joins to foreign servers (Etsuro Fujita)
Previously only non-join UPDATEs and
DELETEs were pushed.
Monitoring
Show memory usage in log_statement_stats,
log_parser_stats,
log_planner_stats,
log_executor_stats (Justin Pryzby, Peter
Eisentraut)
Add pg_stat_activity.backend_type
now shows the type of background worker (Peter Eisentraut)
Add bgw_type to the background worker
C structure (Peter Eisentraut)
This is displayed to the user in
pg_stat_activity.backend_type
and ps output.
Have log_autovacuum_min_duration
log skipped tables that are concurrently being dropped (Nathan
Bossart)
Information Schema
Add information_schema columns related to table constraints and
triggers (Peter Eisentraut)
Specifically,
table_constraints.enforced,
triggers.action_order,
triggers.action_reference_old_table,
and
triggers.action_reference_new_table.
Authentication
Allow the server to specify more complex LDAP specifications
in search+bind mode (Thomas Munro)
Specifically, ldapsearchfilter allows pattern matching using
combinations of LDAP attributes.
Allow LDAP authentication to use ldaps
(Thomas Munro)
We already supported LDAP over
TLS by using ldaptls=1. This new
TLS LDAP method of encrypted
LDAP is enabled with ldapscheme=ldaps or
ldapurl=ldaps://.
Improve LDAP logging of errors (Thomas Munro)
Permissions
Add default roles which control file system access (Stephen Frost)
Specifically, the new roles are: pg_read_server_files,
pg_write_server_files,
pg_execute_server_program. These roles now also
control who can use COPY and extension file_fdw.
Previously only superusers could use these functions, and that
is still the default behavior.
Allow access to file system functions to be controlled by
GRANT/REVOKE permissions,
rather than superuser checks (Stephen Frost)
Specifically, these functions were modified: pg_ls_dir(),
pg_read_file(),
pg_read_binary_file(),
pg_stat_file().
Use GRANT/REVOKE
to control access to lo_import()
and lo_export() (Michael Paquier, Tom Lane)
Previously, superusers were exclusively granted access to these
functions.
Compile-time option ALLOW_DANGEROUS_LO_FUNCTIONS
has been removed.
Use view owner not session owner when
preventing non-password access to postgres_fdw
tables (Robert Haas)
PostgreSQL only allows superusers to
access postgres_fdw tables without
passwords, e.g. via peer. Previously the
session owner had to be a superuser to allow such access; now
the view owner is checked instead.
Fix invalid locking permission check in SELECT FOR
UPDATE on views (Tom Lane)
Server Configuration
Add server setting ssl_passphrase_command
to allow supplying of the passphrase for SSL
key files (Peter Eisentraut)
Also add ssl_passphrase_command_supports_reload
to specify whether the the SSL configuration
should be reloaded and ssl_passphrase_command
called during a server configuration reload.
Add storage parameter toast_tuple_target
to control the minimum length before TOAST
storage will be considered for new rows (Simon Riggs)
The default TOAST threshold has not been
changed.
Allow server options related to memory and file sizes to be
specified as number of bytes (Beena Emerson)
The new unit is "B". This is in addition to "kB", "MB", "GB"
and "TB".
Write-Ahead Log (WAL)
Allow the WAL file size to be set via initdb
(Beena Emerson)
Previously the 16MB default could only be changed at compile time.
No longer retain WAL that spans two checkpoints
(Simon Riggs)
The retention of WAL records for only one
checkpoint is required.
Fill the unused portion of force-switched WAL
segment files with zeros for improved compressibility (Chapman
Flack)
Base Backup and Streaming Replication
Replicate TRUNCATE activity when using logical
replication (Simon Riggs, Marco Nenciarini, Peter Eisentraut)
Pass prepared transaction information to logical replication
subscribers (Nikhil Sontakke, Stas Kelvich)
Exclude unlogged tables, temporary tables, and
pg_internal.init files from streaming base
backups (David Steele)
There is no need to copy such files.
Allow heap pages checksums to be checked during streaming base
backup (Michael Banck)
Allow replication slots to be advanced programmatically, rather
than be consumed by subscribers (Petr Jelinek)
This allows efficient advancement replication slots when the
contents do not need to be consumed. This is performed by
pg_replication_slot_advance().
Add timeline information to the backup_label
file (Michael Paquier)
Also add a check that the WAL timeline matches
the backup_label file's timeline.
Add host and port connection information to the
pg_stat_wal_receiver system view
(Haribabu Kommi)
Window Functions
Add window function features to complete SQL:2011 compliance
(Oliver Ford, Tom Lane)
Specifically, allow RANGE mode to use
PRECEDING and FOLLOWING to
specify peer groups with values plus or minus the specified offset.
Add GROUPS mode to include plus or minus the
number of peer groups. Frame exclusion syntax was also added.
Utility Commands
Allow ALTER TABLE to add a column with
a non-null default without a table rewrite (Andrew Dunstan,
Serge Rielau)
Allow views to be locked by locking the underlying tables
(Yugo Nagata)
Allow ALTER INDEX to set statistics-gathering
targets for expression indexes (Alexander Korotkov, Adrien Nayrat)
In psql, \d+ now shows the statistics
target for indexes.
Allow multiple tables to be specified in one
VACUUM or ANALYZE command
(Nathan Bossart)
Also, if any table mentioned in VACUUM uses
a column list, then the ANALYZE keyword must be
supplied; previously, ANALYZE was implied in
such cases.
Add parenthesized options syntax to ANALYZE
(Nathan Bossart)
This is similar to the syntax supported by
VACUUM.
Add CREATE AGGREGATE option to specify the
behavior of the aggregate finalization function (Tom Lane)
This is useful for allowing aggregate functions to be optimized and
to work as window functions.
Data Types
Allow the creation of arrays of domains (Tom Lane)
This also allows array_agg() to be used
on domains.
Support domains over composite types (Tom Lane)
Also allow PL/Perl, PL/Python, and PL/Tcl to handle
composite-domain function arguments and results. Also improve
PL/Python domain handling.
Add casts from jsonb scalars to numeric and boolean data types
(Anastasia Lubennikova)
Functions
Add SHA-2 family of hash functions (Peter
Eisentraut)
Specifically, sha224(),
sha256(), sha384(),
sha512() were added.
Add support for 64-bit non-cryptographic hash functions (Robert
Haas, Amul Sul)
Allow to_char() and
to_timestamp() to specify the time zone's
hours and minutes from UTC (Nikita Glukhov,
Andrew Dunstan)
This is done with format specifications TZH
and TZM.
Improve the speed of aggregate computations (Andres Freund)
Add text search function websearch_to_tsquery()
that supports a query syntax similar to that used by web search
engines (Victor Drobny, Dmitry Ivanov)
Add function json(b)_to_tsvector()
to create a text search query for matching
JSON/JSONB values (Dmitry Dolgov)
Server-Side Languages
Add SQL procedures, which can start and commit their own
transactions (Peter Eisentraut)
They are created with the new CREATE
PROCEDURE command and invoked via CALL. The new
ALTER/DROP ROUTINE commands
allows altering/dropping of procedures, functions, and aggregates.
Add transaction control to PL/pgSQL, PL/Perl, PL/Python, PL/Tcl,
and SPI server-side languages (Peter Eisentraut)
Transaction control is only available to top-transaction-level
CALLs or in nested PL/pgSQL DO and
CALL blocks that only contain other PL/pgSQL
DO and CALL blocks.
ACCURATE?
Add the ability to define PL/pgSQL record types as not null,
constant, or with initial values (Tom Lane)
Allow PL/pgSQL to handle changes to composite types (e.g. record,
row) that happen between the first and later function executions
in the same session (Tom Lane)
Previously such circumstances generated errors.
Add extension jsonb_plpython to
transform JSONB to/from PL/Python types (Anthony
Bykov)
Add extension jsonb_plperl to transform
JSONB to/from PL/Perl types (Anthony Bykov)
Client Interfaces
Change libpq to disable compression by default (Peter Eisentraut)
Compression is already disabled in modern OpenSSL versions and
the libpq setting had no effect in that case.
Add DO CONTINUE action to the ECPG
WHENEVER statement (Vinayak Pokale)
This generates a C 'continue' statement, causing a return to the
top of the contained loop when the specified condition occurs.
Add ecpg mode to enable Oracle Pro*C handling of char arrays.
This mode is enabled with .
Client Applications
Add psql command \gdesc to display
the column names and types of the query output (Pavel Stehule)
Add psql variables to report query
activity and errors (Fabien Coelho)
Specifically, the new variables are ERROR,
SQLSTATE, ROW_COUNT,
LAST_ERROR_MESSAGE, and
LAST_ERROR_SQLSTATE.
Allow psql to test for the existence
of a variable (Fabien Coelho)
Specifically , the syntax :{?variable_name}
allows a variable's existence to be tested in an \if statement.
Add PSQL_PAGER to control
psql's pager (Pavel Stehule)
This allows psql's default pager to
be specified as a separate environment variable from the pager
for other applications. PAGER is still honored
if PSQL_PAGER is not set.
Have psql \d+ always show the partition information (Amit Langote,
Ashutosh Bapat)
Previously partition information would not be displayed for a
partitioned table if it had no partitions. Also indicate which
partitions are themselves partitioned.
Have psql report the proper user name
before the password prompt (Tom Lane)
Previously, combinations of and a user name
embedded in a URI caused incorrect reporting.
Also suppress the user name before the password prompt when
is specified.
Allow quit and exit to
exit psql when used in an empty buffer
(Bruce Momjian)
Also add hints of how to exit when quit and
exit are used alone on a line in a non-empty
buffer. Add a similar hint for help.
Have psql hint at using control-D
when \q is entered alone on a line but ignored
(Bruce Momjian)
For example, \q does not exit when supplied
in character strings.
Improve tab-completion for ALTER INDEX
RESET/SET (Masahiko Sawada)
Add infrastructure to allow psql
to customize tab completion queries based on the server version
(Tom Lane)
Previously tab completion queries could fail.
pgbench
Add pgbench expressions support for
NULLs, booleans, and some functions and operators (Fabien Coelho)
Add \if conditional support to
pgbench (Fabien Coelho)
Allow the use of non-ASCII characters in
pgbench variable names (Fabien Coelho)
Add pgbench option
to control the initialization steps
performed (Masahiko Sawada)
Add an approximated Zipfian-distributed random generator to
pgbench (Alik Khilazhev)
Allow the random seed to be set in
pgbench (Fabien Coelho)
Allow pgbench to do exponentiation
with pow() and power()
(Raúl Marín Rodríguez)
Add hashing functions to pgbench
(Ildar Musin)
Make pgbench statistics more
accurate when using and
(Fabien Coelho)
Server Applications
Add an option to pg_basebackup
that creates a named replication slot (Michael Banck)
The option creates
the named replication slot ()
when the WAL streaming method
() is used.
IS IT CLEAR FROM THE DOCS THAT THE REPLICATION SLOT IS NOT
TEMPORARY?
Allow initdb
to set group read access to the data directory (David Steele)
This is accomplished with the initdb
flag. Administrators
can also set group permissions on the empty data
directory before running initdb. Server variable data_directory_mode
allows reading of data directory group permissions.
Add pg_verify_checksums
tool to verify database checksums while offline (Magnus Hagander)
Allow pg_resetwal
to change the WAL segment size via
(Nathan Bossart)
Add long options to pg_resetwal
and pg_controldata (Nathan Bossart,
Peter Eisentraut)
Add pg_receivewal
option to prevent synchronous
WAL writes, for testing (Michael Paquier)
Add pg_receivewal option
to specify when WAL
receiving should stop (Michael Paquier)
Allow pg_ctl
to send the SIGKILL signal to processes
(Andres Freund)
This was originally unsupported due to concerns over its misuse.
Reduce the number of files copied by pg_rewind
(Michael Paquier)
Prevent pg_rewind from running as
root (Michael Paquier)
pg_dump,
pg_dumpall,
pg_restore
Add pg_dumpall option
to control encoding (Michael Paquier)
pg_dump already had this option.
Add pg_dump option
to force loading of
data into the partition's root table, rather than the original
partitions
(Rushabh Lathia)
This is useful if the system to be loaded has different collation
definitions or endianness, requiring the rows to be stored in
different partitions.
Add an option to suppress dumping and restoring comments
(Robins Tharakan)
The new pg_dump,
pg_dumpall, and
pg_restore option is
.
Source Code
Add support for large pages on Windows
(Takayuki Tsunakawa, Thomas Munro)
This is controlled by the huge_pages configuration
parameter.
Add support for ARMv8 hardware
CRC calculations (Yuqi Gu, Heikki
Linnakangas, Thomas Munro)
Convert documentation to DocBook XML (Peter
Eisentraut, Alexander Lakhin, Jürgen Purtz)
The file names still use an sgml extension
for compatibility with back branches.
Add ability to use channel binding when using SCRAM
authentication (Michael Paquier)
While SCRAM always prevents the
replay of transmitted hashed passwords in a later session,
SCRAM with channel binding can also prevent
man-in-the-middle attacks. However, since there is no way
to force channel binding in libpq,
the feature currently does not prevent man-in-the-middle
attacks when using libpq and interfaces built using it. It is
expected that future versions of libpq and interfaces not built
using libpq, e.g. JDBC, will allow this capability. The libpq
options to control the optional channel binding type are
and .
Overhaul the way system tables are defined for bootstrap use
(John Naylor)
Allow background workers to attach to databases that normally
disallow connections (Magnus Hagander)
Speed up lookups of built-in function names matching OIDs (Andres
Freund)
The previous binary search now uses a lookup array.
Speed up construction of query results (Andres Freund)
Improve access speed to system caches (Andres Freund)
Add a generational memory allocator which is optimized for serial
allocation/deallocation (Tomas Vondra)
This reduces memory usage for logical decoding.
Make the computation of system column
pg_class.reltuples
consistent (Tomas Vondra)
Update to use perltidy version
20170521 (Tom Lane)
Additional Modules
Allow extension pg_prewarm
to restore the previous shared buffer contents on startup (Mithun
Cy, Robert Haas)
This is accomplished by having
pg_prewarm store the shared buffer
relation/offset values to disk occasionally during server operation
and shutdown.
Add pgtrgm
function strict_word_similarity() to compute
the similarity of whole words (Alexander Korotkov)
The function word_similarity() already
existed for this purpose, but it was designed to find similar
parts of words, while strict_word_similarity()
computes the similarity to whole words.
Allow creation of indexes on citext extension
columns that can be used by LIKE comparisons
(Alexey Chernyshov)
Specifically, indexes must be created using the
citext_pattern_ops operator class.
Allow btree_gin
to index bool, bpchar, name
and uuid data types (Matheus Oliveira)
Allow cube
and seg
extensions using GiST indexes to perform index-only scans
(Andrey Borodin)
Allow retrieval of negative cube coordinates using the ~>
operator (Alexander Korotkov)
This is useful for KNN-GiST searches. HOW?
Add Vietnamese letter detection to the unaccent
extension (Dang Minh Huong, Michael Paquier)
Enhance amcheck
to check that each heap tuple has an index entry (Peter Geoghegan)
Have adminpack
use the new default file system access roles (Stephen Frost)
Previously only superusers could call adminpack functions;
now role permissions are checked.
Increase pg_stat_statement's query id
to 64 bits (Robert Haas)
This greatly reduces the chance of query id hash collisions.
The query id can now potentially display as a negative value.
Install errcodes.txt to provide access to
the error codes reported by PostgreSQL
(Thomas Munro)
Prevent extensions from creating custom server variables that
take a quoted list of values (Tom Lane)
This was never intended to be supported.
Remove contrib/start-scripts/osx since they
are no longer recommended (Tom Lane)
Remove extension chkpass (Peter Eisentraut)
This extension no longer served as a usable security tool or
example of how to write an extension.
Acknowledgments
The following individuals (in alphabetical order) have contributed to this
release as patch authors, committers, reviewers, testers, or reporters of
issues.
XXX