aboutsummaryrefslogtreecommitdiff
path: root/src/include/executor
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2018-11-15 22:00:30 -0800
committerAndres Freund <andres@anarazel.de>2018-11-15 22:00:30 -0800
commit675af5c01e297262cd20d7416f7e568393c22c6e (patch)
tree3af0a63c0fb58bfe930f1e7fdff3c4cea1ea448d /src/include/executor
parent1a0586de3657cd35581f0639c87d5050c6197bb7 (diff)
downloadpostgresql-675af5c01e297262cd20d7416f7e568393c22c6e.tar.gz
postgresql-675af5c01e297262cd20d7416f7e568393c22c6e.zip
Compute information about EEOP_*_FETCHSOME at expression init time.
Previously this information was computed when JIT compiling an expression. But the information is useful for assertions in the non-JIT case too (for assertions), therefore it makes sense to move it. This will, in a followup commit, allow to treat different slot types differently. E.g. for virtual slots there's no need to generate a JIT function to deform the slot. Author: Andres Freund Discussion: https://postgr.es/m/20181105210039.hh4vvi4vwoq5ba2q@alap3.anarazel.de
Diffstat (limited to 'src/include/executor')
-rw-r--r--src/include/executor/execExpr.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/include/executor/execExpr.h b/src/include/executor/execExpr.h
index ac53935d700..194bf46e0f5 100644
--- a/src/include/executor/execExpr.h
+++ b/src/include/executor/execExpr.h
@@ -262,7 +262,12 @@ typedef struct ExprEvalStep
{
/* attribute number up to which to fetch (inclusive) */
int last_var;
+ /* will the type of slot be the same for every invocation */
+ bool fixed;
+ /* tuple descriptor, if known */
TupleDesc known_desc;
+ /* type of slot, can only be relied upon if fixed is set */
+ const TupleTableSlotOps *kind;
} fetch;
/* for EEOP_INNER/OUTER/SCAN_[SYS]VAR[_FIRST] */