Recent posts

January 12   •   PostgreSQL
The November commitfest is ripe with new interesting features! Without further ado, let’s proceed with the review. If you missed our July and September commitfest reviews, you can check them out here: 2023-07 , 2023-09 . ON LOGIN trigger Event triggers for REINDEX ALTER OPERATOR: commutator, negator, hashes, merges pg_dump --filter=dump.txt psql: displaying default privileges pg_stat_statements: track statement entry timestamps and reset min/max statistics pg_stat_checkpointer: checkpointer process statistics pg_stats: statistics for range type columns Planner: exclusion of unnecessary table self-joins Planner: materialized CTE statistics Planner: accessing a table with multiple clauses Index range scan optimization dblink, postgres_fdw: detailed wait events Logical replication: migration of replication slots during publisher upgrade Replication slot use log Unicode: new information functions New function: xmltext AT LOCAL support Infinite intervals ALTER SYSTEM with unrecognized custom parameters Building the server from source
November 5, 2023   •   PostgreSQL
We continue to follow the news of the PostgreSQL 17 development. Let’s find out what the September commitfest brings to the table. If you missed our July commitfest review, you can check it out here: 2023-07 . Removed the parameter old_snapshot_threshold New parameter event_triggers New functions to_bin and to_oct New system view pg_wait_events EXPLAIN: a JIT compilation time counter for tuple deforming Planner: better estimate of the initial cost of the WindowAgg node pg_constraint: NOT NULL constraints Normalization of CALL, DEALLOCATE and two-phase commit control commands unaccent: the target rule expressions now support values in quotation marks COPY FROM: FORCE_NOT_NULL * and FORCE_NULL * Audit of connections without authentication pg_stat_subscription: new column worker_type The behaviour of pg_promote in case of unsuccessful switchover to a replica Choosing the disk synchronization method in server utilities pg_restore: optimization of parallel recovery of a large number of tables pg_basebackup and pg_receivewal with the parameter dbname Parameter names for a number of built-in functions psql: \watch min_rows
September 12, 2023   •   PostgreSQL
We continue to follow the news in the world of PostgreSQL. The PostgreSQL 16 Release Candidate 1 was rolled out  on August 31. If all is well, PostgreSQL 16 will officially release on September 14. What has changed in the upcoming release after the April code freeze? What’s getting into PostgreSQL 17 after the first commitfest? Read our latest review to find out! PostgreSQL 16 For reference, here are our previous reviews of PostgreSQL 16 commitfests: 2022-07 , 2022-09 , 2022-11 , 2023-01 , 2023-03 . Since April, there have been some notable changes. Let’s start with the losses. The following updates have not made it into the release: MAINTAIN — a new privilege for table maintenance  (commit: 151c22de Setting parameter values at the database and user level (commit: b9a7a822 ) Some patches have been updated: ...
May 25, 2023   •   PostgreSQL
The end of the March Commitfest concludes the acceptance of patches for PostgreSQL 16. Let’s take a look at some exciting new updates it introduced. I hope that this review together with the previous articles in the series ( 2022-07 , 2022-09 , 2022-11 , 2023-01 ) will give you a coherent idea of the new features of PostgreSQL 16. As usual, the March Commitfest introduces a ton of new changes. I’ve split them into several sections for convenience. Monitoring pg_stat_io: input/output statistics Counter for new row versions moved to another page when performing an UPDATE pg_buffercache: new pg_buffercache_usage_counts function Normalization of DDL and service commands, continued EXPLAIN (generic_plan): generic plan of a parameterized query auto_explain: logging the query ID PL/pgSQL: GET DIAGNOSTICS .. PG_ROUTINE_OID Client applications psql: variables SHELL_ERROR and SHELL_EXIT_CODE psql: \watch and the number of repetitions psql:\df+ does not show the source code of functions pg_dump: support for LZ4 and zstd compression methods pg_dump and partitioned tables pg_verifybackup --progress libpq: balancing connections Server administration and maintenance initdb: setting configuration parameters during cluster initialization Autovacuum: balancing I/O impact on the fly Managing the size of shared memory for vacuum and analyze VACUUM for TOAST tables only The vacuum_defer_cleanup_age parameter has been removed pg_walinspect: interpretation of the end_lsn parameter pg_walinspect: pg_get_wal_fpi_info → pg_get_wal_block_info Localization ICU: UNICODE collation ICU: Canonization of locales ICU: custom rules for customizing the sorting algorithm Security libpq: new parameter require_auth scram_iterations: iteration counter for password encryption using SCRAM-SHA-256 SQL functions and commands SQL/JSON standard support New functions pg_input_error_info and pg_input_is_valid The Daitch-Mokotoff Soundex New functions array_shuffle and array_sample New aggregate function any_value COPY: inserting default values timestamptz: adding and subtracting time intervals XML: formatting values pg_size_bytes: support for "B" New functions: erf, erfc Performance Parallel execution of full and right hash joins Options for the right antijoin Relation extension mechanism rework Don’t block HOT update by BRIN index postgres_fdw: aborting transactions on remote servers in parallel mode force_parallel_mode → debug_parallel_query Direct I/O (for developers only) Logical replication Logical replication from a physical replica Using non-unique indexes with REPLICA IDENTITY FULL Initial synchronization in binary format Privileges for creating subscriptions and applying changes Committing changes in parallel mode (for developers only) ...
March 7, 2023   •   PostgreSQL
We continue to follow the news of the PostgreSQL 16 release, and today, the results of the fourth CommitFest are on the table. Let’s have a look. If you missed the previous CommitFests, check out our reviews for 2022-07 , 2022-09 and 2022-11 . Here are the patches I want to talk about this time: New function: random_normal Input formats for integer literals Goodbye, postmaster Parallel execution for string_agg and array_agg New parameter: enable_presorted_aggregate Planner support function for working with window functions Optimized grouping of repeating columns in GROUP BY and DISTINCT VACUUM parameters: SKIP_DATABASE_STATS and ONLY_DATABASE_STATS pg_dump: lock tables in batches PL/pgSQL: cursor variable initialization Roles with the CREATEROLE attribute Setting parameter values at the database and user level New parameter: reserved_connections postgres_fdw: analyzing foreign tables with TABLESAMPLE postgres_fdw: batch insert records during partition key updates pg_ident.conf: new ways to identify users in PostgreSQL Query jumbling for DDL and utility statements New function: bt_multi_page_stats New function: pg_split_walfile_name pg_walinspect, pg_waldump: collecting page images from WAL
December 31, 2022   •   PostgreSQL
We continue to follow the news of the upcoming PostgreSQL 16. The third CommitFest concluded in early December. Let's look at the results. If you missed the previous CommitFests, check out our reviews: 2022-07 , 2022-09 . Here are the patches I want to talk about: meson: a new source code build system Documentation: a new chapter on transaction processing psql: \d+ indicates foreign partitions in a partitioned table psql: extended query protocol support Predicate locks on materialized views Tracking last scan time of indexes and tables pg_buffercache: a new function pg_buffercache_summary walsender displays the database name in the process status Reducing the WAL overhead of freezing tuples Reduced power consumption when idle postgres_fdw: batch mode for COPY Modernizing the GUC infrastructure Hash index build optimization MAINTAIN ― a new privilege for table maintenance SET ROLE: better role change management Support for file inclusion directives in pg_hba.conf and pg_ident.conf Regular expressions support in pg_hba.conf