-C Ignore\sdifferences\sin\sExpr.op2\sin\ssqlite3ExprCompare()\sin\scases\swhere\sit\ndoes\smatter.\s\sTicket\s[1d2a8efc6c3a595a].
-D 2019-10-31T13:16:26.169
+C Add\sa\sfew\ssimple\sTCL\stest\scases\sfor\sgenerated\scolumns.\s\s(Full\stest\scoverage\nof\sthe\sgenerated\scolumn\slogic\sis\sprovided\sseparately\sby\sTH3.)
+D 2019-10-31T17:13:17.010
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14
F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536
F test/gcfault.test dd28c228a38976d6336a3fc42d7e5f1ad060cb8c
-F test/gencol1.test 27f80efa9047c8db10794d689e086d2d3ecbb0e1dfe8b8293e8c250e6015add3
+F test/gencol1.test 6dd63ec525059f2235e494148bfa8c1ab506eb46e403a8d5bf13004f3b165631
F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98
F test/having.test e4098a4b8962f9596035c3b87a8928a10648acc509f1bb8d6f96413bbf79a1b3
F test/hexlit.test 4a6a5f46e3c65c4bf1fa06f5dd5a9507a5627751
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P aceeaf9e28767a0880a16872867a1f57bff163acd0f10d19d5688068077590fa
-R 4e0fef27b2755ee02a88ef863369c111
+P 329820673a12ff6a6c8759f40989d4ccf272441064b0366a5f491695b55ad0e9
+R e7170d3b73879549c652c7bfb423787f
U drh
-Z 4d89f413d1dc6ce2106075b4c9bb6a03
+Z b826a93b8f760fe88872664a0ccdde39
SELECT * FROM t1;
} {integer 0}
+foreach {tn schema} {
+1 {
+ CREATE TABLE t1(
+ a INT,
+ b TEXT,
+ c ANY,
+ w INT GENERATED ALWAYS AS (a*10),
+ x TEXT AS (typeof(c)),
+ y TEXT AS (substr(b,a,a+2))
+ );
+ }
+2 {
+ CREATE TABLE t1(
+ w INT GENERATED ALWAYS AS (a*10),
+ x TEXT AS (typeof(c)),
+ y TEXT AS (substr(b,a,a+2)),
+ a INT,
+ b TEXT,
+ c ANY
+ );
+ }
+3 {
+ CREATE TABLE t1(
+ w INT GENERATED ALWAYS AS (a*10),
+ a INT,
+ x TEXT AS (typeof(c)) STORED,
+ b TEXT,
+ y TEXT AS (substr(b,a,a+2)),
+ c ANY
+ );
+ }
+4 {
+ CREATE TABLE t1(
+ a INTEGER PRIMARY KEY,
+ w INT GENERATED ALWAYS AS (a*10),
+ b TEXT,
+ x TEXT AS (typeof(c)),
+ y TEXT AS (substr(b,a,a+2)) STORED,
+ c ANY
+ );
+ }
+5 {
+ CREATE TABLE t1(
+ w INT GENERATED ALWAYS AS (a*10),
+ a INT,
+ x TEXT AS (typeof(c)),
+ b TEXT,
+ y TEXT AS (substr(b,a,a+2)) STORED,
+ c ANY,
+ PRIMARY KEY(a,b)
+ ) WITHOUT ROWID;
+ }
+6 {
+ CREATE TABLE t1(
+ w INT GENERATED ALWAYS AS (m*5),
+ m INT AS (a*2) STORED,
+ a INT,
+ x TEXT AS (typeof(c)),
+ b TEXT,
+ y TEXT AS (substr(b,m/2,m/2+2)) STORED,
+ c ANY,
+ PRIMARY KEY(a,b)
+ );
+ }
+7 {
+ CREATE TABLE t1(
+ w INT GENERATED ALWAYS AS (m*5),
+ m INT AS (a*2) NOT NULL,
+ a INT,
+ x TEXT AS (typeof(c)) CHECK (x<>'blank'),
+ b TEXT,
+ y TEXT AS (substr(b,m/2,m/2+2)) STORED,
+ c ANY,
+ PRIMARY KEY(b,a)
+ ) WITHOUT ROWID;
+ }
+} {
+ catch {db close}
+ sqlite3 db :memory:
+ db eval $schema
+ do_execsql_test gencol1-2.$tn.100 {
+ INSERT INTO t1(a,b,c) VALUES(1,'abcdef',5.5),(3,'cantaloupe',NULL);
+ SELECT w, x, y, '|' FROM t1 ORDER BY a;
+ } {10 real abc | 30 null ntalo |}
+ do_execsql_test gencol1-2.$tn.101 {
+ SELECT w, x, y, '|' FROM t1 ORDER BY w;
+ } {10 real abc | 30 null ntalo |}
+ do_execsql_test gencol1-2.$tn.102 {
+ SELECT a FROM t1 WHERE w=30;
+ } {3}
+ do_execsql_test gencol1-2.$tn.103 {
+ SELECT a FROM t1 WHERE x='real';
+ } {1}
+ do_execsql_test gencol1-2.$tn.104 {
+ SELECT a FROM t1 WHERE y LIKE '%tal%' OR x='real' ORDER BY b;
+ } {1 3}
+ do_execsql_test gencol1-2.$tn.110 {
+ CREATE INDEX t1w ON t1(w);
+ SELECT a FROM t1 WHERE w=10;
+ } {1}
+ do_execsql_test gencol1-2.$tn.120 {
+ CREATE INDEX t1x ON t1(x) WHERE w BETWEEN 20 AND 40;
+ SELECT a FROM t1 WHERE x='null' AND w BETWEEN 20 AND 40;
+ } {3}
+ do_execsql_test gencol1-2.$tn.121 {
+ SELECT a FROM t1 WHERE x='real';
+ } {1}
+ do_execsql_test gencol1-2.$tn.130 {
+ VACUUM;
+ PRAGMA integrity_check;
+ } {ok}
+ do_execsql_test gencol1-2.$tn.140 {
+ UPDATE t1 SET a=a+100 WHERE w<20;
+ SELECT a, w, '|' FROM t1 ORDER BY w;
+ } {3 30 | 101 1010 |}
+ do_execsql_test gencol1-2.$tn.150 {
+ INSERT INTO t1 VALUES(4,'jambalaya','Chef John'),(15,87719874135,0);
+ SELECT w, x, y, '|' FROM t1 ORDER BY w;
+ } {30 null ntalo | 40 text balaya | 150 integer {} | 1010 real {} |}
+}
+
finish_test