|
21 | 21 | schema_template:
|
22 | 22 | create table t1(id bigint, col1 bigint, col2 bigint, col3 bigint, primary key(id))
|
23 | 23 | create table t2(id bigint, col1 bigint, col2 bigint, primary key(id))
|
24 |
| - create table t3(id bigint, col1 bigint, col2 bigint, primary key(id)) |
25 |
| - create index t1_i1 as select sum(col1) from t1 group by col2, col3 |
26 |
| - create index t1_i2 as select count(*) from t1 group by col2 |
| 24 | + create table t3(id bigint, col1 bigint, col2 bigint, col3 bigint, primary key(id)) |
| 25 | + create index t1_i1 as select count(col1) from t1 group by col2, col3 |
| 26 | + create index t1_i2 as select col2, sum(col1) from t1 group by col2 |
27 | 27 | create index t2_i1 as select count(*) from t2
|
28 | 28 | create index t2_i2 as select count(*) from t2 group by col1
|
29 | 29 | create index t2_i3 as select count(col2) from t2
|
30 | 30 | create index t2_i4 as select count(col2) from t2 group by col1
|
31 | 31 | create index t2_i5 as select sum(col1) from t2
|
32 | 32 | create index t2_i6 as select sum(col2) from t2 group by col1
|
33 | 33 | create index t2_i7 as select count(*) from t2 group by col1, col2
|
| 34 | + create index t3_i1 as select col1, max(col2), col3 from T3 group by col1, col3 order by col1, max(col2), col3 |
| 35 | + create index t3_i2 as select col1, min(col2), col3 from T3 group by col1, col3 order by col1, min(col2), col3 |
34 | 36 |
|
35 | 37 | ---
|
36 | 38 | setup:
|
@@ -93,9 +95,16 @@ test_block:
|
93 | 95 | # - query: select sum(col2), count(col2) from T2 where col1 < 2 group by col1 having sum(col2) = 17;
|
94 | 96 | # - explain: "AISCAN(T2_I6 [[LESS_THAN promote(@c16 AS LONG)]] BY_GROUP -> [_0: KEY:[0], _1: VALUE:[0]]) ∩ AISCAN(T2_I4 [[LESS_THAN promote(@c16 AS LONG)]] BY_GROUP -> [_0: KEY:[0], _1: VALUE:[0]]) COMPARE BY (_._0._0) WITH q0, q1 RETURN (q0._0 AS _0, q0._1 AS _1, q1._1 AS _2) | FILTER _._1 EQUALS promote(@c26 AS LONG) | MAP (_._1 AS _0, _._2 AS _1)"
|
95 | 97 | # - result: [{!l 17, !l 4}]
|
| 98 | + #- |
| 99 | + # - query: select sum(col1) / count(col1) from T1 group by col2; |
| 100 | + # - explain: "AISCAN(T2_I6 <,> BY_GROUP -> [_0: KEY:[0], _1: VALUE:[0]]) ∩ AISCAN(T2_I4 <,> BY_GROUP -> [_0: KEY:[0], _1: VALUE:[0]]) COMPARE BY (_._0._0) WITH q0, q1 RETURN (q0._0 AS _0, q0._1 AS _1, q1._1 AS _2) | MAP (_._1 / _._2 AS _0)" |
| 101 | + # - result: [] |
| 102 | + #- |
| 103 | + # - query: select col2, sum(col1) / count(col1) from T1 where col2 < 2 group by col2 having sum(col1) = 17; |
| 104 | + # - explain: "AISCAN(T1_I2 [[LESS_THAN promote(@c16 AS LONG)]] BY_GROUP -> [_0: KEY:[0], _1: VALUE:[0]]) ∩ AISCAN(T1_I1 [[LESS_THAN promote(@c16 AS LONG)]] BY_GROUP -> [_0: KEY:[0], _1: KEY:[1], _2: VALUE:[0]]) | AGG sum_l(_._1) GROUP BY (_._0 AS _0) COMPARE BY (_._0._0) WITH q0, q1 RETURN (q0._0 AS _0, q0._1 AS _1, q1._1 AS _2) | FILTER _._1 EQUALS promote(@c26 AS LONG) | MAP (_._1 / _._2 AS _0)" |
| 105 | + # - result: [] |
96 | 106 | -
|
97 |
| - - query: select sum(col1) / count(*) from T1 group by col2; |
98 |
| - - explain: "AISCAN(T2_I6 <,> BY_GROUP -> [_0: KEY:[0], _1: VALUE:[0]]) ∩ AISCAN(T2_I4 <,> BY_GROUP -> [_0: KEY:[0], _1: VALUE:[0]]) COMPARE BY (_._0._0) WITH q0, q1 RETURN (q0._0 AS _0, q0._1 AS _1, q1._1 AS _2) | MAP (_._1 / _._2 AS _0)" |
| 107 | + - query: select col1, min(col2), max(col2) from T3 group by col1, col3; |
| 108 | + - explain: "AISCAN(T3_I2 <,> BY_GROUP -> [_0: KEY:[0], _1: KEY:[2], _2: KEY:[1]]) | MAP (_._0 AS COL1, _._2 AS _1)" |
99 | 109 | - result: []
|
100 |
| - |
101 | 110 | ...
|
0 commit comments