|
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 |