SQLite

View Ticket
Login
Ticket Hash: d02e1406a58ea02de21627afaea1a5acd3a2e673
Title: LEFT JOIN with an OR in the ON clause causes segfault
Status: Fixed Type: Code_Defect
Severity: Critical Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2012-10-04 19:41:35
Version Found In: 3.7.14
Description:
The following SQL results in a segfault while running the SELECT statement.

<blockquote><pre>
CREATE TABLE t1(a,b,c);
INSERT INTO t1 VALUES(1,2,3), (4,5,6);
CREATE TABLE t2(d,e,f);
INSERT INTO t2 VALUES(3,6,9), (4,8,12);
SELECT * FROM t1 AS x LEFT JOIN t2 AS y ON (y.d=x.c) OR (y.e=x.b);
</blockquote></pre>

This problem was initially reported on the [http://www.mail-archive.com/sqlite-users%40sqlite.org/msg72899.html | mailing list].  The problem 
appears to have been introduced by check-in [62678be3df35cdcb091] and first
appeared in version 3.7.14.