postgresql/src
David Rowley 44086b0975 Preliminary refactor of heap scanning functions
To allow the use of the read stream API added in b5a9b18cd for
sequential scans on heap tables, here we make some adjustments to make
that change less invasive and perhaps make the code easier to follow in
the process.

Here heapgetpage() gets broken into two functions:

1) The part which reads the block has now been moved into a function
   named heapfetchbuf().
2) The part which performed pruning and populated the scan's
   rs_vistuples[] array is now moved into a new function named
   heap_prepare_pagescan().

The functionality provided by heap_prepare_pagescan() was only ever
required by SO_ALLOW_PAGEMODE scans, so the branching that was
previously done in heapgetpage() is no longer needed as we simply just
don't call heap_prepare_pagescan() from heapgettup() in the refactored
code.

Author: Melanie Plageman
Discussion: https://postgr.es/m/CAAKRu_YtXJiYKQvb5JsA2SkwrsizYLugs4sSOZh3EAjKUg=gEQ@mail.gmail.com
2024-04-04 16:41:13 +13:00
..
backend Preliminary refactor of heap scanning functions 2024-04-04 16:41:13 +13:00
bin Fix indentation from cafe105655 2024-04-03 09:44:47 +02:00
common Add functions to binaryheap for efficient key removal and update. 2024-04-03 10:44:21 +09:00
fe_utils Allow dbname to be written as part of connstring via pg_basebackup's -R option. 2024-03-21 10:50:33 +05:30
include Preliminary refactor of heap scanning functions 2024-04-04 16:41:13 +13:00
interfaces Expose PQsocketPoll via libpq 2024-04-02 10:15:56 -04:00
makefiles Remove AIX support 2024-02-28 15:17:23 +04:00
pl Avoid possible longjmp-induced logic error in PLy_trigger_build_args. 2024-04-01 15:15:03 -04:00
port Inline pg_popcount() for small buffers. 2024-04-03 12:22:02 -05:00
template Remove AIX support 2024-02-28 15:17:23 +04:00
test pg_regress: Save errno in emit_tap_output_v() and switch to %m 2024-04-04 11:33:07 +09:00
timezone Update time zone data files to tzdata release 2024a. 2024-02-01 15:57:53 -05:00
tools Invent SERIALIZE option for EXPLAIN. 2024-04-03 17:41:57 -04:00
tutorial Update copyright for 2024 2024-01-03 20:49:05 -05:00
.gitignore
DEVELOPERS
Makefile Remove distprep 2023-11-06 15:18:04 +01:00
Makefile.global.in Remove make function vpathsearch 2024-01-29 07:24:59 +01:00
Makefile.shlib Remove AIX support 2024-02-28 15:17:23 +04:00
meson.build Update copyright for 2024 2024-01-03 20:49:05 -05:00
nls-global.mk Remove distprep 2023-11-06 15:18:04 +01:00