-C Another\stest\scase\sfor\sthe\sintarray($PTR,$N)\svirtual\stable.
-D 2016-06-29T05:08:01.847
+C Add\sthe\sability\sto\shave\sa\stable-valued\sfunction\son\sthe\sRHS\sof\san\sIN\soperator.
+D 2016-06-29T06:19:19.192
F Makefile.in 541d493154ec3b0b20b2f1d495ec66f55905191e
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 50149765ef72f4e652b9a0f1f6462c4784bb9423
F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
F src/pager.c c368634b888b1c8740aea83b36bfd266f2443e60
F src/pager.h 8ab6b6feeee4bc0439bfde7ee59ba99df98b9bc3
-F src/parse.y 01b9f37c4c7009ab56fda98bc7db4c42643cecfe
+F src/parse.y 300a30380bfa73c0a0d2e0ae4c4d0cd844d80199
F src/pcache.c 5583c8ade4b05075a60ba953ef471d1c1a9c05df
F src/pcache.h 2cedcd8407eb23017d92790b112186886e179490
F src/pcache1.c 7f51d2b541aab57596adf62db2c4bb025d34f04d
F test/sync.test 2f84bdbc2b2df1fcb0220575b4b9f8cea94b7529
F test/syscall.test f59ba4e25f7ba4a4c031026cc2ef8b6e4b4c639c
F test/sysfault.test c9f2b0d8d677558f74de750c75e12a5454719d04
-F test/tabfunc01.test bb0ef0fdf5e807c5bc3438c8c4face4c9887971d
+F test/tabfunc01.test 32e620a19963c50dcf6958dc5bb352de96d948fb
F test/table.test b708f3e5fa2542fa51dfab21fc07b36ea445cb2f
F test/tableapi.test 2674633fa95d80da917571ebdd759a14d9819126
F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 233b33382dc70de45f90b6dfdb5785f20b21489e
-R 67bef7ed0b382234904201d45ecddcca
+P 06e1fab7527c6b4330a58f8d8873afaf2d67ae86
+R a95030951795f74126be51a632f80a74
U drh
-Z bbb146cf4e7f714032732261f87e16f3
+Z 5d31abe2efd2f25b296efdbc945337ef
exprNot(pParse, N, &A);
A.zEnd = Z.z ? &Z.z[Z.n] : &Y.z[Y.n];
}
+ expr(A) ::= expr(A) in_op(N) nm(Y) dbnm(Z) LP exprlist(E) RP. [IN] {
+ SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&Y,&Z);
+ Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0,0);
+ sqlite3SrcListFuncArgs(pParse, pSrc, E);
+ A.pExpr = sqlite3PExpr(pParse, TK_IN, A.pExpr, 0, 0);
+ sqlite3PExprAddSelect(pParse, A.pExpr, pSelect);
+ exprNot(pParse, N, &A);
+ A.zEnd = Z.z ? &Z.z[Z.n] : &Y.z[Y.n];
+ }
expr(A) ::= EXISTS(B) LP select(Y) RP(E). {
Expr *p;
spanSet(&A,&B,&E); /*A-overwrites-B*/