diff options
| author | Andres Freund | 2018-11-16 06:00:30 +0000 |
|---|---|---|
| committer | Andres Freund | 2018-11-16 06:00:30 +0000 |
| commit | 675af5c01e297262cd20d7416f7e568393c22c6e (patch) | |
| tree | 3af0a63c0fb58bfe930f1e7fdff3c4cea1ea448d /src/include | |
| parent | 1a0586de3657cd35581f0639c87d5050c6197bb7 (diff) | |
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/[email protected]
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/executor/execExpr.h | 5 |
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] */ |
