Permalink
Commits on Nov 15, 2016
  1. Setup new 2.0.0 version

    committed Nov 15, 2016
Commits on Nov 13, 2016
  1. In the regression test suite, delete useless sql scripts that used ps…

    …ql for installation. Also rename regress schedule files and some regress sql test files to get more accurate and normalized names.
    committed Nov 13, 2016
Commits on Nov 11, 2016
  1. Improve the ppa.sql script.

    committed Nov 11, 2016
  2. Fix the emaj_rollback_activity() function that did not reported in pr…

    …ogress rollback operations having the LOCKING status. Use a left outer join on the emaj_time_stamp table to get the rollback start timestamp that is NULL when the rollback start mark is not yet set.
    committed Nov 11, 2016
Commits on Nov 1, 2016
  1. Improve the emaj_get_consolidable_rollbacks() function, returning als…

    …o for each rollback consolidation the number of marks that would be deleted.
    committed Nov 1, 2016
Commits on Oct 24, 2016
  1. Improve the test environment. In regress.sh and all_cluster.sh, avoid…

    … to reference postgres minor versions by using symbolic links. Adjust a test into the instExtMig.sql script to ensure a result order stability. Use the <NEXT_VERSION> version tag also in upgrade scripts, until the version is released. Add a simple script named create_cluster.sh to help creating new postgres clusters.
    committed Oct 24, 2016
Commits on Oct 13, 2016
  1. In all script upgrading E-Maj versions, replace the words "migration"…

    … or "migrate" by "upgrade" for consistency. Also remove scripts that upgrade from an E-Maj version older than 0.11.0. There was heavy constraints on log table contents. And with the very first attempt to install E-Maj as an extension, the upgrade path was ugly. For E-Maj installed in a version older than 0.11.0, just drop and re-install E-Maj.
    committed Oct 13, 2016
Commits on Oct 8, 2016
  1. Rename the emaj_set_event_triggers_protection.sql script into emaj_up…

    …grade_after_postgres_upgrade.sql so that it could handle some other cases of E-Maj discrepancy between postgres version in the future. Also add a check in the emaj_verify_all() function on missing event triggers.
    committed Oct 8, 2016
Commits on Oct 3, 2016
  1. Add tests in afterMigLoggingGroup.sql test script to verify that 1) a…

    … multi groups rollback works on common mark set before the upgrade and 2) a rollback consolidation works with a logged rollback on a mark set before the upgrade.
    committed Oct 3, 2016
  2. Create a perl script, named check_error_messages.pl, that analyzes ho…

    …w the non regression tests cover the error or warning messages coded in the E-Maj source file.
    committed Oct 3, 2016
Commits on Oct 2, 2016
  1. Add 7 tests in the regression test scripts to cover some not yet cove…

    …red error messages. Also adjust some error messages.
    committed Oct 2, 2016
Commits on Sep 29, 2016
  1. Move the check on postgres version at group creation time from the _v…

    …erify_groups() function to the 1.3.1 to 1.2.0 upgrade script. And accept groups created with postgres 8.4+ (instead of 9.1+), although the minimum current postgres version remains 9.1.
    committed Sep 29, 2016
  2. Change some error or warning messages so that they can be unique in t…

    …he source code. All this will simplify the development of a tool that will look for messages non present in regression tests results. Also refactor the _stop_groups() function to avoid redundant error messages when application schemas have been dropped.
    committed Sep 29, 2016
Commits on Sep 22, 2016
  1. In the internal emaj_sequence table, remove the sequ_mark column. Wit…

    …h the sequ_time_id column this sequ_mark is now redundant. Also improve the coding of the emaj_snap_log_group() function.
    committed Sep 22, 2016
Commits on Sep 21, 2016
  1. In the unlogged rollback processing, move the deletion of emaj_sequen…

    …ce rows corresponding to deleted marks from _delete_log_tbl() to _rlbk_end(). This avoids keeping useless rows in emaj_sequence for tables that have no log to rollback. Move also the deletion of emaj_sequence rows for application sequences from _rlbk_seq() to _rlbk_end().
    committed Sep 21, 2016
Commits on Sep 20, 2016
  1. Remove the sequ_id column from the emaj_sequence table and the mark_l…

    …ast_sequence_id column from the emaj_mark table. They are now useless as time stamp ids can be used instead.
    committed Sep 20, 2016
Commits on Sep 19, 2016
  1. Optimize the _rlbk_tbl() function by passing additional parameters to…

    … the _rlbk_tbl function. Also add a condition setting an upper limit for the emaj_gid to the statement that creates the temporary table containing the primary keys to process. As a result, all updates generated at rollback time by not disabled application triggers are systematically executed and not rolled back.
    committed Sep 19, 2016
Commits on Sep 16, 2016
  1. Report from 1.3.1 the fix of the performance issue encountered with l…

    …ogged rollback operations in some rare cases.
    committed Sep 16, 2016
  2. Adapt the ppa.sql script that prepares an environment to test the php…

    …PgAdmin plugin, so that it can be executed several times.
    committed Sep 16, 2016
Commits on Sep 5, 2016
  1. Add a new sql script at the end of scenarios just before cleaning. Na…

    …med check.sql, it collects all checks performed on emaj objects (comments on functions, rights on functions, ...) that were located at various places in scripts. Also add test coverage data by displaying for each function the number of calls performed during the scenario. This needs the GUC track_functions set to all in postgresql.conf file.
    committed Sep 5, 2016
Commits on Sep 2, 2016
  1. In the emaj_rlbk table, replace the rlbk_mark_datetime column by a rl…

    …bk_mark_time_id column containing the time id of the mark to rollback to (instead of the mark timestamp). The _get_mark_datetime() function, renamed _get_mark_time_id(), now returns the mark time id.
    committed Sep 2, 2016
  2. In the emaj_mark table, remove the mark_datetime column that is no lo…

    …nger needed. Adapt the few remaining functions that used it.
    committed Sep 2, 2016
  3. Change the structure of the emaj_seq_hole table that records the hole…

    … in log sequences generated by unlogged rollback operations or logged rollback consolidations. The time range of a hole is now defined with 2 time stamp ids, rather than 2 mark id. This avoids to generate pseudo marks at the beginning of unlogged rollbacks, and provides a concept of hole that is less linked to marks. Adapt the functions that access emaj_seq_hole accordingly. The signature of _log_stat_tbl() and _delete_log_tbl() internal functions are modified as they require less parameters.
    committed Sep 2, 2016
Commits on Aug 30, 2016
Commits on Aug 29, 2016
  1. In the emaj_rlbk table, add a new rlbk_time_id column representing th…

    …e associated time stamp id in the emak_time_stamp table. Adjust most functions that use this rollback timestamp accordingly. When performing a rollback, move the creation of the time stamp in the _rlbk_start_mark() function, after having locked the tables of the groups, so that there is no risk that updates may be performed after having recorded the global sequence last value. The start mark of a logged rollback operation now shares the same time stamp id with its rollback.
    committed Aug 29, 2016
Commits on Aug 26, 2016
  1. In the emaj_sequence table, add a new sequ_time_id column representin…

    …g the associated time stamp id in the emak_time_stamp table. Drop also the sequ_datetime columns which is now useless. Adjust all functions using this data accordingly. Add the forgotten FKEY on emaj_mark referencing emaj_time_stamp. Add also additional checks on number of rows for emaj tables upgrade.
    committed Aug 26, 2016
Commits on Aug 25, 2016
  1. In emaj_snap_log_group() function, temporarily create a real mark to …

    …generate the sequences file for the current state (i.e. when no end mark parameter is supplied). Create a new _delete_intermediate_mark_group() function to share code between the emaj_delete_mark_group() and emaj_snap_log_group() functions. Rename the _delete_between_mark_group() function into _delete_between_marks_group().
    committed Aug 25, 2016
  2. In the emaj_mark table, add a new mark_time_id column representing th…

    …e associated time stamp id in the emak_time_stamp table. Drop also the mark_txid and the mark_global_seq columns which are redundant with their equivalent columns in the emaj_time_stamp table. Start replacing the usage of the mark_datetime by the equivalent column in the emaj_time_stamp table.
    committed Aug 25, 2016
Commits on Aug 22, 2016
  1. Create a perl script, named sync_fct_in_upgrade_script.pl. It generat…

    …es into the upgrade script DROP FUNCTION statements for obsolete functions or functions whose signature has changed, and copies the CREATE FUNCTION statements for the new or changed functions from the creation script of the version to the upgrade script. It also copies the CREATE COMMENT statements associated to the copied functions. In the source script, set all function return types in upper case and remove the variable names of the function signature in the CREATE COMMENT for emaj_gen_sql_group() and emaj_gen_sql_groups().
    committed Aug 22, 2016
Commits on Aug 21, 2016
  1. In the emaj_group table, replace the group_creation_datetime and grou…

    …p_last_alter_datetime columns by the associated time stamp id in the emaj_time_stamp table.
    committed Aug 21, 2016
Commits on Aug 17, 2016
  1. Create a new emaj_time_stamp table to record the timestamps of main E…

    …-Maj events. Insert emaj_time_stamp rows in functions that create and alter groups, that set marks and that rollback groups. These stamps are insensitive to system time fluctuations and transaction wrapaound. They will be used as time references in other internal tables (this will be the subject of another dedicated patch).
    committed Aug 17, 2016