aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeInt.h
diff options
context:
space:
mode:
authordrh <>2022-02-01 14:58:29 +0000
committerdrh <>2022-02-01 14:58:29 +0000
commit0fe7e7d9242dfccb1240c613a2e4608c0023259c (patch)
tree4bcee3a678538d69b7745f5285a23a747cfa9108 /src/vdbeInt.h
parente66532a63b934135ec9ebd72bdddcf79a3fb97a0 (diff)
downloadsqlite-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.h7
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 */