Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Identifiers "TRUE" and "FALSE" cannot take on their boolean constant values if they are operands of the "." operator. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ad738286e2441b5e84d05366db3fcafa |
User & Date: | drh 2020-06-13 03:18:21 |
Context
2020-06-17
| ||
12:37 | Merge miscellaneous fixes from trunk into the 3.32 branch. (check-in: d55b8e79 user: drh tags: branch-3.32) | |
2020-06-13
| ||
21:24 | Avoid deleting expression nodes in the flattener code, as they may be referenced by AggInfo objects further up the stack. Ticket [e367f31901ea8700] (check-in: cc1fffde user: dan tags: trunk) | |
03:18 | Identifiers "TRUE" and "FALSE" cannot take on their boolean constant values if they are operands of the "." operator. (check-in: ad738286 user: drh tags: trunk) | |
2020-06-12
| ||
15:45 | New test case added to test/fuzzdata8.db. (check-in: 14a5cbdd user: drh tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 | } if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){ return WRC_Continue; } /* Fall through */ case TK_IF_NULL_ROW: case TK_REGISTER: testcase( pExpr->op==TK_REGISTER ); testcase( pExpr->op==TK_IF_NULL_ROW ); pWalker->eCode = 0; return WRC_Abort; case TK_VARIABLE: if( pWalker->eCode==5 ){ /* Silently convert bound parameters that appear inside of CREATE ** statements into a NULL when parsing the CREATE statement text out ** of the sqlite_master table */ | > > | 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 | } if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){ return WRC_Continue; } /* 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: if( pWalker->eCode==5 ){ /* Silently convert bound parameters that appear inside of CREATE ** statements into a NULL when parsing the CREATE statement text out ** of the sqlite_master table */ |
︙ | ︙ |
Changes to test/istrue.test.
︙ | ︙ | |||
167 168 169 170 171 172 173 174 175 | SELECT 0.5 COLLATE NOCASE IS TRUE; SELECT 0.0 IS FALSE; SELECT 0.0 IS FALSE COLLATE NOCASE; SELECT 0.0 IS FALSE COLLATE RTRIM; SELECT 0.0 IS FALSE COLLATE BINARY; } {1 1 1 1 1 1 1 1 1} finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | SELECT 0.5 COLLATE NOCASE IS TRUE; SELECT 0.0 IS FALSE; SELECT 0.0 IS FALSE COLLATE NOCASE; SELECT 0.0 IS FALSE COLLATE RTRIM; 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 |