-Previously ALTER TABLE SET [UN]LOGGED did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged.
-
-
+
+ Previously ALTER TABLE SET
+ [UN]LOGGED did nothing, and the creation of an
+ unlogged partitioned table did not cause its children to be unlogged.
+
+
-
-
-Execute AFTER triggers as the role that was active when trigger events were queued (Laurenz Albe)
-§
-
+
+
+ Execute AFTER
+ linkend="triggers">triggers as the role that was active when
+ trigger events were queued (Laurenz Albe)
+ §
+
-
-Previously such triggers were run as the role that was active at trigger execution time (e.g., at ). This is significant for cases where the role is changed between queue time and
-transaction commit.
-
-
+
+ Previously such triggers were run as the role that was active at
+ trigger execution time (e.g., at ).
+ This is significant for cases where the role is changed between queue
+ time and transaction commit.
+
+
-
-
-Remove non-functional support for rule privileges in / (Fujii Masao)
-§
-
+
+
+ Remove non-functional support for rule privileges in
+ linkend="sql-grant"/>/ (Fujii Masao)
+ §
+
-
-These have been non-functional since PostgreSQL 8.2.
-This is no longer needed since pg_backend_memory_contexts.path was added.
-
-
+
+ This is no longer needed since
+ pg_backend_memory_contexts.path
+ was added.
+
+
-
-
-Change pg_backend_memory_contexts.level and pg_log_backend_memory_contexts() to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao)
-Allow the keys of SELECT DISTINCT to be internally reordered to avoid sorting (Richard Guo)
-§
-
+
+
+ Allow the keys of SELECT
+ DISTINCT to be internally reordered to avoid sorting
+ (Richard Guo)
+ §
+
-
-This optimization can be disabled using .
-
-
+
+ This optimization can be disabled using
+ linkend="guc-enable-distinct-reordering"/>.
+
+
-
-
-Ignore GROUP BY columns that are functionally dependent on other columns (Zhang Mingli, Jian He, David Rowley)
-§
-
+
+
+ Ignore GROUP BY
+ columns that are functionally dependent on other columns (Zhang
+ Mingli, Jian He, David Rowley)
+ §
+
-
-If a GROUP BY clause includes all columns of a unique index, as well as other columns of the same table, those other columns are redundant and can be dropped
-from the grouping. This was already true for non-deferred primary keys.
-
-
+
+ If a GROUP BY clause includes all columns of
+ a unique index, as well as other columns of the same table, those
+ other columns are redundant and can be dropped from the grouping.
+ This was already true for non-deferred primary keys.
+
+
-
-
-Allow some HAVING clauses on GROUPING SETS to be pushed to WHERE clauses (Richard Guo)
-§
-§
-§
-§
-
-
-
-This allows earlier row filtering. This release also fixes some GROUPING SETS queries that used to return incorrect results.
-
-
+
+
+ Allow some
+ linkend="sql-having">HAVING clauses
+ on GROUPING
+ SETS to be pushed to
+ linkend="sql-where">WHERE clauses
+ (Richard Guo)
+ §
+ §
+ §
+ §
+
+
+
+ This allows earlier row filtering. This release also fixes some
+ GROUPING SETS queries that used to return
+ incorrect results.
+
+
-
-
-Improve row estimates for generate_series() using numeric and timestamp values (David Rowley, Song Jinzhou)
-This information appears in the server log, the system views pg_stat_progress_vacuum and pg_stat_progress_analyze, and the output of and when in VERBOSE
-mode; tracking must be enabled with the server variable .
-
-
+
+ This information appears in the server log, the system views
-Allow the values of generated columns to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith)
-§
-§
-§
-§
-
-
-
-If the publication specifies a column list, all specified columns, generated and non-generated, are published. Without a specified column list, publication option publish_generated_columns
-controls whether generated columns are published. Previously generated columns were not replicated and the subscriber had to compute the values if possible; this is particularly
-useful for non-PostgreSQL subscribers which lack such a capability.
2025-02-25 [1e4351af3] Expand virtual generated columns in the planner
-->
-
-
-Allow generated columns to be virtual, and make them the default (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed)
-§
-§
-§
-
+
+
+ Allow generated
+ columns to be virtual, and make them the default (Peter
+ Eisentraut, Jian He, Richard Guo, Dean Rasheed)
+ §
+ §
+ §
+
-
-Virtual generated columns generate their values when the columns are read, not written. The write behavior can still be specified via the STORED option.
-
-
+
+ Virtual generated columns generate their values when the columns
+ are read, not written. The write behavior can still be specified
+ via the STORED option.
+
+
-
-
-Add OLD/NEW support to RETURNING in DML queries (Dean Rasheed)
-§
-
+
+
+ Add OLD/NEW support to
+ linkend="dml-returning">RETURNING in
+ DML queries (Dean Rasheed)
+ §
+
-
-Previously RETURNING only returned new values for and , and old values for ; would return the appropriate value for the internal query executed. This new syntax
-allows the RETURNING list of INSERT/UPDATE/DELETE/MERGE to explicitly return old and new values by using the special aliases old and new. These aliases can be renamed to
-avoid identifier conflicts.
-
-
+
+ Previously RETURNING only returned new values for
+ and , and old
+ values for ;
+ would return the appropriate value for the internal query executed.
+ This new syntax allows the RETURNING list of
+ INSERT/UPDATE/DELETE/MERGE
+ to explicitly return old and new values by using the special aliases
+ old and new. These aliases
+ can be renamed to avoid identifier conflicts.
+
+
-
-
-Allow foreign tables to be created like existing local tables (Zhang Mingli)
-§
-
+
+
+ Allow foreign tables to be created like existing local tables
+ (Zhang Mingli)
+ §
+
-
-The syntax is CREATE FOREIGN TABLE ... LIKE.
-
-
+
+ The syntax is CREATE
+ FOREIGN TABLE ... LIKE.
+
+
-
-
-Allow LIKE with nondeterministic collations (Peter Eisentraut)
-§
-
-
+
+
+ Allow LIKE
+ with nondeterministic
+ collations (Peter Eisentraut)
+ §
+
+
-
-
-Allow text position search functions with nondeterministic collations (Peter Eisentraut)
-§
-
+
+
+ Allow text position search functions with nondeterministic collations
+ relationships to use either deterministic collations or the the
+ same nondeterministic collations (Peter Eisentraut)
+ §
+
-
-The restore of a , also used by , will fail if these requirements are not met; schema changes must be made for these upgrade methods to succeed.
-
-
+
+ The restore of a , also used by
+ linkend="pgupgrade"/>, will fail if these requirements are not met;
+ schema changes must be made for these upgrade methods to succeed.
+
+
-
-
-Store column NOT NULL specifications in pg_constraint (Álvaro Herrera, Bernd Helmle)
-§
-
+
+
+ Store column
+ linkend="sql-createtable-parms-not-null">NOT
+ NULL specifications in
+ linkend="catalog-pg-constraint">pg_constraint
+ (Álvaro Herrera, Bernd Helmle)
+ §
+
-
-This allows names to be specified for NOT NULL constraint. This also adds NOT NULL constraints to foreign tables and NOT NULL inheritance control to local tables.
-
-
+
+ This allows names to be specified for NOT NULL
+ constraint. This also adds NOT NULL constraints
+ to foreign tables and NOT NULL inheritance
+ control to local tables.
+
+
-
-
-Allow to set the NOT VALID attribute of NOT NULL constraints (Rushabh Lathia, Jian He)
-§
-
-
+
+
+ Allow to set the NOT
+ VALID attribute of NOT NULL constraints
+ (Rushabh Lathia, Jian He)
+ §
+
+
-
-
-Allow modification of the inheritability of NOT NULL constraints (Suraj Kharage, Álvaro Herrera)
2025-01-24 [bfc599206] Add SQL function CASEFOLD().
-->
-
-
-Add function casefold() to allow for more sophisticated case-insensitive matching (Jeff Davis)
-§
-
+
+
+ Add function
+ linkend="functions-string-other">casefold()
+ to allow for more sophisticated case-insensitive matching (Jeff Davis)
+ §
+
-
-This allows more accurate comparisons, i.e., a character can have multiple upper or lower case equivalents, or upper or lower case conversion changes the number of characters.
-
-
+
+ This allows more accurate comparisons, i.e., a character can have
+ multiple upper or lower case equivalents, or upper or lower case
+ conversion changes the number of characters.
+
+
-
-
-Allow MIN()/MAX() aggregates on arrays and composite types (Aleksander Alekseev, Marat Buharov)
-§
-§
-
-
+
+
+ Allow
+ linkend="functions-aggregate-table">MIN()/
+ linkend="functions-aggregate-table">MAX()
+ aggregates on arrays and composite types (Aleksander Alekseev,
+ Marat Buharov)
+ §
+ §
+
+
-
-
-Add a WEEK option to EXTRACT() (Tom Lane)
-§
-
-
+
+
+ Add a WEEK option to
+ linkend="functions-datetime-extract">EXTRACT()
+ (Tom Lane)
+ §
+
+
-
-
-Improve the output EXTRACT(QUARTER ...) for negative values (Tom Lane)
-§
-
-
+
+
+ Improve the output EXTRACT(QUARTER ...) for
+ negative values (Tom Lane)
+ §
+
+
-
-
-Add roman numeral support to to_number() (Hunaid Sohail)
-Add UUID version 7 generation function uuidv7() (Andrey Borodin)
-§
-
+
+
+ Add UUID
+ version 7 generation function
+ linkend="func_uuid_gen_table">uuidv7()
+ (Andrey Borodin)
+ §
+
-
-This UUID value is temporally sortable. Function alias uuidv4() has been added to explicitly generate version 4 UUIDs.
-
-
+
+ This UUID value is
+ temporally sortable. Function alias
+ linkend="func_uuid_gen_table">uuidv4()
+ has been added to explicitly generate version 4 UUIDs.
+
+
-
-
-Add functions crc32() and crc32c() to compute CRC values (Aleksander Alekseev)
-§
-
-
+
+
+ Add functions
+ linkend="functions-binarystring-other">crc32()
+ and
+ linkend="functions-binarystring-other">crc32c()
+ to compute CRC values (Aleksander Alekseev)
+ §
+
+
-
-
-Add math functions gamma() and lgamma() (Dean Rasheed)
-§
-
-
+
+
+ Add math functions
+ linkend="functions-math-func-table">gamma()
+ and
+ linkend="functions-math-func-table">lgamma()
+ (Dean Rasheed)
+ §
+
+
-
-
-Allow => syntax for named cursor arguments in PL/pgSQL (Pavel Stehule)
-§
-
+
+
+ Allow => syntax for named cursor arguments in
+ PL/pgSQL (Pavel Stehule)
+ §
+
-
-We previously only accepted :=.
-
-
+
+We previously only accepted :=.
+
+
-
-
-Allow regexp_match[es]()/regexp_like()/regexp_replace()/regexp_count()/regexp_instr()/regexp_substr()/regexp_split_to_table()/regexp_split_to_array() to use named arguments (Jian He)
+ to report the full, including minor, protocol version number (Jacob
+ Champion, Jelte Fennema-Nio)
+ §
+
+
-
-
-Add libpq connection parameters and environment variables to specify the minimum and maximum acceptable protocol version for connections (Jelte Fennema-Nio)
-Improve the performance of processing long JSON strings using SIMD (Single Instruction Multiple Data) (David Rowley)
-§
-
-
+
+
+ Improve the performance of processing long
+ linkend="datatype-json">JSON strings using
+ SIMD (Single Instruction Multiple Data) (David
+ Rowley)
+ §
+
+
-
-
-Speed up CRC32C calculations using x86 AVX-512 instructions (Raghuveer Devulapalli, Paul Amonson)
-§
-
-
+
+
+ Speed up CRC32C calculations using x86 AVX-512
+ instructions (Raghuveer Devulapalli, Paul Amonson)
+ §
+
+
-
-
-Add ARM Neon and SVE CPU intrinsics for popcount (integer bit counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi)
-§
-§
-
-
+
+
+ Add ARM Neon and SVE CPU
+ intrinsics for popcount (integer bit counting) (Chiranmoy
+ Bhattacharya, Devanga Susmitha, Rama Malladi)
+ §
+ §
+
+
-
-
-Improve the speed of numeric multiplication and division (Joel Jacobson, Dean Rasheed)
-§
-§
-§
-§
-
-
+
+
+ Improve the speed of numeric multiplication and division (Joel
+ Jacobson, Dean Rasheed)
+ §
+ §
+ §
+ §
+
+
-
-
-Add configure option to enable NUMA awareness (Jakub Wartak, Bertrand Drouvot)
-§
-§
-§
-
+
+
+ Add configure option
+ linkend="configure-option-with-libnuma">
+ to enable NUMA awareness (Jakub Wartak, Bertrand
+ Drouvot)
+ §
+ §
+ §
+
-
-The function pg_numa_available() reports on NUMA awareness, and system views pg_shmem_allocations_numa and pg_buffercache_numa which report on shared memory distribution across
-New output column used_in_xact indicates if the foreign data wrapper is being used by a current transaction, closed indicates if it is closed, user_name indicates the
-user name, and remote_backend_pid indicates the remote backend process identifier.
-
-
+
+ New output column used_in_xact indicates
+ if the foreign data wrapper is being used by a current transaction,
+ closed indicates if it is closed,
+ user_name indicates the user name, and
+ remote_backend_pid indicates the remote
+ backend process identifier.
+
+
-
-
-Allow SCRAM authentication from the client to be passed to
- servers (Matheus Alcantara, Peter Eisentraut)
-§
-
+
+
+ Allow SCRAM
+ authentication from the client to be passed to
+ linkend="postgres-fdw"/> servers (Matheus Alcantara, Peter Eisentraut)
+ §
+
-
-This avoids storing postgres_fdw authentication information in the database, and is enabled with the
-postgres_fdwuse_scram_passthrough connection option. libpq uses new connection
-parameters and .
-
-
+
+ This avoids storing postgres_fdw
+ authentication information in the database, and is