]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Identifiers "TRUE" and "FALSE" cannot take on their boolean constant values if
authordrh <drh@noemail.net>
Sat, 13 Jun 2020 03:18:21 +0000 (03:18 +0000)
committerdrh <drh@noemail.net>
Sat, 13 Jun 2020 03:18:21 +0000 (03:18 +0000)
they are operands of the "." operator.

FossilOrigin-Name: ad738286e2441b5e84d05366db3fcafabe66be766f21fe6c17f43a8fabab16fb

manifest
manifest.uuid
src/expr.c
test/istrue.test

index ee9f96a3ff8a835c2233de989d034280f62c7d56..4259fbc66cb2cf6629f4b92e1bee7c4b4c7fe8d3 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,9 @@
 B fd5abb1a7b5a55127d5c0d5ff448020d8bccab44e4f5afe1eb88fc19578af735
-C New\stest\scase\sadded\sto\stest/fuzzdata8.db.
-D 2020-06-12T15:45:02.008
+C Identifiers\s"TRUE"\sand\s"FALSE"\scannot\stake\son\stheir\sboolean\sconstant\svalues\sif\nthey\sare\soperands\sof\sthe\s"."\soperator.
+D 2020-06-13T03:18:21.016
 F ext/fts3/fts3.c acc51e4378dd772251b31ead0ccd19070fc1774f6f6a55b11e00cb885e0f34bc
 F src/btree.c fabc215bd1ebab0e48108e95e0f50531da9883156b95888f479f6c696db032ad
+F src/expr.c 36bb737d2ca78ee9bd4fde46cf1e51a37e7e1b263e55fccfaef32922a19e9524
 F src/global.c 0409ae635839e0bef26a69b68be64126ab6cba62ac19bd7694f1652e591c4c17
 F src/select.c 929e1c0db3cb3d9f7d2304c6596868abcb6dfd7c2a0ac1bdf12a5a4432078ba4
 F src/sqliteInt.h fe320867c4f48eeeca523062c5668508b3f9b88d65690d42610bd138a5fdb5c4
@@ -11,8 +12,9 @@ F src/window.c 88a63e6948ea924b3cf9ad8aff5ea1fa53bebdb2f13340867205fda16ed0f19c
 F test/fts3corrupt2.test e318f0676e5e78d5a4b702637e2bb25265954c08a1b1e4aaf93c7880bb0c67d0
 F test/fts3corrupt4.test e77b06926348eb45b71569f9dc45e5b19c984ca1b1ef6671367f4ca9d6eaa973
 F test/fuzzdata8.db b87ae726c84c3f80d457642d7650724a76eb3d7b76258959d712cc4d926ddfc7
+F test/istrue.test 06f92ea38750fa74df7dbbe6920205251c2310861fbbe23a3adfa918a2e2ba74
 F test/window1.test 9d7f4990e5b36d95af93b189da4aa75216c6690ce95cced3c8b6d3234be51c2c
-P 9a4a40c45feb2bb89020dc7711b4753479112ceae7ce2a44521d72afeddfac83
-R 84a32bdefc83764df15377cf4aebb49f
+P 14a5cbddc887e23a684fabab1a213cce261bd6cffa0663d4f138b92d0b65b9c2
+R ebfcb880c83916e081aacf3bd673aef2
 U drh
-Z 693eb51b87f57815e5f55c632a3ec02d
+Z f044363c3bc3fa94bf2e0fcb83823aba
index 12e61dcff18ad66cc7824848398abe0549e5945d..3cd9d72d8e60954e44917c09e21cef19b67ef99f 100644 (file)
@@ -1 +1 @@
-14a5cbddc887e23a684fabab1a213cce261bd6cffa0663d4f138b92d0b65b9c2
\ No newline at end of file
+ad738286e2441b5e84d05366db3fcafabe66be766f21fe6c17f43a8fabab16fb
\ No newline at end of file
index 79d57454c98489b950f013f6cb5d1315056b756a..bfa247b4e9b9c45ac003d12b89efbece912c38f7 100644 (file)
@@ -2048,8 +2048,10 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){
       /* Fall through */
     case TK_IF_NULL_ROW:
     case TK_REGISTER:
+    case TK_DOT:
       testcase( pExpr->op==TK_REGISTER );
       testcase( pExpr->op==TK_IF_NULL_ROW );
+      testcase( pExpr->op==TK_DOT );
       pWalker->eCode = 0;
       return WRC_Abort;
     case TK_VARIABLE:
index d2768b379854fc9af1cd1c58d8a381ae078781a5..b2f5b8d22b99579872544162cd17d5ba08a8c2d8 100644 (file)
@@ -172,4 +172,33 @@ do_execsql_test istrue-710 {
   SELECT 0.0 IS FALSE COLLATE BINARY;
 } {1 1 1   1 1 1  1 1 1}
 
+# 2020-06-12 bug report from Chromium
+# https://bugs.chromium.org/p/chromium/issues/detail?id=1094247
+do_catchsql_test istrue-800 {
+  SELECT 9 IN (false.false);
+} {1 {no such column: false.false}}
+do_execsql_test istrue-810 {
+  CREATE TABLE t8(a INT, true INT, false INT, d INT);
+  INSERT INTO t8(a,true,false,d) VALUES(5,6,7,8),(4,3,2,1),('a','b','c','d');
+  SELECT * FROM t8 ORDER BY false;
+} {4 3 2 1 5 6 7 8 a b c d}
+do_catchsql_test istrue-820 {
+  SELECT 9 IN (false.false) FROM t8;
+} {1 {no such column: false.false}}
+do_execsql_test istrue-830 {
+  CREATE TABLE false(true INT, false INT, x INT CHECK (5 IN (false.false)));
+} {}
+do_execsql_test istrue-840 {
+  INSERT INTO False VALUES(4,5,6);
+} {}
+do_catchsql_test istrue-841 {
+  INSERT INTO False VALUES(5,6,7);
+} {1 {CHECK constraint failed: false}}
+do_execsql_test istrue-850 {
+  SELECT 9 IN (false.false) FROM false;
+} {0}
+do_execsql_test istrue-851 {
+  SELECT 5 IN (false.false) FROM false;
+} {1}
+
 finish_test