diff options
author | drh <> | 2022-02-01 14:58:29 +0000 |
---|---|---|
committer | drh <> | 2022-02-01 14:58:29 +0000 |
commit | 0fe7e7d9242dfccb1240c613a2e4608c0023259c (patch) | |
tree | 4bcee3a678538d69b7745f5285a23a747cfa9108 /src/vdbeInt.h | |
parent | e66532a63b934135ec9ebd72bdddcf79a3fb97a0 (diff) | |
download | sqlite-0fe7e7d9242dfccb1240c613a2e4608c0023259c.tar.gz sqlite-0fe7e7d9242dfccb1240c613a2e4608c0023259c.zip |
Add new interfaces to enable virtual table to process IN operator constraints
all at once, rather than one element at a time.
FossilOrigin-Name: eb84b80e1f6d8c32bf0c9e1731f0233de0160a13f714f766779ae01fdf504e7b
Diffstat (limited to 'src/vdbeInt.h')
-rw-r--r-- | src/vdbeInt.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vdbeInt.h b/src/vdbeInt.h index 376c9edac..9ddb742a4 100644 --- a/src/vdbeInt.h +++ b/src/vdbeInt.h @@ -195,6 +195,12 @@ struct VdbeFrame { */ #define VdbeFrameMem(p) ((Mem *)&((u8 *)p)[ROUND8(sizeof(VdbeFrame))]) +/* Magic number for Mem.uTemp when it is acting as as the cache for the +** IN(...) iterator for sqlite3_vtab_in_next() +*/ +#define SQLITE_VTAB_IN_MAGIC 0xd3ab12ec + + /* ** Internally, the vdbe manipulates nearly all SQL values as Mem ** structures. Each Mem struct may cache multiple representations (string, @@ -207,6 +213,7 @@ struct sqlite3_value { int nZero; /* Extra zero bytes when MEM_Zero and MEM_Blob set */ const char *zPType; /* Pointer type when MEM_Term|MEM_Subtype|MEM_Null */ FuncDef *pDef; /* Used only when flags==MEM_Agg */ + sqlite3_value *pVal;/* Current value for xFilter IN(...) iterator */ } u; u16 flags; /* Some combination of MEM_Null, MEM_Str, MEM_Dyn, etc. */ u8 enc; /* SQLITE_UTF8, SQLITE_UTF16BE, SQLITE_UTF16LE */ |