1.0.0 -> 1.0.1 -------------- - Logging function now catches permission and other exceptions to prevent bringing down the system when events cannot be logged. - cyanaudit_log_rotate.pl now exits cleanly if there are no events to rotate. - Instructions now correctly reflect that package is a .zip not .tar.gz - Installation package now includes all necessary files - Partition range constraints use >= instead of > now. 0.9.7 -> 1.0.0 -------------- - cyanaudit_restore.pl now sets up constraints on restored partition before setting up inheritance, to avoid locking parent table while constraints are validated. - cyanaudit_log_rotate.pl now correctly recreates constraints on archived table. - fn_create_partition_indexes() now works correctly with non-default tablespace. - fn_prune_archive(), called by cyanaudit_log_rotate.pl, now correctly drops the extension dependency before dropping the table. - cyanaudit_restore.pl now correctly archives the partition before restoring. 0.9.6 -> 0.9.7 -------------- - Can now log tables with multi-column PKs. - Specific trigger function no longer created for each table. Instead, a generic logging function is called by customized triggers. - cyanaudit_{dump/restore}.pl use md5 checksums to validate file integrity. - cyanaudit_dump.pl checks currency of output file based on mtime and last recorded timestamp of the partition (log table) being backed up. - cyanaudit_dump.pl is no longer responsible for dropping old tables. cyanaudit_log_rotate.pl is now responsible for archiving and dropping tables. - Log partition tables are now named according to when they start rather than end, and there is no more tb_audit_current (so that it doesn't have to be renamed upon rotate, and can be backed up and restored correctly). - DROP EXTENSION without CASCADE now silently drops all triggers and log tables. - CREATE EXTENSION cyanaudit; now does not require schema to be specified. Extension will automatically create and install into the 'cyanaudit' schema. - Lots and lots (and lots) of code cleanup. 0.9.5 -> 0.9.6 -------------- - Added support for logging tables in schemas other than 'public'. Yay! - Fixed event trigger, which was inserting schema-qualified table names into tb_audit_field, which as a result disabled logging on all existing fields. - Quieted notices regarding truncated trigger and function names - Created vw_audit_transaction_statement_inverse for pulling the inverse of a transaction's effective statements (now used by fn_undo_transaction()). - Simplified code by now requiring at least PostgreSQL version 9.3.3. - Dropped tb_audit_event.pid, which was not used. - Dropped unneeded tb_audit_field.audit_data_type and tb_audit_data_type. 0.9.4 -> 0.9.5 -------------- - Fixed incorrect behavior when cyanaudit.user_table_username_col was not correctly set. - Fixed bug when specifying -c option to cyanaudit_dump.pl, such that some files would be overwritten when they already existed, and some would not be written even if they didn't yet exist. - Fixed a couple of minor aesthetic issues with cyanaudit_dump.pl - Fixed auto-activate logic for new rows in tb_audit_field - Fixed malfunction when database name had characters that needed to be quoted - Fixed behavior with cyanaudit_restore.pl restoring archives not in current dir 0.9.3 -> 0.9.4 -------------- - Fixed error where pg_restore was trying to create triggers pointing to functions that did not exist 0.9.2 -> 0.9.3 -------------- - Fixed error where event trigger threw an exception when running as unprivileged user. - Tables restored with cyanaudit_restore.pl are now placed into the correct tablespace and also altered to be owned by the cyanaudit extension. - More intelligent naming of tables created by cyanaudit_restore.pl. Name of table will be taken from filename if it looks reasonable, otherwise it will be named dynamically according to the last recorded event in the table. - Fixed concurrency problem when restoring a cyanaudit-enabled database with pg_restore -j ##. 0.9.1 -> 0.9.2 -------------- - Fixed cyanaudit_log_rotate.pl to correctly move archived table to archive_tablespace and create new table in pg_default tablespace. - Fixed two functions that were being created in public schema instead of extensions's schema. - Configuration parameters are now stored on the database instead of in postgresql.conf. After upgrade, you may remove the cyanaudit.* config parameters from postgresql.conf. However, for PostgreSQL 9.1, you must retain the `custom_variable_classes = cyanaudit` setting. 0.9.0 -> 0.9.1 -------------- - Do not install event trigger on PostgreSQL 9.3.2 or below, as it is not handled properly by pg_dump. 0.4 -> 0.9.0 ------------ - Made Cyan Audit ready for PGXN - Changed to semantic version number 0.3 -> 0.4 ---------- - Changed extension name to "cyanaudit" and fixed branding throughout. - Added check for PostgreSQL 9.1.7 - Added support for archiving and restoring audit data to/from files. - Better error checking throughout and during installation. - Moved log rotation function to an external Perl script to avoid race condition - Fixed bug with audit_event sequence going out of range - Added DDL trigger for Postgres 9.3 and above 0.2 -> 0.3 ---------- - Lots of fixes for pg_dump/pg_restore and schema qualification - Added sequences sq_pk_audit_field and sq_pk_audit_data_type as config data 0.1 -> 0.2 ---------- - fn_update_audit_log_trigger_on_table() - Config tables tb_audit_field and tb_audit_data_type