SQLite

View Ticket
Login
2019-08-27
17:28
Add ALWAYS() to an always true conditional that results from the previous check-in. Add a test case for ticket [dbaf8a6820be1ece] to supplement those already checked into TH3. (check-in: aff20980 user: drh tags: trunk)
17:01 Fixed ticket [dbaf8a68]: Unexpected affinity conversion is performed for the IN operator plus 6 other changes (artifact: afafc304 user: drh)
17:01
Omit the "x IN (y)" to "x==y" optimization of check-in [e68b427afbc82e20] (and ticket [e39d032577df6942]) as it causes difficult affinity problems as demonstrated by ticket [dbaf8a6820be1ece] and the original assertion fault is no longer a factor due to countless other changes of the previous 5 years. (check-in: 7f5168a7 user: drh tags: trunk)
15:14 New ticket [dbaf8a68] Unexpected affinity conversion is performed for the IN operator. (artifact: 8542c61f user: mrigger)

Ticket Hash: dbaf8a6820be1ece7e48a6b92febcaba39076f3b
Title: Unexpected affinity conversion is performed for the IN operator
Status: Fixed Type: Code_Defect
Severity: Important Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2019-08-27 17:01:25
Version Found In: 3.29.0
User Comments:
mrigger added on 2019-08-27 15:14:50:

Unexpectedly, in the test case below, a row is fetched that should not be fetched:

CREATE TABLE t0(c0 INT UNIQUE);
INSERT INTO t0(c0) VALUES (1);
SELECT * FROM t0 WHERE '1' IN (t0.c0); -- unexpected: fetches row

The WHERE condition should yield FALSE, as demonstrated by the following statement:

SELECT '1' IN (t0.c0) FROM t0; -- expected: 0

When removing the UNIQUE constraint on the column, the query works as expected.