Attached patch goes a bit further with simplifying _bt_first's handling of seizing the parallel scan. This continues recent work from commits 4e6e375b and b5ee4e52.
Aside from requiring less code, the new structure relieves _bt_first from having separate calls to _bt_start_array_keys for the serial and parallel cases. It also places emphasis on the idea that it's expected that calls to _bt_first will go through _bt_readfirstpage (not _bt_readnextpage). While it is of course possible for a parallel scan's _bt_first to call _bt_readnextpage instead, that is the exception, not the rule. -- Peter Geoghegan
v1-0001-Simplify-_bt_first.patch
Description: Binary data