2 New Features Summary
PDF page 8
More than 200 new features have been added to PostgreSQL 18. This chapter provides an overview of typical new features and benefits. Details of the new features will be explained in “3. New Feature Detail”.
2.1 Improvements to adapt to large scale environments
The following features have been added that can be applied to large scale environments:
Creating Virtual Columns
Allows the creation of virtual columns without data storage as columns of a table.
VACUUM / ANALYZE statements for partitioned tables
The VACUUM and ANALYZE statements can now specify an ONLY clause that does not recursively process partitions.
2.2 Improved reliability
PostgreSQL 18 implements the following enhancements to improve reliability.
Tar format support for pg_verifybackup command
The pg_verifybackup command can now be executed for tar format backups
2.3 Improved maintainability
The following features that can improve operability have been added.
Statistics Migration
Optimizer statistics can now be included in dump files for the pg_dump and pg_dumpall commands. Functions have also been added to set and remove optimizer statistics for tables and columns.
OAUTH SASL
Supports authentication by OAUTHBearer/SASL.
PDF page 9
EXPLAIN statement
Many options have been added to the EXPLAIN statement.
2.4 Improvements in Programming
The following functions have been added to SQL statements.
Access to Before Update Data
The RETURNING clause of the update DML can now specify an identifier that indicates the data before (OLD) and after (NEW) the update.
UUID v7 function
A function is provided that returns a UUID v7 value with a fixed leading portion.
2.5 Preparing for future new features
PostgreSQL 18 is now ready for features that will be provided in future versions.
Asynchronous I/O Infrastructure-
The infrastructure for using asynchronous I/O has been implemented. The parameter io_method specifies the asynchronous I/O method to be used.
NUMA support
Functions and views to use the basic NUMA environment have been added.
PDF page 10
2.6 Incompatibility
In PostgreSQL 18, the following specifications have been changed from PostgreSQL 17.
2.6.1 Support Information
PostgreSQL 18 changes the supported versions for the following platforms and tools The following platforms and tools are no longer supported. [edadeb0, 972c2cd, 6c66b74, 45363fc]
PA-RISC processor
LLVM 13 and below
OpenSSL 1.1.0 and below
Python 3.2 The changes in component support versions required to build PostgreSQL 18 are as follows. [a70e01d, 6c66b74]
OpenSSL 1.1.1 or higher required
Python 3.6.8 or higher required The following components are now supported in PostgreSQL 18.
Tcl 9 support added [32a2aa7]
2.6.2 MD5 Password
MD5 passwords are now deprecated. Generating an MD5 password will output a warning by default. This warning can be suppressed by setting the parameter md5_password_warnings to ‘off’. [db6a4a98]
PDF page 11
2.6.3 Configure command
The configure command has been changed as follows.
Option –disable-spin-locks
This option has been removed. [e256266]
Option –disable-atomics
This option has been removed. [8138526]
Command flex
2.6.4 Initdb command
The data checksum feature is enabled by default. To disable checksums, specify the –no-datachecksums option. [04bec89]
PDF page 12
2.6.5 COPY statement
The following changes have been implemented for the COPY statement.
Prohibition of the COPY FREEZE statement for external tables
The COPY FREEZE statement for external tables is now explicitly prohibited. [401a695]
CSV mode specification change
When executing the COPY statement in CSV mode and reading data from a source other than STDIN, ‘.’ is no longer considered data completion. [7702337]
PDF page 13
2.6.6 CREATE OPERATOR CLASS statement
The RECHECK clause in the CREATE OPERATOR CLASS and ALTER OPERATOR FAMILY statements is no longer accepted. The RECHECK clause in these statements was valid prior to PostgreSQL 8.4 and did not cause an error if specified until PostgreSQL 17. [7da1bdc]
PDF page 14
2.6.7 CREATE SUBSCRIPTION statement
The default value of the ‘streaming’ option when creating SUBSCRIPTION has been changed from ‘off’ to ‘parallel’. [1bf1140]
2.6.8 CREATE TABLE statement
Partition tables can no longer be created as UNLOGGED tables. Partitions can be created as UNLOGGED tables. [e2bab2d]
2.6.9 EXPLAIN statement
The BUFFERS clause is now enabled by default. [c2a4078]
PDF page 15
2.6.10 GRANT statement
The RULE privilege on objects has been removed since PostgreSQL 8.2, but the GRANT statement did not raise an error. The RULE privilege has been completely removed from this version. [fefa76f]
PDF page 16
2.6.11 Psql
The output format of the \conninfo metacommand has been changed. [bba2fbc]
2.6.12 Pg_backend_memory_contexts view
The starting number of the level column in the pg_backend_memory_contexts view has been changed from zero to one. The same change has been implemented for the output of the pg_log_backend_memory_contexts function. [d9e0386]
PDF page 17
PDF page 18