Add some support for using row value constructors in certain parts of SQL expressions. There are many bugs on this branch.
FossilOrigin-Name: b2204215b231202aef7a218411cc2ddaecf28f35
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 998a17d..3caa65d 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -2317,6 +2317,8 @@
#define EP_CanBeNull 0x100000 /* Can be null despite NOT NULL constraint */
#define EP_Subquery 0x200000 /* Tree contains a TK_SELECT operator */
#define EP_Alias 0x400000 /* Is an alias for a result set column */
+#define EP_VectorOk 0x800000 /* This expression may be a row value */
+#define EP_Vector 0x1000000/* This expression is a row value */
/*
** Combinations of two or more EP_* flags
@@ -2762,7 +2764,7 @@
*/
struct SelectDest {
u8 eDest; /* How to dispose of the results. On of SRT_* above. */
- char affSdst; /* Affinity used when eDest==SRT_Set */
+ char *zAffSdst; /* Affinity used when eDest==SRT_Set */
int iSDParm; /* A parameter used by the eDest disposal method */
int iSdst; /* Base register where results are written */
int nSdst; /* Number of registers allocated */
@@ -4237,4 +4239,6 @@
int sqlite3DbstatRegister(sqlite3*);
#endif
+int sqlite3ExprVectorSize(Expr *pExpr);
+
#endif /* SQLITEINT_H */