• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
27set testdir [file dirname $argv0]
28source $testdir/tester.tcl
29
30ifcapable !subquery {
31  finish_test
32  return
33}
34
35do_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}
45do_test tkt2942.2 {
46  execsql {
47    SELECT group_concat(num) FROM (SELECT num FROM t1 ORDER BY num);
48  }
49} {1,2,3,4}
50do_test tkt2942.3 {
51  execsql {
52    SELECT group_concat(num) FROM (SELECT num FROM t1);
53  }
54} {2,1,3,4}
55do_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
62finish_test
63