SQLite

View Ticket
Login
Ticket Hash: f8f472cbc77ba9c9251feb1d2b6674e1e0587e0e
Title: Partial index and BETWEEN issue
Status: Fixed Type: Code_Defect
Severity: Important Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2019-08-30 16:01:12
Version Found In: 3.29.0
User Comments:
mrigger added on 2019-08-30 15:43:35:

In the example below, an INDEX causes a query to malfunction:

CREATE TABLE t0 (c0);
CREATE INDEX i0 ON t0(1) WHERE c0 NOT NULL;
INSERT INTO t0(c0) VALUES (NULL);
SELECT * FROM t0 WHERE '' BETWEEN t0.c0 AND 1 IN (FALSE); -- unexpected: row is not fetched

The expression should evaluate to TRUE:

SELECT '' BETWEEN t0.c0 AND 1 IN (FALSE) FROM t0; -- TRUE