

More efficiently store duplicates in B-tree indexes (Anastasia Lubennikova, Peter Geoghegan) *) to be used in partitioning expressions (Amit Langote) Previously, subscribers could only receive rows into non-partitioned tables.Īllow whole-row variables (that is, table. The CREATE PUBLICATION option publish_via_partition_root controls whether changes to partitions are published as their own changes or their parent's.Īllow logical replication into partitioned tables on subscribers (Amit Langote) Addition/removal of a partition causes it to be likewise added to or removed from the publication. Now a partitioned table can be published explicitly, causing all its partitions to be published automatically. Previously, partitions had to be replicated individually. However, such a trigger is not allowed to change which partition is the destination.Īllow partitioned tables to be logically replicated via publications (Amit Langote) Support row-level BEFORE triggers on partitioned tables (Álvaro Herrera) In ltree, when an lquery pattern contains adjacent asterisks with braces, e.g., * (Nikita Glukhov)įix pageinspect's bt_metap() to return more appropriate data types that are less likely to overflow (Peter Geoghegan)Īllow pruning of partitions to happen in more cases (Yuzuko Hosoya, Amit Langote, Álvaro Herrera)Īllow partitionwise joins to happen in more cases (Ashutosh Bapat, Etsuro Fujita, Amit Langote, Tom Lane)įor example, partitionwise joins can now happen between partitioned tables even when their partition bounds do not match exactly. The recommended fix for any affected installations is to start using a geographical time zone name. This affects only the behavior of POSIX-style time zone specifications that lack an explicit daylight savings transition rule formerly the transition rule could be determined by installing a custom posixrules file, but now it is hard-wired. Rather than have a behavioral change appear unexpectedly with a timezone data update, we have removed PostgreSQL's support for this feature as of version 13. IANA's timezone group has deprecated this feature, meaning that it will gradually disappear from systems' timezone databases over the next few years. Remove support for posixrules files in the timezone database (Tom Lane)
#Postgresql 13 upgrade#
Any installations still using unpackaged extensions should upgrade them to a packaged version before updating to PostgreSQL 13. The FROM option of CREATE EXTENSION is no longer supported. Remove support for upgrading unpackaged (pre-9.1) extensions (Tom Lane) Remove support for "opaque" pseudo-types used by pre- PostgreSQL 7.3 servers (Daniel Gustafsson) Remove support for defining foreign key constraints using pre- PostgreSQL 7.3 syntax (Daniel Gustafsson) Remove support for defining operator classes using pre- PostgreSQL 8.0 syntax (Daniel Gustafsson) Wal_keep_size = wal_keep_segments * wal_segment_size (typically 16MB)

If you previously used wal_keep_segments, the following formula will give you an approximately equivalent setting: It is specified in megabytes, rather than number of files as with the old parameter. This determines how much WAL to retain for standby servers. Rename configuration parameter wal_keep_segments to wal_keep_size (Fujii Masao) Previously it returned ALTER TABLE now it returns ALTER MATERIALIZED VIEW. RENAME COLUMN to return a more appropriate command tag (Fujii Masao) Previously it returned ALTER TABLE now it returns ALTER FOREIGN TABLE.įix ALTER MATERIALIZED VIEW.

Rename various wait events to improve consistency (Fujii Masao, Tom Lane)įix ALTER FOREIGN TABLE. Queries that join these views to pg_stat_activity and wish to see auxiliary processes will need to use left joins. Prevent display of auxiliary processes in pg_stat_ssl and pg_stat_gssapi system views (Euler Taveira) SELECT round(sum( OLDVALUE / n::float)) AS newvalue FROM generate_series(1, OLDVALUE) s(n) Conversion of old values to new ones can be done using: Previously, this value was adjusted before setting the number of concurrent requests. Make json_to_tsvector() fully check the spelling of its string option (Dominik Czarnota)Ĭhange the way non-default effective_io_concurrency values affect concurrency (Thomas Munro) The previous behavior has been retained in old views by keeping the original function unchanged. This also applies to substring( text FROM pattern ESCAPE text). Previously a null ESCAPE value was taken to mean using the default escape string (a backslash character). This new behavior matches the SQL specification.
