Index: third_party/sqlite/src/src/vdbe.h |
diff --git a/third_party/sqlite/src/src/vdbe.h b/third_party/sqlite/src/src/vdbe.h |
index f975f95543a34c4ac407fefcb184537e82378fd0..68a4f6b2a89217a973d60cff81c5091e3d7d85a0 100644 |
--- a/third_party/sqlite/src/src/vdbe.h |
+++ b/third_party/sqlite/src/src/vdbe.h |
@@ -46,19 +46,23 @@ struct VdbeOp { |
int p1; /* First operand */ |
int p2; /* Second parameter (often the jump destination) */ |
int p3; /* The third parameter */ |
- union { /* fourth parameter */ |
+ union p4union { /* fourth parameter */ |
int i; /* Integer value if p4type==P4_INT32 */ |
void *p; /* Generic pointer */ |
char *z; /* Pointer to data for string (char array) types */ |
i64 *pI64; /* Used when p4type is P4_INT64 */ |
double *pReal; /* Used when p4type is P4_REAL */ |
FuncDef *pFunc; /* Used when p4type is P4_FUNCDEF */ |
+ sqlite3_context *pCtx; /* Used when p4type is P4_FUNCCTX */ |
CollSeq *pColl; /* Used when p4type is P4_COLLSEQ */ |
Mem *pMem; /* Used when p4type is P4_MEM */ |
VTable *pVtab; /* Used when p4type is P4_VTAB */ |
KeyInfo *pKeyInfo; /* Used when p4type is P4_KEYINFO */ |
int *ai; /* Used when p4type is P4_INTARRAY */ |
SubProgram *pProgram; /* Used when p4type is P4_SUBPROGRAM */ |
+#ifdef SQLITE_ENABLE_CURSOR_HINTS |
+ Expr *pExpr; /* Used when p4type is P4_EXPR */ |
+#endif |
int (*xAdvance)(BtCursor *, int *); |
} p4; |
#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS |
@@ -109,6 +113,7 @@ typedef struct VdbeOpList VdbeOpList; |
#define P4_COLLSEQ (-4) /* P4 is a pointer to a CollSeq structure */ |
#define P4_FUNCDEF (-5) /* P4 is a pointer to a FuncDef structure */ |
#define P4_KEYINFO (-6) /* P4 is a pointer to a KeyInfo structure */ |
+#define P4_EXPR (-7) /* P4 is a pointer to an Expr tree */ |
#define P4_MEM (-8) /* P4 is a pointer to a Mem* structure */ |
#define P4_TRANSIENT 0 /* P4 is a pointer to a transient string */ |
#define P4_VTAB (-10) /* P4 is a pointer to an sqlite3_vtab structure */ |
@@ -119,6 +124,7 @@ typedef struct VdbeOpList VdbeOpList; |
#define P4_INTARRAY (-15) /* P4 is a vector of 32-bit integers */ |
#define P4_SUBPROGRAM (-18) /* P4 is a pointer to a SubProgram structure */ |
#define P4_ADVANCE (-19) /* P4 is a pointer to BtreeNext() or BtreePrev() */ |
+#define P4_FUNCCTX (-20) /* P4 is a pointer to an sqlite3_context object */ |
/* Error message codes for OP_Halt */ |
#define P5_ConstraintNotNull 1 |
@@ -167,11 +173,16 @@ Vdbe *sqlite3VdbeCreate(Parse*); |
int sqlite3VdbeAddOp0(Vdbe*,int); |
int sqlite3VdbeAddOp1(Vdbe*,int,int); |
int sqlite3VdbeAddOp2(Vdbe*,int,int,int); |
+int sqlite3VdbeGoto(Vdbe*,int); |
+int sqlite3VdbeLoadString(Vdbe*,int,const char*); |
+void sqlite3VdbeMultiLoad(Vdbe*,int,const char*,...); |
int sqlite3VdbeAddOp3(Vdbe*,int,int,int,int); |
int sqlite3VdbeAddOp4(Vdbe*,int,int,int,int,const char *zP4,int); |
+int sqlite3VdbeAddOp4Dup8(Vdbe*,int,int,int,int,const u8*,int); |
int sqlite3VdbeAddOp4Int(Vdbe*,int,int,int,int,int); |
int sqlite3VdbeAddOpList(Vdbe*, int nOp, VdbeOpList const *aOp, int iLineno); |
void sqlite3VdbeAddParseSchemaOp(Vdbe*,int,char*); |
+void sqlite3VdbeChangeOpcode(Vdbe*, u32 addr, u8); |
void sqlite3VdbeChangeP1(Vdbe*, u32 addr, int P1); |
void sqlite3VdbeChangeP2(Vdbe*, u32 addr, int P2); |
void sqlite3VdbeChangeP3(Vdbe*, u32 addr, int P3); |
@@ -213,6 +224,7 @@ int sqlite3MemCompare(const Mem*, const Mem*, const CollSeq*); |
void sqlite3VdbeRecordUnpack(KeyInfo*,int,const void*,UnpackedRecord*); |
int sqlite3VdbeRecordCompare(int,const void*,UnpackedRecord*); |
+int sqlite3VdbeRecordCompareWithSkip(int, const void *, UnpackedRecord *, int); |
UnpackedRecord *sqlite3VdbeAllocUnpackedRecord(KeyInfo *, char *, int, char **); |
typedef int (*RecordCompare)(int,const void*,UnpackedRecord*); |
@@ -282,4 +294,10 @@ void sqlite3VdbeLinkSubProgram(Vdbe *, SubProgram *); |
# define VDBE_OFFSET_LINENO(x) 0 |
#endif |
+#ifdef SQLITE_ENABLE_STMT_SCANSTATUS |
+void sqlite3VdbeScanStatus(Vdbe*, int, int, int, LogEst, const char*); |
+#else |
+# define sqlite3VdbeScanStatus(a,b,c,d,e) |
+#endif |
+ |
#endif |