On Fri, 10 Jan 2025 at 02:46, Amit Langote <amitlangot...@gmail.com> wrote: > > On Mon, Jan 6, 2025 at 10:18 PM David Rowley <dgrowle...@gmail.com> wrote: > > I've attached my workings of what I was messing around with. It seems > > to perform about the same as your version. I think maybe we'd need > > some sort of execScan.h instead of where I've stuffed the functions > > in. > > I've done that in the attached v2.
I think 0001 looks ok, aside from what the attached fixes. (at least one is my mistake) Did you test the performance of 0002? I didn't look at it hard enough to understand what you've done. I can look if performance tests show that it might be worthwhile considering. David
diff --git a/src/backend/executor/nodeSeqscan.c b/src/backend/executor/nodeSeqscan.c index f93ccc761e..6f9e991eea 100644 --- a/src/backend/executor/nodeSeqscan.c +++ b/src/backend/executor/nodeSeqscan.c @@ -103,7 +103,7 @@ SeqRecheck(SeqScanState *node, TupleTableSlot *slot) * tuple. This variant is used when there is no es_eqp_active, no qual * and no projection. Passing const-NULLs for these to ExecScanExtended * allows the compiler to eliminate the additional code that would - * ordinarily be required for evalualtion of these. + * ordinarily be required for the evaluation of these. * ---------------------------------------------------------------- */ static TupleTableSlot * diff --git a/src/include/executor/execScan.h b/src/include/executor/execScan.h index 194be0ea1c..da8e5ab8a7 100644 --- a/src/include/executor/execScan.h +++ b/src/include/executor/execScan.h @@ -10,8 +10,8 @@ *------------------------------------------------------------------------- */ -#ifndef EXECASYNC_H -#define EXECASYNC_H +#ifndef EXECSCAN_H +#define EXECSCAN_H #include "miscadmin.h" #include "executor/executor.h" @@ -148,7 +148,6 @@ ExecScanFetch(ScanState *node, * positioned before the first qualifying tuple. * ---------------------------------------------------------------- */ - static pg_attribute_always_inline TupleTableSlot * ExecScanExtended(ScanState *node, ExecScanAccessMtd accessMtd, /* function returning a tuple */ @@ -244,4 +243,4 @@ ExecScanExtended(ScanState *node, } } -#endif /* EXECASYNC_H */ +#endif /* EXECSCAN_H */