1.0.1 -> 1.0.2

  • Order of operations in fn_archive_partition changed to reduce duration of exclusive lock on tb_audit_event, which could cause lockups during archival.

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