Fix skip-empty-xacts with sequences in test_decoding
Tomas Vondra <tomas.vondra@postgresql.org>
Fix skip-empty-xacts with sequences in test_decoding Regression tests need to use skip-empty-xacts = false, because there might be accidental concurrent activity (like autovacuum), particularly on slow machines. The tests added by 80901b3291 failed to do that in a couple places, triggering occasional failures on buildfarm. Fixing the tests however uncovered a bug in the code, because sequence callbacks did not handle skip-empty-xacts properly. For trasactional increments we need to check/update the xact_wrote_changes flag, and emit the BEGIN if it's the first change in the transaction. Reported-by: Andres Freund Discussion: https://postgr.es/m/20220212220413.b25amklo7t4xb7ni%40alap3.anarazel.de
Files
| Path | Change | +/− |
|---|---|---|
| contrib/test_decoding/expected/sequence.out | modified | +5 −7 |
| contrib/test_decoding/sql/sequence.sql | modified | +4 −4 |
| contrib/test_decoding/test_decoding.c | modified | +22 −0 |
Discussion
Cited messages not in the archive:
20220212220413.b25amklo7t4xb7ni@alap3.anarazel.de