OLD | NEW |
| (Empty) |
1 # 2008 February 15 | |
2 # | |
3 # The author disclaims copyright to this source code. In place of | |
4 # a legal notice, here is a blessing: | |
5 # | |
6 # May you do good and not evil. | |
7 # May you find forgiveness for yourself and forgive others. | |
8 # May you share freely, never taking more than you give. | |
9 # | |
10 #*********************************************************************** | |
11 # | |
12 # Ticket #2942. | |
13 # | |
14 # Queries of the form: | |
15 # | |
16 # SELECT group_concat(x) FROM (SELECT * FROM table ORDER BY 1); | |
17 # | |
18 # The ORDER BY would be dropped by the query flattener. This used | |
19 # to not matter because aggregate functions sum(), min(), max(), avg(), | |
20 # and so forth give the same result regardless of the order of inputs. | |
21 # But with the addition of the group_concat() function, suddenly the | |
22 # order does matter. | |
23 # | |
24 # $Id: tkt2942.test,v 1.1 2008/02/15 14:33:04 drh Exp $ | |
25 # | |
26 | |
27 set testdir [file dirname $argv0] | |
28 source $testdir/tester.tcl | |
29 | |
30 ifcapable !subquery { | |
31 finish_test | |
32 return | |
33 } | |
34 | |
35 do_test tkt2942.1 { | |
36 execsql { | |
37 create table t1(num int); | |
38 insert into t1 values (2); | |
39 insert into t1 values (1); | |
40 insert into t1 values (3); | |
41 insert into t1 values (4); | |
42 SELECT group_concat(num) FROM (SELECT num FROM t1 ORDER BY num DESC); | |
43 } | |
44 } {4,3,2,1} | |
45 do_test tkt2942.2 { | |
46 execsql { | |
47 SELECT group_concat(num) FROM (SELECT num FROM t1 ORDER BY num); | |
48 } | |
49 } {1,2,3,4} | |
50 do_test tkt2942.3 { | |
51 execsql { | |
52 SELECT group_concat(num) FROM (SELECT num FROM t1); | |
53 } | |
54 } {2,1,3,4} | |
55 do_test tkt2942.4 { | |
56 execsql { | |
57 SELECT group_concat(num) FROM (SELECT num FROM t1 ORDER BY rowid DESC); | |
58 } | |
59 } {4,3,1,2} | |
60 | |
61 | |
62 finish_test | |
OLD | NEW |