E.1. Release Notes for Tantor SE 18.4.0#

E.1. Release Notes for Tantor SE 18.4.0

E.1. Release Notes for Tantor SE 18.4.0 #

Release date: 2026-08-17

E.1.1. Review #

Tantor SE is a Russian-made DBMS based on the updated and improved version of the PostgreSQL DBMS. Tantor SE 18.4.0 is based on PostgreSQL 18 and includes all the new features introduced in PostgreSQL 18, as well as changes included in the PostgreSQL 18.4 and previous releases of Tantor SE.

The list of changes in Tantor SE 18.4.0 compared to the previous release is listed below.

E.1.2. DBMS Core Functionality #

The following changes have been made to improve the DBMS:

  • Added implicit preparation (Autoprepare) of frequently executed queries, enabled by the autoprepare_threshold parameter. When it is enabled, the backend caches query plans on its own and reuses them on subsequent executions, so parse analysis, rewriting and planning are skipped without any changes in the application.

  • Fixed the cost estimation model for parallel query execution with temporary tables when using the extended_parallel_processing parameter. Overestimation of individual subplan costs, which in some cases led to choosing a suboptimal query plan, has been eliminated.

  • Added an optimization for queries with ORDER BY and LIMIT controlled by the enable_sort_pushdown parameter. It allows sorting to be performed before outer joins when this reduces query cost and improves performance.

  • An optimization controlled by the enable_semijoin_relocation parameter has been implemented to relocate pulled-up SEMI/ANTI joins next to the relations they reference. This allows the planner to apply subquery filters earlier, reduce the amount of data processed, and choose a more efficient execution plan.

  • Implemented an optimization controlled by the enable_nestloop_onetime_filter parameter that uses smart filters to reduce the number of Nested Loop iterations.

  • Added bloom filter support controlled by the enable_hashjoin_bloom parameter, which speeds up queries that join tables with a large number of rows.

  • Improved the statistics usage algorithm for composite indexes: added the enable_multicolumn_stats_detail parameter, which enables collection of prefix histograms for multi-column btree indexes during ANALYZE.

  • Reduced lock contention in the shared invalidation message queue: the internal spinlock has been replaced with atomic operations.

  • Added support for pages using CSM compression to the pg_checksums utility.

  • Added a hash index for SLRU buffer lookups. Page lookups in SLRU caches now use hash search instead of linear scan within associative banks, improving access performance for CLOG, subtrans, multixact, and other SLRU-based subsystems.

  • Fixed a query planner error where using COALESCE in join conditions could lead to overestimated Hash Join costs and selection of a less efficient plan. The default value of the enable_coalesce_estimation parameter is set to off.

  • Fixed an error that, when working with temporary tables and using the enable_temp_memory_catalog parameter, could in some cases cause the backend process to crash.

  • Fixed an error when upgrading from the BE edition to SE using pg_upgrade that could result in the messages calculated CRC checksum does not match value stored in control file and invalid WAL segment size in control file.

  • Fixed the cannot drop table <table_name> because other objects depend on it error, where internal objects of multi-column indexes could incorrectly remain part of the pg_profile extension after ALTER EXTENSION ... DROP TABLE, causing an error on subsequent table drops.

  • Fixed the type "<name>_ccnew" already exists error that could cause a repeated REINDEX CONCURRENTLY on a multi-column index to fail.

  • Fixed an error in the pg_visible_in_snapshot() function when working with CSN snapshots that could lead to incorrect transaction visibility determination or a backend process crash.

  • Fixed an OID collision error when using temporary tables on a replica.

  • Fixed an error with parsing the text representation of CSN snapshots that caused conversion to the pg_snapshot type to fail with invalid input syntax for type pg_snapshot message.

  • Eliminated redundant processing of queries with GROUP BY and DISTINCT. The planner no longer adds unnecessary duplicate-elimination operations when the grouping result already contains only unique rows.

  • Fixed incorrect removal of DISTINCT in queries containing set-returning functions (SRF).

  • Fixed an error where stale overflow data cache entries could remain after a database drop, causing could not open file "...": No such file or directory errors when subsequently creating a database.

  • Fixed an error in CSN snapshot construction that in some cases could lead to incorrect data visibility during parralel execution of transactions.

  • Fixed errors in CSN-MVCC mode related to transaction snapshot construction and state handling. This improves the correctness of data visibility determination during transaction executions.

  • Fixed errors that, when using the enable_temp_memory_catalog parameter, could in some cases cause the backend process to crash during creation and deletion of temporary tables.

E.1.3. Additional Supplied Modules #

  • auto_dump:

    • Fixed an error in the logic of the auto_dump mechanism when analyzing suboptimal query execution plans.

    • Fixed an error that in some cases could cause the backend process to crash when using the auto_dump mechanism together with the csm_compress_analysis() function.

  • credcheck updated to version 5.0.

  • mchar:

    • Optimized execution of queries with the LIKE operator for the mchar and mvarchar types. Improved performance of prefix and substring searches; for prefix searches, the planner can use an index.

    • Fixed the value too long for type mvarchar(20) error for mvarchar columns that could occur when restoring column statistics with pg_restore_attribute_stats() during a pg_upgrade cluster upgrade.

  • Fixed an incorrect error message when installing the pg_cron extension if the library was not loaded via shared_preload_libraries.

  • pg_ilm:

    • Fixed an error where tables were not converted to columnar format (warm_columnar and cold_columnar) when indexes were present.

    • Fixed an error in Flamegraph metric calculation that occurred when building a graph for an interval exceeding the statistics retention time.

  • pg_tde:

    • Improved extension performance through internal key caching.

    • Fixed an error where in some cases the default MD storage manager was used instead of the selected one.

E.1.4. Operating System Support #

Added build support for OS:

  • RED OS 8 Certified Edition

  • Rocky Linux 10

  • Ubuntu 24.04

  • Ubuntu 26.04

For a complete list of supported operating systems, see the Installation from Binaries section.

E.1.5. Migration to version 18.4.0 #

To migrate from PostgreSQL or Tantor DB, first install the latest minor version and then perform a data offload/restore by applying pg_dumpall, or use the pg_upgrade utility.

Caution

Starting with PostgreSQL 18, clusters initialized with initdb have data page checksums enabled by default. This may affect upgrades from clusters created without checksums: pg_upgrade requires the old and new clusters to use the same checksum setting. If you upgrade to version 18.4.0 using pg_upgrade from a non-checksum-enabled cluster, initialize the new cluster with initdb --no-data-checksums, or enable checksums in the old cluster before running pg_upgrade.

When upgrading within the current major version and edition, install Tantor SE 18.4.0 and restart the database server with command:

systemctl restart tantor-se-server-18

Warning

When updating skipping previous major versions (for example, from version 16 to 18 at once), it is recommended to pre-execute VACUUM FREEZE for all cluster databases.

If VACUUM FREEZE is not possible, it is recommended to upgrade sequentially, installing each major version in order.