-C Combine\sthe\sParse.ckBase\sand\sParse.iSelfTab\sfields\sinto\sjust\sParse.iSelfTab.\nThis\sfixes\sa\sproblem\swith\sdate/time\sfunctions\sin\scheck-constraints.\s\sAdd\nsome\stest\scases\sfor\sdate/time\sfunctions\sin\sindex\sexpressions\sand\scheck\nconstraints.
-D 2017-07-20T13:17:08.298
+C New\stest\scases\sfor\sdate/time\sfunctions\sin\sindexes\son\sexpressions,\sin\sthe\nWHERE\sclause\sof\spartial\sindexes,\sand\sin\sCHECK\sconstraints.
+D 2017-07-20T14:36:26.145
F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
F test/cursorhint.test 7bc346788390475e77a345da2b92270d04d35856
F test/cursorhint2.test 8457e93d97f665f23f97cdbc8477d16e3480331b
F test/date.test 9b73bbeb1b82d9c1f44dec5cf563bf7da58d2373
-F test/date2.test f8d82bb0bdcab156e2f480337bd874b89fe175a52cd0de0db583eee226d32bbe
+F test/date2.test 74c234bece1b016e94dd4ef9c8cc7a199a8806c0e2291cab7ba64bace6350b10
F test/dbfuzz.c 73047c920d6210e5912c87cdffd9a1c281d4252e
F test/dbstatus.test 73149851b3aff14fc6db478e58f9083a66422cf5
F test/dbstatus2.test e93ab03bfae6d62d4d935f20de928c19ca0ed0ab
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 0a5e1c04d9d07bb7fd6546a9ddac1bf42b19ea19c2b79570aea6cd4226887a27
-R a25d10c9c943ee05f3ba67aef01e9e07
+P 22eda0985ecd1f456c073e6ad735a8417f3ff1fb6aaad1640e1cec01e50c51d8
+R 636bb2618e46215e27cfa1dc613ec36a
U drh
-Z d1c30883ae74083a00de3da1ad7b0ca1
+Z 9fcd2c9047a36a4760d07f2c77f0a563
SELECT x, y FROM t2 ORDER BY x;
} {1 2017-07-20 2 xyzzy}
+do_execsql_test date2-300 {
+ CREATE TABLE t3(a INTEGER PRIMARY KEY,b);
+ WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<1000)
+ INSERT INTO t3(a,b) SELECT x, julianday('2017-07-01')+x FROM c;
+ UPDATE t3 SET b='now' WHERE a=500;
+}
+do_catchsql_test date2-310 {
+ CREATE INDEX t3b1 ON t3(datetime(b));
+} {1 {non-deterministic function in index expression or CHECK constraint}}
+do_catchsql_test date2-320 {
+ CREATE INDEX t3b1 ON t3(datetime(b)) WHERE typeof(b)='real';
+} {0 {}}
+do_execsql_test date2-330 {
+ EXPLAIN QUERY PLAN
+ SELECT a FROM t3
+ WHERE typeof(b)='real'
+ AND datetime(b) BETWEEN '2017-07-04' AND '2017-07-08';
+} {/USING INDEX t3b/}
+do_execsql_test date2-331 {
+ SELECT a FROM t3
+ WHERE typeof(b)='real'
+ AND datetime(b) BETWEEN '2017-07-04' AND '2017-07-08'
+ ORDER BY a;
+} {3 4 5 6}
+
+do_execsql_test date2-400 {
+ CREATE TABLE t4(a INTEGER PRIMARY KEY,b);
+ WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<1000)
+ INSERT INTO t4(a,b) SELECT x, julianday('2017-07-01')+x FROM c;
+ UPDATE t4 SET b='now' WHERE a=500;
+}
+do_catchsql_test date2-410 {
+ CREATE INDEX t4b1 ON t4(b)
+ WHERE date(b) BETWEEN '2017-06-01' AND '2017-08-31';
+} {1 {non-deterministic function in index expression or CHECK constraint}}
+do_execsql_test date2-420 {
+ DELETE FROM t4 WHERE a=500;
+ CREATE INDEX t4b1 ON t4(b)
+ WHERE date(b) BETWEEN '2017-06-01' AND '2017-08-31';
+}
+do_catchsql_test date2-430 {
+ INSERT INTO t4(a,b) VALUES(9999,'now');
+} {1 {non-deterministic function in index expression or CHECK constraint}}
+
+do_execsql_test date2-500 {
+ CREATE TABLE mods(x);
+ INSERT INTO mods(x) VALUES
+ ('+10 days'),
+ ('-10 days'),
+ ('+10 hours'),
+ ('-10 hours'),
+ ('+10 minutes'),
+ ('-10 minutes'),
+ ('+10 seconds'),
+ ('-10 seconds'),
+ ('+10 months'),
+ ('-10 months'),
+ ('+10 years'),
+ ('-10 years'),
+ ('start of month'),
+ ('start of year'),
+ ('start of day'),
+ ('weekday 1'),
+ ('unixepoch');
+ CREATE TABLE t5(y,m);
+ WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<5)
+ INSERT INTO t5(y,m) SELECT julianday('2017-07-01')+c.x, mods.x FROM c, mods;
+ CREATE INDEX t5x1 on t5(y) WHERE datetime(y,m) IS NOT NULL;
+}
+do_catchsql_test date2-510 {
+ INSERT INTO t5(y,m) VALUES('2017-07-20','localtime');
+} {1 {non-deterministic function in index expression or CHECK constraint}}
+do_catchsql_test date2-520 {
+ INSERT INTO t5(y,m) VALUES('2017-07-20','utc');
+} {1 {non-deterministic function in index expression or CHECK constraint}}
+
+
+
+
+
+
finish_test