Skip to content

Releases: cybertec-postgresql/pg_squeeze

pg_squeeze 1.8.0

24 Jan 14:32
Compare
Choose a tag to compare

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

24 Jan 14:31
Compare
Choose a tag to compare

Release 1.7.0

New features

  1. Make the code compatible with PostgreSQL server version 17.

  2. 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.

  3. 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.

  4. 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.

  5. 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

  1. Fixed broken setup of "shared memory hooks".

    This could cause server crash if other extensions installed their hooks as
    well. (#68)

  2. 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.)

  3. 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.

  4. 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

19 Aug 14:42
REL1_7_0_BETA2
Compare
Choose a tag to compare
Pre-release
  • 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.