| OLD | NEW |
| 1 # 2005 September 19 | 1 # 2005 September 19 |
| 2 # | 2 # |
| 3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
| 4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
| 5 # | 5 # |
| 6 # May you do good and not evil. | 6 # May you do good and not evil. |
| 7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
| 8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
| 9 # | 9 # |
| 10 #*********************************************************************** | 10 #*********************************************************************** |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 CREATE TABLE x1(a); | 154 CREATE TABLE x1(a); |
| 155 INSERT INTO x1 VALUES(1); | 155 INSERT INTO x1 VALUES(1); |
| 156 CREATE TABLE x2(b NOT NULL); | 156 CREATE TABLE x2(b NOT NULL); |
| 157 CREATE TABLE x3(c, d); | 157 CREATE TABLE x3(c, d); |
| 158 INSERT INTO x3 VALUES('a', NULL); | 158 INSERT INTO x3 VALUES('a', NULL); |
| 159 INSERT INTO x3 VALUES('b', NULL); | 159 INSERT INTO x3 VALUES('b', NULL); |
| 160 INSERT INTO x3 VALUES('c', NULL); | 160 INSERT INTO x3 VALUES('c', NULL); |
| 161 SELECT * FROM x1 LEFT JOIN x2 JOIN x3 WHERE x3.d = x2.b; | 161 SELECT * FROM x1 LEFT JOIN x2 JOIN x3 WHERE x3.d = x2.b; |
| 162 } {} | 162 } {} |
| 163 | 163 |
| 164 # Ticket https://www.sqlite.org/src/tktview/c2a19d81652f40568c770c43 on |
| 165 # 2015-08-20. LEFT JOIN and the push-down optimization. |
| 166 # |
| 167 do_execsql_test join6-4.1 { |
| 168 SELECT * |
| 169 FROM ( |
| 170 SELECT 'apple' fruit |
| 171 UNION ALL SELECT 'banana' |
| 172 ) a |
| 173 JOIN ( |
| 174 SELECT 'apple' fruit |
| 175 UNION ALL SELECT 'banana' |
| 176 ) b ON a.fruit=b.fruit |
| 177 LEFT JOIN ( |
| 178 SELECT 1 isyellow |
| 179 ) c ON b.fruit='banana'; |
| 180 } {apple apple {} banana banana 1} |
| 181 do_execsql_test join6-4.2 { |
| 182 SELECT * |
| 183 FROM (SELECT 'apple' fruit UNION ALL SELECT 'banana') |
| 184 LEFT JOIN (SELECT 1) ON fruit='banana'; |
| 185 } {apple {} banana 1} |
| 186 |
| 164 finish_test | 187 finish_test |
| OLD | NEW |