Snapshot scalability patch issue
The call to heap_page_prune() within lazy_scan_heap() passes a bool
literal ('false') as its fourth argument. But the fourth argument is
of type TransactionId, not bool. This has been the case since the
snapshot scalability work performed by commit dc7420c2c92. Surely
something is amiss here.
I also notice some inconsistencies in the heap_page_prune() prototype
names vs the corresponding definition names. Might be worth doing
something about in passing.
--
Peter Geoghegan
Hi,
On 2021-02-14 18:42:18 -0800, Peter Geoghegan wrote:
The call to heap_page_prune() within lazy_scan_heap() passes a bool
literal ('false') as its fourth argument. But the fourth argument is
of type TransactionId, not bool. This has been the case since the
snapshot scalability work performed by commit dc7420c2c92. Surely
something is amiss here.
Looks like I accidentally swapped the InvalidTransactionId and false
around - luckily they have the same actual bit pattern...
I do wish C could pass arguments by name.
I'll push something once I'm back at my computer...
Greetings,
Andres Freund
Hi,
On 2021-02-15 15:08:40 -0800, Andres Freund wrote:
On 2021-02-14 18:42:18 -0800, Peter Geoghegan wrote:
The call to heap_page_prune() within lazy_scan_heap() passes a bool
literal ('false') as its fourth argument. But the fourth argument is
of type TransactionId, not bool. This has been the case since the
snapshot scalability work performed by commit dc7420c2c92. Surely
something is amiss here.Looks like I accidentally swapped the InvalidTransactionId and false
around - luckily they have the same actual bit pattern...I do wish C could pass arguments by name.
I'll push something once I'm back at my computer...
Done. Thanks for noticing/reporting!
Greetings,
Andres Freund