- Fixed the quotation bug for indexes with names containing whitespaces (thanks to Rafał Fitt)
- Fixed the non working statement timeout in the reindexing process
- Made it use
DROP INDEX CONCURRENTLYif version is>=9.2 - Fixed the randomness of the SET statements order in database adapters
- Made it to process TOAST tables and indexes providing bloat information and rebuilding instructions
- Set an additional protection against the "incorrect result of cleaning" error
- Fixed the dependency check leading to the inability to re-index some primary keys
- Turned off statement timeouts for
pgcompact's sessions - Increased the
psqlresponse timeout to 10 hours - Removed the necessity to set
PERL5LIB(thanks to Hubert "depesz" Lubaczewski) - Fixed the completion check leading to unfinished processing in some cases
- Made the re-indexation process more lock-friendly by getting rid of long waiting for exclusive locks
- Added usage examples to the
--helpoutput - Got rid of hard-coded connection parameters (thanks to Hubert "depesz" Lubaczewski)
- Allowed processing of the
postgresandtemplate1databases - Resolved the several simultaneously running instances collisions issue (thanks to Gonzalo Gil)
Note that pgcompactor was renamed to pgcompact.
- Set
lc_messagestoCto simplify message processing - Renamed
pgcompactorto pgcompact - Fixed the
lc_messagesinvalid value issue - Reviewed documentation and licensing info
- Added a short list of
pgcompact's abilities - Fixed the
$prog_namein concatenation error - Added an experimental feature of compacting system catalog
- Excluded
pg_catalog.pg_indexfrom compacting list - Fixed wrong initial index size reporting after reindexing
- Fixed
psqlerror trapping and adjusted error reporting - Improved the error processing in database adapters
- Reviewed the
pgcompact's man - Adapted to comply with
GitHub - Added future plans
- Refactored information files,
PgToolkitis released under the PostgreSQL License now - Improved error messages, help hints and options' warnings.
- Added
-V(--version) functionality - Fixed the bug with storage parameters on tables and indexes
- Removed useless information from compacting results
- Added bloat information to the messages about reindex impossibility
- Made sizes pretty printed (kB, MB, GB, TB)
- Moved skipping messages to the
INFOlevel - Fixed the infinity loop on the size change check bug
- Fixed the bug when reindex is skipped if table was not compacted but will be skipped the next round
- Fixed the bug of reindexing when
--dry-runis specified - Optimized the pgstattuple based bloat calculation
- Refactored autonomous scripts building facilities, now the scripts
are available straight from the
fatpackdirectory - Fixed the error when 0 or 1 pages left
- Fix the silent
--manand--helpproblem - Separated completion statistics and warnings
- Added a basic processing of the cases with tables/indexes deletion in the process of compacting
- Fixed the reindex syntax and added a comment with database name
- Fixed the partial indexes reindexing
- Increased verbosity on connection errors (thanks to Rural Hunter).
- Made it use
.pgpassand environment variables (thanks to Rural Hunter) - Refactored the psql adapter to bidirectional communication what increased processing speed dramatically
- Got rid of the final exception in the cleaning stored function (thanks to Lonni Friedman).
- Added reindexing when table is skipped and
pgstattupleinstalled - Fixed wrong
fillfactorcalculation for tables and indexes - Added the minimum pages restriction for indexes
- Added a check of base restrictions after processing
- Added a
session_replication_rolecheck in the cleaning function - Made reindexing of non
btreeindexes only when--forceis specified - Refactored the index dependencies check to not rebuild indexes that require heavy locks
- Solved the
psqladapter quietness problem (thanks toe.sergeyfor the bug report).
- Fixed the error when
-dand/or-tare specified - Fixed the bug with conforming strings
- Fixed the unicode name index altering bug
- Fixed the error output recognition in the psql adapter
- Prevented processing from interupting after deadlocks
- Fixed the "can not get bloat statistics" warning on empty tables
- Disabled printing incomplete statistics if table is processed
- Set
synchronous_committo off andsession_replication_roleto replica on the database level.
Take into consideration the new name of the tool.
- Renamed
pg_compactortool topgcompactor - Added
--dry-run - Added fillfactor to all the statistics calculations
- Fixed the reindex duration bug
- Got rid of the schema as a middle level
- Tables are sorted by size inside their database
- Added the ability of reindexing internal indexes like
PRIMARY KEYandUNIQUE - Added the reindexing necessity check based on the
pgstattuplestatistics - A lot of minor changes.
- Reworked reindex to be performed in any case when a table has been compacted or it has not (after the last iteration)
- Fixed the query for testing "always" and "replica" triggers
- Refactored the logic of bloat statistics to lower the amount of
heavy
pgstattuplecalls - Fixed the final statistics
- Added bloat statistics requests duration.
- Refactored out useless resource consuming
pgstattuplecalls - Added
DEBUG0andDEBUG1logging levels and applied to SQL queries logging - Turned off server side prepares for
DBIdrivers - Made some minor changes.