mirror of
https://github.com/postgres/postgres.git
synced 2025-07-15 19:21:59 +03:00
Skip empty transaction stream in test_decoding.
We were decoding empty transactions via streaming APIs added in commit
45fdc9738b
even when the user used the option 'skip-empty-xacts'. The APIs
makes no effort to skip empty xacts under the assumption that we will
never try to stream such transactions. However, that is not true because
we can pick to stream a transaction that has change messages for
REORDER_BUFFER_CHANGE_INTERNAL_SNAPSHOT and we don't send such messages to
downstream rather they are just to update the internal state. So, we need
to skip such xacts when plugin uses the option 'skip-empty-xacts'.
Diagnosed-By: Amit Kapila
Author: Dilip Kumar
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/CAA4eK1+OqgFNZkf7=ETe_y5ntjgDk3T0wcdkd4Sot_u1hySGfw@mail.gmail.com
This commit is contained in:
@ -29,10 +29,7 @@ COMMIT;
|
||||
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1');
|
||||
data
|
||||
----------------------------------------------------------
|
||||
opening a streamed block for transaction
|
||||
streaming message: transactional: 1 prefix: test, sz: 50
|
||||
closing a streamed block for transaction
|
||||
aborting streamed (sub)transaction
|
||||
opening a streamed block for transaction
|
||||
streaming change for transaction
|
||||
streaming change for transaction
|
||||
@ -56,7 +53,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'incl
|
||||
streaming change for transaction
|
||||
closing a streamed block for transaction
|
||||
committing streamed transaction
|
||||
(27 rows)
|
||||
(24 rows)
|
||||
|
||||
-- streaming test for toast changes
|
||||
ALTER TABLE stream_test ALTER COLUMN data set storage external;
|
||||
|
Reference in New Issue
Block a user