Identifiers "TRUE" and "FALSE" cannot take on their boolean constant values if

they are operands of the "." operator.

FossilOrigin-Name: ad738286e2441b5e84d05366db3fcafabe66be766f21fe6c17f43a8fabab16fb
This commit is contained in:
drh 2020-06-13 03:18:21 +00:00
parent 0dc90d43e5
commit 74e0d96695
4 changed files with 39 additions and 6 deletions

View File

@ -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

View File

@ -1 +1 @@
14a5cbddc887e23a684fabab1a213cce261bd6cffa0663d4f138b92d0b65b9c2
ad738286e2441b5e84d05366db3fcafabe66be766f21fe6c17f43a8fabab16fb

View 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:

View 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