Releases: cybertec-postgresql/pg_squeeze
pg_squeeze 1.8.0
Release 1.8.0
This release fixes a bug in the squeeze.squeeze_table() function, which can
cause data corruption. The problem can occur if other clients run DDL
statements or squeeze other tables around the time the function starts its
execution.
Automatic launching by the scheduler worker (as described in the "Register
table for regular processing" section of README) is not affected.
pg_squeeze 1.7.0
Release 1.7.0
New features
-
Make the code compatible with PostgreSQL server version 17.
-
Do not copy the values of dropped columns into the new table storage
(file).So far, only the whole rows (the deleted ones) were considered to
contribute to the table bloat. Now we also reclaim the space occupied by
dropped columns. -
Let the squeeze.squeeze_table function raise ERROR.
So far, the function only inserted record into the squeeze.log table if the
processing was successful, and into squeeze.errors if it failed. Now, in
the case of failure, the function also prints out the error message into
the console. -
Do not let the squeeze workers run if there is currently no work for them.
For automatic processing, one scheduler worker per database needs to run,
but the actual squeeze worker is only started if particular table appears
to be bloated. Once done with the processing, the squeeze worker exits
instead of waiting for another task. -
Improved parallelism of the squeeze workers.
Multiple worker processes (one per table) can be used since the release
1.6, but so far it was still possible that the work gets serialized due to
the logical decoding setup. Those limitations have been relaxed in 1.7.
Bug fixes
-
Fixed broken setup of "shared memory hooks".
This could cause server crash if other extensions installed their hooks as
well. (#68) -
Fixed evaluation of the squeeze.max_xlock_time configuration variable.
Due to this bug, pg_squeeze behaved as if the timeout was set to much lower
value. (The bug had no effect if the variable was set to 0, which is the
default.) -
Fixed permissions checks for the squeeze.pgstattuple_approx() function.
Like with other functions of this extension, the SUPERUSER role attribute
is not needed for execution. The REPLICATION attribute is sufficient. -
Update BRIN indexes when appropriate.
If a row was updated during the table processing and only the attributes of
"summarizing" (BRIN) indexes changed, pg_squeeze could fail to update those
indexes.This bug only affects pg_squeeze on PostgreSQL 16.
pg_squeeze 1.7.0 beta 2
-
Check properly if indexes need to be updated.
In PG 16 it's possible to use HOT update even if indexed attributes change -
in particular, the attributes of "summarizing" indexes. Therefore, the check
for HOT update is not sufficient. -
Fixed compatibility with PG 17.