Fix the bugs in selecting the transaction for streaming.
authorAmit Kapila <akapila@postgresql.org>
Fri, 30 Apr 2021 05:19:52 +0000 (10:49 +0530)
committerAmit Kapila <akapila@postgresql.org>
Fri, 30 Apr 2021 05:19:52 +0000 (10:49 +0530)
commitee4ba01dbbc31daa083f434ecd603a80bbe50501
treed9b2db001194b71ea77b4c4221e6f24908c48374
parent3c80e96dffd4df7f66fffa5f265cbd87becb7ef5
Fix the bugs in selecting the transaction for streaming.

There were two problems:
a. We were always selecting the next available txn instead of selecting it
when it is larger than the previous transaction.
b. We were selecting the transactions which haven't made any changes to
the database (base snapshot is not set). Later it was hitting an Assert
because we don't decode such transactions and the changes in txn remain as
it is. It is better not to choose such transactions for streaming in the
first place.

Reported-by: Haiying Tang
Author: Dilip Kumar
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/OS0PR01MB61133B94E63177040F7ECDA1FB429@OS0PR01MB6113.jpnprd01.prod.outlook.com
src/backend/replication/logical/reorderbuffer.c