Revert the change of the MARK_DELETED event into DELETE_MARK. Change the CLEANUP_ROLLBACK_STATE hist_function into CLEANUP_RLBK_STATE. And replace the (DBLINK, OPEN CNX) and (DBLINK, CLOSE CNX) hist_function + hist_event into simple DBLINK_OPEN_CNX and DBLINK_OPEN_CNX hist_function records.
Also move the dblink extension detection at the end of the installation procedure.
…j_viewer role. Instead, create a new emaj_visible_param view that provides the same visibility, except for the value of the new 'dblink_user_password' parameter that is masked and grant select to emaj_adm and emaj_viewer roles.
…ll other E-Maj ids are of type bigint, but it seems to be largely overstated for this case.
…e log tables reorganization.
… tables and sequences, like other main rollback functions.
… clause for the emaj_tuple column. With the new rollback coding, this specific ordering is now useless.
… the per table rollback functions that are now useless. Improve the CHANGES file to report the optimizations done in the rollback processing.
… steps by keeping estimated quantities in emaj_rlbk_stat, instead of real quantities. This is also more coherent with what is done for other steps and do not lead to really less accurate estimates.
…ssions = 1. Otherwise, use UNLOGGED table with pg9.1+ or standart table with pg 9.0-.
… phase commit when only a single session is used. This allows to use TEMP tables in the rollback processing when the number of requested session equals 1. Also call the _rlbk_init() function after the transactions have been started.
…lue to 4 ms. Adjust the way steps duration are recorded. Remove the 'LOCK_TABLE' event from the emaj_rlbk_plan table at the end of the rollback operation (they are not useful any more). For each rollback operation, add a pseudo 'CTRL+DBLINK' or 'CTRL-DBLINK' step to estimate and record the time needed to chain the steps execution, with ou without using dblink connections. Use them in all time estimations. And some minor coding improvements.
…most recently completed operations. And a bug has been fixed.
Reject the dblink connection if the transaction is not in READ COMMITTED isolation level. For parallel rollbacks (number of sessions > 1), check that the dblink connection is possible (otherwise, it generates endless locks between sessions). Being in READ COMMITTED isolation level, optimize the accesses to rollback tables by avoiding to use dblink for SELECT only statements. Rename into 'rlbk#' the dblink connection name suffix used for rollback operations.
…tional. If dblink is not already installed at E-Maj installation time, issue a warning message to advise to also install dblink.
… improve the help display.
…nitor.php) into a new client.sql script added to the non regression tests scenarios. Also remove some old references to pg 8.2 test environment.
…ollback operations that are currently in progress.
Adjust some costs. Rename the 'fixed_table_with_rollback_duration' parameter into 'fixed_step_rollback_duration' to better reflect its meaning. Create and use a new 'fixed_dblink_rollback_duration' parameter to systematicaly take into account the dblink overhead. In passing, optimize the duration estimate processing by directly inserting the duration estimate at insert time for steps easy to evaluate.
…LL when there was no update to rollback.
… and emaj_alter_group() time. Replace the _check_class() function by a new _check_group_content() function. This function performs similar checks but in a more efficient set oriented manner. It also checks that no application table belongs to an E-Maj secondary schema. When a check fails, it now returns the list of faulting tables and not only the first detected.
…mark names are built, by simply using the rollback start time already stored into the emaj_rlbk table.
…e phpPgAdmin plugin. It calls the main internal rollback functions after initialisation. Called asynchronously, it allows the ppa plugin to switch on the rollback monitoring just after the rollback submission.
…ge for the rollback operation (either OK or KO). Store a completion message (similar to the message inserted into the emaj_hist table) when the operation goes well. And trap the errors in all main rollback functions to populate this new column if a problem occurs. (Some additional trapping to add when pg 8.3 will not be supported any more)
…d by 'DELETE MARK'.
…nor an unlogged table.
… about in progress rollback operations. It returns a set of rows of type emaj_rollback_activity_type. They contain a description of each running rollback operation, as well as a remaining duration estimate and a percentage of work already done. emaj_adm and emaj_viewer roles can call it.