Skip to content

Commit

Permalink
Restructure the _rlbk_end() function in order to move the sequences r…
Browse files Browse the repository at this point in the history
…ollback (which is not transaction safe) a little bit later in the operations. Also remove some obsolete lines of code.
  • Loading branch information
beaud76 committed Dec 9, 2022
1 parent 325362b commit 70a2aad
Show file tree
Hide file tree
Showing 14 changed files with 644 additions and 404 deletions.
2 changes: 1 addition & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ E-Maj - Change log
<devel>
------
###Enhancements:###

* Minor code changes.

###Bug fixes:###

Expand Down
291 changes: 291 additions & 0 deletions sql/emaj--4.1.0--devel.sql

Large diffs are not rendered by default.

243 changes: 113 additions & 130 deletions sql/emaj--devel.sql

Large diffs are not rendered by default.

243 changes: 113 additions & 130 deletions sql/emaj-devel.sql

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion test/10/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower(t.rel_tim
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
PL/pgSQL function emaj.emaj_rollback_group(text,text,boolean) line 7 at RETURN QUERY
rollback;
Expand Down
245 changes: 114 additions & 131 deletions test/11/expected/install_psql.out

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion test/11/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower(t.rel_tim
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
PL/pgSQL function emaj.emaj_rollback_group(text,text,boolean) line 7 at RETURN QUERY
rollback;
Expand Down
2 changes: 1 addition & 1 deletion test/12/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower(t.rel_tim
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
PL/pgSQL function emaj.emaj_rollback_group(text,text,boolean) line 7 at RETURN QUERY
rollback;
Expand Down
2 changes: 1 addition & 1 deletion test/13/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower(t.rel_tim
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
PL/pgSQL function emaj.emaj_rollback_group(text,text,boolean) line 7 at RETURN QUERY
rollback;
Expand Down
2 changes: 1 addition & 1 deletion test/14/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -688,7 +688,7 @@ SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower(t.rel_tim
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
SQL statement "SELECT *
FROM emaj._rlbk_end(v_rlbkId, p_multiGroup)"
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
Expand Down
8 changes: 4 additions & 4 deletions test/15/expected/check.out
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,8 @@ select funcname, calls from pg_stat_user_functions
_start_groups | 53
_stop_groups | 67
_truncate_trigger_fnct | 16
_verify_all_groups | 47
_verify_all_schemas | 47
_verify_all_groups | 48
_verify_all_schemas | 48
emaj_assign_sequence | 6
emaj_assign_sequences | 7
emaj_assign_sequences | 13
Expand Down Expand Up @@ -255,14 +255,14 @@ select funcname, calls from pg_stat_user_functions
emaj_stop_groups | 10
emaj_unprotect_group | 7
emaj_unprotect_mark_group | 6
emaj_verify_all | 47
emaj_verify_all | 48
(168 rows)

-- count the total number of user-callable function calls (those who failed are not counted)
select sum(calls) from pg_stat_user_functions where funcname like E'emaj\\_%';
sum
-----
997
998
(1 row)

-----------------------------
Expand Down
2 changes: 1 addition & 1 deletion test/15/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -688,7 +688,7 @@ SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower(t.rel_tim
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
SQL statement "SELECT *
FROM emaj._rlbk_end(v_rlbkId, p_multiGroup)"
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
Expand Down
2 changes: 1 addition & 1 deletion test/95/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@ CONTEXT: SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
PL/pgSQL function emaj.emaj_rollback_group(text,text,boolean) line 7 at RETURN QUERY
rollback;
Expand Down
2 changes: 1 addition & 1 deletion test/96/expected/rollback.out
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ SQL statement "SELECT emaj._rlbk_seq(t.*, greatest(v_markTimeId, lower(t.rel_tim
AND rel_kind = 'S'
ORDER BY rel_schema, rel_tblseq
) as t"
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 138 at PERFORM
PL/pgSQL function emaj._rlbk_end(integer,boolean) line 237 at PERFORM
PL/pgSQL function emaj._rlbk_groups(text[],text,boolean,boolean,boolean) line 34 at RETURN QUERY
PL/pgSQL function emaj.emaj_rollback_group(text,text,boolean) line 7 at RETURN QUERY
rollback;
Expand Down

0 comments on commit 70a2aad

Please sign in to comment.