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 |