SQLite

View Ticket
Login
Ticket Hash: a976c487d125a12153903798a359d4196167a074
Title: LEFT JOIN in view malfunctions
Status: Closed Type: Code_Defect
Severity: Critical Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2019-10-10 13:56:00
Version Found In: 3.30.0
User Comments:
mrigger added on 2019-10-09 20:33:43:

Consider the following test case:

CREATE TABLE t0(c1);
CREATE TABLE t1(c0);
CREATE VIEW v0 AS SELECT c1 FROM t1 LEFT JOIN t0;
INSERT INTO t1 VALUES (1);
SELECT * FROM v0 WHERE NOT(v0.c1 IS FALSE); -- expected: row is fetched, actual: no row is fetched

I would expect the row to be fetched, because the condition evaluates to TRUE for the row:

SELECT NOT(v0.c1 IS FALSE) FROM v0; -- 1