PostgreSQL 15.2 już dostępny – szczegółowa lista zmian

Dobra wiadomość dla fanów Postgresa. Najnowsza wersja bazy danych PostgreSQL jest już dostępna. Oferuje najnowocześniejsze standardy bezpieczeństwa i stabilności. W tym artykule pochylimy się nad zmianami w PostgreSQL 15.2.

Dobra wiadomość dla fanów Postgresa. Najnowsza wersja bazy danych PostgreSQL jest już dostępna. Oferuje najnowocześniejsze standardy bezpieczeństwa i stabilności. W tym artykule pochylimy się nad zmianami w PostgreSQL 15.2.

Na początku należy wspomnieć, iż naprawiona została luka bezpieczeństwa CVE-2022-41862 występująca w od 12 do 15 wersji PostgreSQL. Umożliwiała ona naruszenie danych podczas łączenia się ze zmodyfikowanym serwerem przy pomocy protokołu Kerberos. Wszystkiemu miał być winny odpowiednio spreparowany ciąg znaków wysyłany przez nieuwierzytelniony serwer. Przez to podczas ustanawiania szyfrowania transportowego Kerberos libpq czytał zbyt dużo danych z pamięci podręcznej. Zespół PostgreSQL oświadcza, że luka ta nie była zagrożeniem w przypadku wyłączenia opcji gssencmode lub po prostu braku pamięci podręcznej poświadczeń Kerberosa.

Zmiany w pigułce

W ostatnich miesiącach zespół Postgresa naprawił ponad 60 błędów. Zmiany dotyczą przede wszystkim poprawek do MERGE, komend w psql czy poprawnego generowania statystyk. W wersji 15.2 zostały również zoptymalizowane kluczowe komponenty pomocne przy replikacji bazy. Teraz replikowanie z włączoną opcją hot_standby jest szybsze. Oprócz tego dodane zostały nowe funkcjonalności, takie jak przerwanie zapytań typu full text search czy dodanie zapytaniu WITH RECURSIVE ... CYCLE możliwości dostępu do kolumny wynikowej SET. Pełna lista zmian, wraz z ich oryginalnymi opisami i autorami, znajduje się w nagłówku „Szczegółowe zmiany”.

Wsparcie dla poprzednich wersji

Zanim przedstawimy szczegółowe zmiany dotyczące PostgreSQL 15.2, warto wspomnieć, iż zespół deweloperów Postgresa pamięta o starszych wersjach swojej bazy danych. Zatem większość zmian, o których dziś mówimy, ma swoje odpowiedniki w wersjach od 11 do 14. Przypominamy również, że wsparcie dla baz danych PostgreSQL 10 zostało zakończone w listopadzie 2022 roku. W związku z tym warto rozważyć kwestię upgrade’u. W tym celu polecamy zapoznać się z naszym artykułem poświęconym temu zagadnieniu.

Szczegółowe zmiany

Autorzy poprawek, tworząc prośbę o ich wcielenie do PostgreSQL, mają za zadanie wypełnić formularz zgłoszeniowy, w którym zawarta jest informacja na temat wprowadzonych przez nich zmian. Formularz zawiera takie pola jak: „What the patch does in a short paragraph”, czyli w kilku słowach, jaka zmiana została wprowadzona, a także „how to use the new feature” oraz „effect your patch has on performance”. Te ostatnie można wspólnie określić mianem dodatkowych informacji na temat zmian. W poniższej tabeli znajdują się oryginalne wpisy autorów.

Serwer

Zmiana Dodatkowe informacje Autor/Autorzy
Record and check the collation version of each database This feature is designed to detect collation version changes to avoid index corruption. Function pg_database_collation_actual_version() reports the underlying operating system collation version, and ALTER DATABASE … REFRESH sets the recorded database collation version to match the operating system collation version. Peter Eisentraut
Allow ICU collations to be set as the default for clusters and databases Previously, only libc-based collations could be selected at the cluster and database levels. ICU collations could only be used via explicit COLLATE clauses. Peter Eisentraut
Add system view pg_ident_file_mappings to report pg_ident.conf information Julien Rouhaud
Serwer – partycjonowanie
Zmiana Dodatkowe informacje Autor/Autorzy
Improve planning time for queries referencing partitioned tables This change helps when only a few of many partitions are relevant. David Rowley
Allow ordered scans of partitions to avoid sorting in more cases Previously, a partitioned table with a DEFAULT partition or a LIST partition containing multiple values could not be used for ordered partition scans. Now they can be used if such partitions are pruned during planning. David Rowley
Improve foreign key behavior of updates on partitioned tables that move rows between partitions Previously, such updates ran a delete action on the source partition and an insert action on the target partition. PostgreSQL will now run an update action on the partition root, providing cleaner semantics. Amit Langote
Allow CLUSTER on partitioned tables Justin Pryzby
Fix ALTER TRIGGER RENAME on partitioned tables to properly rename triggers on all partitions Also prohibit cloned triggers from being renamed. Arne Roland, Álvaro Herrera
Serwer – indeksy
Zmiana Dodatkowe informacje Autor/Autorzy
Allow btree indexes on system and TOAST tables to efficiently store duplicates Previously de-duplication was disabled for these types of indexes. Peter Geoghegan
Improve lookup performance of GiST indexes that were built using sorting Aliaksandr Kalenik, Sergei Shoulbakov, Andrey Borodin
Allow unique constraints and indexes to treat NULL values as not distinct Previously NULL entries were always treated as distinct values, but this can now be changed by creating constraints and indexes using UNIQUE NULLS NOT DISTINCT. Peter Eisentraut
Allow the ^@ starts-with operator and the starts_with() function to use btree indexes if using the C collation Previously these could only use SP-GiST indexes. Tom Lane
Serwer – optymalizacja
Zmiana Dodatkowe informacje Autor/Autorzy
Allow extended statistics to record statistics for a parent with all its children Regular statistics already tracked parent and parent-plus-all-children statistics separately. Tomas Vondra, Justin Pryzby
Add server variable recursive_worktable_factor to allow the user to specify the expected size of the working table of a recursive query Simon Riggs
Serwer – ogólna wydajność
Zmiana Dodatkowe informacje Autor/Autorzy
Allow hash lookup for NOT IN clauses with many constants Previously the code always sequentially scanned the list of values. David Rowley, James Coleman
Allow SELECT DISTINCT to be parallelized David Rowley
Speed up encoding validation of UTF-8 text by processing 16 bytes at a time This will improve text-heavy operations like COPY FROM. John Naylor, Heikki Linnakangas
Improve performance for sorts that exceed work_mem When the sort data no longer fits in work_mem, switch to a batch sorting algorithm that uses more output streams than before. Heikki Linnakangas
Improve performance and reduce memory consumption of in-memory sorts Ronan Dunklau, David Rowley, Thomas Munro, John Naylor
Allow WAL full page writes to use LZ4 and Zstandard compression This is controlled by the wal_compression server setting. Andrey Borodin, Justin Pryzby
Add support for writing WAL using direct I/O on macOS This only works if max_wal_senders = 0 and wal_level = minimal. Thomas Munro
Allow vacuum to be more aggressive in setting the oldest frozen and multi transaction id Peter Geoghegan
Allow a query referencing multiple foreign tables to perform parallel foreign table scans in more cases Andrey Lepikhov, Etsuro Fujita
Improve the performance of window functions that use row_number(), rank(), dense_rank() and count() David Rowley
Improve the performance of spinlocks on high-core-count ARM64 systems Geoffrey Blake
Serwer – monitorowanie
Zmiana Dodatkowe informacje Autor/Autorzy
Enable default logging of checkpoints and slow autovacuum operations This changes the default of log_checkpoints to on and that of log_autovacuum_min_duration to 10 minutes. This will cause even an idle server to generate some log output, which might cause problems on resource-constrained servers without log file rotation. These defaults should be changed in such cases. Bharath Rupireddy
Generate progress messages in the server log during slow server starts The messages report the cause of the delay. The time interval for notification is controlled by the new server variable log_startup_progress_interval. Nitin Jadhav, Robert Haas
Store cumulative statistics system data in shared memory Previously this data was sent to a statistics collector process via UDP packets, and could only be read by sessions after transferring it via the file system. There is no longer a separate statistics collector process. Kyotaro Horiguchi, Andres Freund, Melanie Plageman
Add additional information to VACUUM VERBOSE and autovacuum logging messages Peter Geoghegan
Add EXPLAIN (BUFFERS) output for temporary file block I/O Masahiko Sawada
Allow log output in JSON format The new setting is log_destination = jsonlog. Sehrope Sarkuni, Michael Paquier
Allow pg_stat_reset_single_table_counters() to reset the counters of relations shared across all databases Sadhuprasad Patro
Add wait events for local shell commands The new wait events are used when calling archive_command, archive_cleanup_command, restore_command and recovery_end_command. Fujii Masao
Serwer – dostępy
Zmiana Dodatkowe informacje Autor/Autorzy
Allow table accesses done by a view to optionally be controlled by privileges of the view’s caller Previously, view accesses were always treated as being done by the view’s owner. That’s still the default. Christoph Heiss
Allow members of the pg_write_server_files predefined role to perform server-side base backups Previously only superusers could perform such backups. Dagfinn Ilmari Mannsåker
Allow GRANT to grant permissions to change individual server variables via SET and ALTER SYSTEM The new function has_parameter_privilege() reports on this privilege. Mark Dilger
Add predefined role pg_checkpoint that allows members to run CHECKPOINT Previously checkpoints could only be run by superusers. Jeff Davis
Allow members of the pg_read_all_stats predefined role to access the views pg_backend_memory_contexts and pg_shmem_allocations Previously these views could only be accessed by superusers. Bharath Rupireddy
Allow GRANT to grant permissions on pg_log_backend_memory_contexts() Previously this function could only be run by superusers. Jeff Davis
Serwer – konfiguracja
Zmiana Dodatkowe informacje Autor/Autorzy
Add server variable shared_memory_size to report the size of allocated shared memory Nathan Bossart
Add server variable shared_memory_size_in_huge_pages to report the number of huge memory pages required This is only supported on Linux. Nathan Bossart
Honor server variable shared_preload_libraries in single-user mode This change supports use of shared_preload_libraries to load custom access methods and WAL resource managers, which would be essential for database access even in single-user mode. Jeff Davis
On Solaris, make the default setting of dynamic_shared_memory_type be sysv The previous default choice, posix, can result in spurious failures on this platform. Thomas Munro
Allow postgres -C to properly report runtime-computed values Previously runtime-computed values data_checksums, wal_segment_size, and data_directory_mode would report values that would not be accurate on the running server. However, this does not work on a running server. Nathan Bossart

Replikacja i przywracanie

Zmiana Dodatkowe informacje Autor/Autorzy
Add support for LZ4 and Zstandard compression of server-side base backups Jeevan Ladhe, Robert Haas
Run the checkpointer and bgwriter processes during crash recovery This helps to speed up long crash recoveries. Thomas Munro
Allow WAL processing to pre-fetch needed file contents This is controlled by the server variable recovery_prefetch. Thomas Munro
Allow archiving via loadable modules Previously, archiving was only done by calling shell commands. The new server variable archive_library can be set to specify a library to be called for archiving. Nathan Bossart
No longer require IDENTIFY_SYSTEM to be run before START_REPLICATION Jeff Davis
Replikacja i przywracanie – replikacja logiczna
Zmiana Dodatkowe informacje Autor/Autorzy
Allow publication of all tables in a schema For example, this syntax is now supported: CREATE PUBLICATION pub1 FOR TABLES IN SCHEMA s1,s2. ALTER PUBLICATION supports a similar syntax. Tables added later to the listed schemas will also be replicated. Vignesh C, Hou Zhijie, Amit Kapila
Allow publication content to be filtered using a WHERE clause Rows not satisfying the WHERE clause are not published. Hou Zhijie, Euler Taveira, Peter Smith, Ajin Cherian, Tomas Vondra, Amit Kapila
Allow publication content to be restricted to specific columns Tomas Vondra, Álvaro Herrera, Rahila Syed
Allow skipping of transactions on a subscriber using ALTER SUBSCRIPTION … SKIP Masahiko Sawada
Add support for prepared (two-phase) transactions to logical replication The new CREATE_REPLICATION_SLOT option is called TWO_PHASE. pg_recvlogical now supports a new –two-phase option during slot creation. Peter Smith, Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich
Prevent logical replication of empty transactions Previously, publishers would send empty transactions to subscribers if subscribed tables were not modified. Ajin Cherian, Hou Zhijie, Euler Taveira
Add SQL functions to monitor the directory contents of logical replication slots The new functions are pg_ls_logicalsnapdir(), pg_ls_logicalmapdir(), and pg_ls_replslotdir(). They can be run by members of the predefined pg_monitor role. Bharath Rupireddy
Allow subscribers to stop the application of logical replication changes on error This is enabled with the subscriber option disable_on_error and avoids possible infinite error loops during stream application. Osumi Takamichi, Mark Dilger
Adjust subscriber server variables to match the publisher so datetime and float8 values are interpreted consistently Some publishers might be relying on inconsistent behavior. Japin Li
Add system view pg_stat_subscription_stats to report on subscriber activity The new function pg_stat_reset_subscription_stats() allows resetting these statistics counters. Masahiko Sawada
Suppress duplicate entries in the pg_publication_tables system view In some cases a partition could appear more than once. Hou Zhijie

Komendy użytkowe

Zmiana Dodatkowe informacje Autor/Autorzy
Add SQL MERGE command to adjust one table to match another This is similar to INSERT … ON CONFLICT but more batch-oriented. Simon Riggs, Pavan Deolasee, Álvaro Herrera, Amit Langote
Add support for HEADER option in COPY text format The new option causes the column names to be output, and optionally verified on input. Rémi Lapeyre
Add new WAL-logged method for database creation This is the new default method for copying the template database, as it avoids the need for checkpoints during database creation. However, it might be slow if the template database is large, so the old method is still available. Dilip Kumar
Allow CREATE DATABASE to set the database OID Shruthi Gowda, Antonin Houska
Prevent DROP DATABASE, DROP TABLESPACE, and ALTER DATABASE SET TABLESPACE from occasionally failing during concurrent use on Windows Thomas Munro
Allow foreign key ON DELETE SET actions to affect only specified columns Previously, all of the columns in the foreign key were always affected. Paul Martinez
Allow ALTER TABLE to modify a table’s ACCESS METHOD Justin Pryzby, Jeff Davis
Properly call object access hooks when ALTER TABLE causes table rewrites Michael Paquier
Allow creation of unlogged sequences Peter Eisentraut
Track dependencies on individual columns in the results of functions returning composite types Previously, if a view or rule contained a reference to a specific column within the result of a composite-returning function, that was not noted as a dependency; the view or rule was only considered to depend on the composite type as a whole. This meant that dropping the individual column would be allowed, causing problems in later use of the view or rule. The column-level dependency is now also noted, so that dropping such a column will be rejected unless the view is changed or dropped. Tom Lane

Typy danych

Zmiana Dodatkowe informacje Autor/Autorzy
Allow the scale of a numeric value to be negative, or greater than its precision This allows rounding of values to the left of the decimal point, e.g., ‘1234’::numeric(4, -2) returns 1200. Dean Rasheed, Tom Lane
Improve overflow detection when casting values to interval Joe Koshakow
Change the I/O format of type “char” for non-ASCII characters Tom Lane
Update the display width information of modern Unicode characters, like emojis Also update from Unicode 5.0 to 14.0.0. There is now an automated way to keep Postgres updated with Unicode releases. Jacob Champion

Funkcje

Zmiana Dodatkowe informacje Autor/Autorzy
Add multirange input to range_agg() Paul Jungwirth
Add MIN() and MAX() aggregates for the xid8 data type Ken Kato
Add regular expression functions for compatibility with other relational systems The new functions are regexp_count(), regexp_instr(), regexp_like(), and regexp_substr(). Some new optional arguments were also added to regexp_replace(). Gilles Darold, Tom Lane
Add the ability to compute the distance between polygons Tom Lane
Add to_char() format codes of, tzh, and tzm The upper-case equivalents of these were already supported. Nitin Jadhav
When applying AT TIME ZONE to a time with time zone value, use the transaction start time rather than wall clock time to determine whether DST applies This allows the conversion to be considered stable rather than volatile, and it saves a kernel call per invocation. Aleksander Alekseev, Tom Lane
Ignore NULL array elements in ts_delete() and setweight() functions with array arguments These functions effectively ignore empty-string array elements (since those could never match a valid lexeme). It seems consistent to let them ignore NULL elements too, instead of failing. Jean-Christophe Arnu
Add support for petabyte units to pg_size_pretty() and pg_size_bytes() David Christensen
Change pg_event_trigger_ddl_commands() to output references to other sessions’ temporary schemas using the actual schema name Previously this function reported all temporary schemas as pg_temp, but it’s misleading to use that for any but the current session’s temporary schema. Tom Lane

PL/pgSQL

Zmiana Dodatkowe informacje Autor/Autorzy
Fix enforcement of PL/pgSQL variable CONSTANT markings Previously, a variable could be used as a CALL output parameter or refcursor OPEN variable despite being marked CONSTANT. Tom Lane

libpq

Zmiana Dodatkowe informacje Autor/Autorzy
Allow IP address matching against a server certificate’s Subject Alternative Name Jacob Champion
Allow PQsslAttribute() to report the SSL library type without requiring a libpq connection Jacob Champion
Change query cancellations sent by the client to use the same TCP settings as normal client connections This allows configured TCP timeouts to apply to query cancel connections. Jelte Fennema
Prevent libpq event callback failures from forcing an error result Tom Lane

Aplikacje klienta

Zmiana Dodatkowe informacje Autor/Autorzy
Allow pgbench to retry after serialization and deadlock failures Yugo Nagata, Marina Polyakova
Aplikacje klienta – psql
Zmiana Dodatkowe informacje Autor/Autorzy
Improve performance of psql’s \copy command, by sending data in larger chunks Heikki Linnakangas
Add \dconfig command to report server variables This is similar to the server-side SHOW command, but it can process patterns to show multiple variables conveniently. Mark Dilger, Tom Lane
Add \getenv command to assign the value of an environment variable to a psql variable Tom Lane
Add + option to the \lo_list and \dl commands to show large-object privileges Pavel Luzanov
Add a pager option for the \watch command This is only supported on Unix and is controlled by the PSQL_WATCH_PAGER environment variable. Pavel Stehule, Thomas Munro
Make psql include intra-query double-hyphen comments in queries sent to the server Previously such comments were removed from the query before being sent. Double-hyphen comments that are before any query text are not sent, and are not recorded as separate psql history entries. Tom Lane, Greg Nancarrow
Adjust psql so that Readline’s meta-# command will insert a double-hyphen comment marker Previously a pound marker was inserted, unless the user had taken the trouble to configure a non-default comment marker. Tom Lane
Make psql output all results when multiple queries are passed to the server at once Previously, only the last query result was displayed. The old behavior can be restored by setting the SHOW_ALL_RESULTS psql variable to off. Fabien Coelho
After an error is detected in –single-transaction mode, change the final COMMIT command to ROLLBACK only if ON_ERROR_STOP is set Previously, detection of an error in a -c command or -f script file would lead to issuing ROLLBACK at the end, regardless of the value of ON_ERROR_STOP. Michael Paquier
Improve psql’s tab completion Shinya Kato, Dagfinn Ilmari Mannsåker, Peter Smith, Koyu Tanigawa, Ken Kato, David Fetter, Haiying Tang, Peter Eisentraut, Álvaro Herrera, Tom Lane, Masahiko Sawada
Limit support of psql’s backslash commands to servers running PostgreSQL 9.2 or later Remove code that was only used when running with an older server. Commands that do not require any version-specific adjustments compared to 9.2 will still work. Tom Lane
Aplikacje klienta – pg_dump
Zmiana Dodatkowe informacje Autor/Autorzy
Make pg_dump dump public schema ownership changes and security labels Noah Misch
Improve performance of dumping databases with many objects This will also improve the performance of pg_upgrade. Tom Lane
Improve parallel pg_dump’s performance for tables with large TOAST tables Tom Lane
Add dump/restore option –no-table-access-method to force restore to only use the default table access method Justin Pryzby
Limit support of pg_dump and pg_dumpall to servers running PostgreSQL 9.2 or later Tom Lane

Aplikacje serwera

Zmiana Dodatkowe informacje Autor/Autorzy
Add new pg_basebackup option –target to control the base backup location The new options are server to write the backup locally and blackhole to discard the backup (for testing). Robert Haas
Allow pg_basebackup to do server-side gzip, LZ4, and Zstandard compression and client-side LZ4 and Zstandard compression of base backup files Client-side gzip compression was already supported. Dipesh Pandit, Jeevan Ladhe
Allow pg_basebackup to compress on the server side and decompress on the client side before storage This is accomplished by specifying compression on the server side and plain output format. Dipesh Pandit
Allow pg_basebackup’s –compress option to control the compression location (server or client), compression method, and compression options Michael Paquier, Robert Haas
Add the LZ4 compression method to pg_receivewal This is enabled via –compress=lz4 and requires binaries to be built using –with-lz4. Georgios Kokolatos
Add additional capabilities to pg_receivewal’s –compress option Georgios Kokolatos
Improve pg_receivewal’s ability to restart at the proper WAL location Previously, pg_receivewal would start based on the WAL file stored in the local archive directory, or at the sending server’s current WAL flush location. With this change, if the sending server is running Postgres 15 or later, the local archive directory is empty, and a replication slot is specified, the replication slot’s restart point will be used. Ronan Dunklau
Add pg_rewind option –config-file to simplify use when server configuration files are stored outside the data directory Gunnar Bluth
Aplikacje serwera – pg_upgrade
Zmiana Dodatkowe informacje Autor/Autorzy
Store pg_upgrade’s log and temporary files in a subdirectory of the new cluster called pg_upgrade_output.d Previously such files were left in the current directory, requiring manual cleanup. Now they are automatically removed on successful completion of pg_upgrade. Justin Pryzby
Disable default status reporting during pg_upgrade operation if the output is not a terminal The status reporting output can be enabled for non-tty usage by using –verbose. Andres Freund
Make pg_upgrade report all databases with invalid connection settings Previously only the first database with an invalid connection setting was reported. Jeevan Ladhe
Make pg_upgrade preserve tablespace and database OIDs, as well as relation relfilenode numbers Shruthi Gowda, Antonin Houska
Add a –no-sync option to pg_upgrade This is recommended only for testing. Michael Paquier
Limit support of pg_upgrade to old servers running PostgreSQL 9.2 or later Tom Lane
Aplikacje serwera – pg_waldump
Zmiana Dodatkowe informacje Autor/Autorzy
Allow pg_waldump output to be filtered by relation file node, block number, fork number, and full page images David Christensen, Thomas Munro
Make pg_waldump report statistics before an interrupted exit For example, issuing a control-C in a terminal running pg_waldump –stats –follow will report the current statistics before exiting. This does not work on Windows. Bharath Rupireddy
Improve descriptions of some transaction WAL records reported by pg_waldump Masahiko Sawada, Michael Paquier
Allow pg_waldump to dump information about multiple resource managers This is enabled by specifying the –rmgr option multiple times. Heikki Linnakangas

Dokumentacja

Zmiana Dodatkowe informacje Autor/Autorzy
Add documentation for pg_encoding_to_char() and pg_char_to_encoding() Ian Lawrence Barwick
Document the ^@ starts-with operator Tom Lane

Kod źródłowy

Zmiana Dodatkowe informacje Autor/Autorzy
Add support for continuous integration testing using cirrus-ci Andres Freund, Thomas Munro, Melanie Plageman
Add configure option –with-zstd to enable Zstandard builds Jeevan Ladhe, Robert Haas, Michael Paquier
Add an ABI identifier field to the magic block in loadable libraries, allowing non-community PostgreSQL distributions to identify libraries that are not compatible with other builds An ABI field mismatch will generate an error at load time. Peter Eisentraut
Create a new pg_type.typcategory value for “char” Some other internal-use-only types have also been assigned to this category. Tom Lane
Add new protocol message TARGET to specify a new COPY method to be used for base backups pg_basebackup now uses this method. Robert Haas
Add new protocol message COMPRESSION and COMPRESSION_DETAIL to specify the compression method and options Robert Haas
Remove server support for old BASE_BACKUP command syntax and base backup protocol Robert Haas
Add support for extensions to set custom backup targets Robert Haas
Allow extensions to define custom WAL resource managers Jeff Davis
Add function pg_settings_get_flags() to get the flags of server variables Justin Pryzby
On Windows, export all the server’s global variables using PGDLLIMPORT markers Previously, only specific variables were accessible to extensions on Windows. Robert Haas
Require GNU make version 3.81 or later to build PostgreSQL Tom Lane
Require OpenSSL to build the pgcrypto extension Peter Eisentraut
Require Perl version 5.8.3 or later Dagfinn Ilmari Mannsåker
Require Python version 3.2 or later Andres Freund

Dodatkowe moduły

Zmiana Dodatkowe informacje Autor/Autorzy
Allow amcheck to check sequences Mark Dilger
Improve amcheck sanity checks for TOAST tables Mark Dilger
Add new module basebackup_to_shell as an example of a custom backup target Robert Haas
Add new module basic_archive as an example of performing archiving via a library Nathan Bossart
Allow btree_gist indexes on boolean columns These can be used for exclusion constraints. Emre Hasegeli
Fix pageinspect’s page_header() to handle 32-kilobyte page sizes Previously, improper negative values could be returned in certain cases. Quan Zongliang
Add counters for temporary file block I/O to pg_stat_statements Masahiko Sawada
Add JIT counters to pg_stat_statements Magnus Hagander
Add new module pg_walinspect This gives SQL-level output similar to pg_waldump. Bharath Rupireddy
Indicate the permissive/enforcing state in sepgsql log messages Dave Page
Dodatkowe moduły – postgres_fdw
Zmiana Dodatkowe informacje Autor/Autorzy
Allow postgres_fdw to push down CASE expressions Alexander Pyhalov
Add server variable postgres_fdw.application_name to control the application name of postgres_fdw connections Previously the remote session’s application_name could only be set on the remote server or via a postgres_fdw connection specification. postgres_fdw.application_name supports some escape sequences for customization, making it easier to tell such connections apart on the remote server. Hayato Kuroda
Allow parallel commit on postgres_fdw servers This is enabled with the CREATE SERVER option parallel_commit. Etsuro Fujita

Podsumowanie

Patrząc na ciągły rozwój i dbałość o kwestie bezpieczeństwa na najwyższym poziomie, możemy być spokojni o przyszłość PostgreSQL. Natomiast osoby, którym nie wystarczają możliwości samego Postgresa, zachęcamy do zapoznania się z platformą bazodanową EuroDB, której funkcje znacząco rozszerzają standardowe możliwości PostgreSQL. EuroDB jest w pełni kompatybilne z PostgreSQL i oferuje profesjonalne wsparcie techniczne dla użytkowników tego silnika bazodanowego. To idealne narzędzie dla każdego administratora baz danych.

blank Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.