OLD | NEW |
1 # 2013-04-13 | 1 # 2013-04-13 |
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 #*********************************************************************** |
11 # | 11 # |
12 # This file tests features of the name resolver (the component that | 12 # This file tests features of the name resolver (the component that |
13 # figures out what identifiers in the SQL statement refer to) that | 13 # figures out what identifiers in the SQL statement refer to) that |
14 # were fixed by ticket [2500cdb9be] | 14 # were fixed by ticket [2500cdb9be]. |
15 # | 15 # |
16 # See also tickets [1c69be2daf] and [f617ea3125] from 2013-08-14. | 16 # See also tickets [1c69be2daf] and [f617ea3125] from 2013-08-14. |
17 # | 17 # |
| 18 # Also a fuzzer-discovered problem on 2015-04-23. |
| 19 # |
18 | 20 |
19 set testdir [file dirname $argv0] | 21 set testdir [file dirname $argv0] |
20 source $testdir/tester.tcl | 22 source $testdir/tester.tcl |
21 | 23 |
22 # "ORDER BY y" binds to the output result-set column named "y" | 24 # "ORDER BY y" binds to the output result-set column named "y" |
23 # if available. If no output column is named "y", then try to | 25 # if available. If no output column is named "y", then try to |
24 # bind against an input column named "y". | 26 # bind against an input column named "y". |
25 # | 27 # |
26 # This is classical SQL92 behavior. | 28 # This is classical SQL92 behavior. |
27 # | 29 # |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 do_execsql_test resolver01-6.3 { | 196 do_execsql_test resolver01-6.3 { |
195 CREATE TABLE t63(name); | 197 CREATE TABLE t63(name); |
196 INSERT INTO t63 VALUES (NULL); | 198 INSERT INTO t63 VALUES (NULL); |
197 INSERT INTO t63 VALUES ('abc'); | 199 INSERT INTO t63 VALUES ('abc'); |
198 SELECT count(), | 200 SELECT count(), |
199 NULLIF(name,'abc') AS name | 201 NULLIF(name,'abc') AS name |
200 FROM t63 | 202 FROM t63 |
201 GROUP BY lower(name); | 203 GROUP BY lower(name); |
202 } {1 {} 1 {}} | 204 } {1 {} 1 {}} |
203 | 205 |
| 206 do_execsql_test resolver01-7.1 { |
| 207 SELECT 2 AS x WHERE (SELECT x AS y WHERE 3>y); |
| 208 } {2} |
| 209 do_execsql_test resolver01-7.2 { |
| 210 SELECT 2 AS x WHERE (SELECT x AS y WHERE 1>y); |
| 211 } {} |
204 | 212 |
205 | 213 |
206 | 214 |
207 | 215 |
208 finish_test | 216 finish_test |
OLD | NEW |