Output: unique1, unique2, (nextval('testseq'::regclass))
-> Remote Subquery Scan on all (datanode_1,datanode_2)
Output: unique1, unique2, nextval('testseq'::regclass)
+ Sort Key: tenk1.unique2
-> Limit
Output: unique1, unique2, (nextval('testseq'::regclass))
-> Index Scan using tenk1_unique2 on public.tenk1
Output: unique1, unique2, nextval('testseq'::regclass)
-(8 rows)
+(9 rows)
select unique1, unique2, nextval('testseq')
from tenk1 order by unique2 limit 10;
Output: unique1, unique2, (nextval('testseq'::regclass)), tenthous
-> Remote Subquery Scan on all (datanode_1,datanode_2)
Output: unique1, unique2, nextval('testseq'::regclass), tenthous
+ Sort Key: tenk1.tenthous
-> Limit
Output: unique1, unique2, (nextval('testseq'::regclass)), tenthous
-> Result
Sort Key: tenk1.tenthous
-> Seq Scan on public.tenk1
Output: unique1, unique2, tenthous
-(13 rows)
+(14 rows)
select unique1, unique2, nextval('testseq')
from tenk1 order by tenthous limit 10;
Output: unique1, unique2, (generate_series(1, 10))
-> Remote Subquery Scan on all (datanode_1,datanode_2)
Output: unique1, unique2, generate_series(1, 10)
+ Sort Key: tenk1.unique2
-> Limit
Output: unique1, unique2, (generate_series(1, 10))
-> Index Scan using tenk1_unique2 on public.tenk1
Output: unique1, unique2, generate_series(1, 10)
-(8 rows)
+(9 rows)
select unique1, unique2, generate_series(1,10)
from tenk1 order by unique2 limit 7;
Output: unique1, unique2, (generate_series(1, 10)), tenthous
-> Remote Subquery Scan on all (datanode_1,datanode_2)
Output: unique1, unique2, generate_series(1, 10), tenthous
+ Sort Key: tenk1.tenthous
-> Limit
Output: unique1, unique2, (generate_series(1, 10)), tenthous
-> Result
Sort Key: tenk1.tenthous
-> Seq Scan on public.tenk1
Output: unique1, unique2, tenthous
-(13 rows)
+(14 rows)
select unique1, unique2, generate_series(1,10)
from tenk1 order by tenthous limit 7;
Group Key: tenk1.thousand
-> Remote Subquery Scan on all (datanode_1,datanode_2)
Output: thousand, PARTIAL sum(tenthous)
+ Sort Key: tenk1.thousand
-> Partial GroupAggregate
Output: thousand, PARTIAL sum(tenthous)
Group Key: tenk1.thousand
-> Index Only Scan using tenk1_thous_tenthous on public.tenk1
Output: thousand, tenthous
-(12 rows)
+(13 rows)
select sum(tenthous) as s1, sum(tenthous) + random()*0 as s2
from tenk1 group by thousand order by thousand limit 3;
Output: first_value(val) OVER (?), val, val2
-> Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_rr.val2, tab1_rr.val
-> Sort
Output: val, val2
Sort Key: tab1_rr.val2, tab1_rr.val
-> Seq Scan on public.tab1_rr
Output: val, val2
-(9 rows)
+(10 rows)
-- should not get FQSed because of LIMIT clause
select * from tab1_rr where val2 = 3 limit 1;
----------------------------------------
Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_rr.val
-> Sort
Output: val, val2
Sort Key: tab1_rr.val
-> Seq Scan on public.tab1_rr
Output: val, val2
-(7 rows)
+(8 rows)
-- should not get FQSed because of DISTINCT clause
select distinct val, val2 from tab1_rr where val2 = 8;
----------------------------------------------------------------
Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_rr.val
-> Sort
Output: val, val2
Sort Key: tab1_rr.val
-> Seq Scan on public.tab1_rr
Output: val, val2
Filter: ((tab1_rr.val = 7) OR (tab1_rr.val = 2))
-(8 rows)
+(9 rows)
select * from tab1_rr where val = 7 and val2 = 8;
val | val2
-----------------------------------------
Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_rr.val2
-> Sort
Output: val, val2
Sort Key: tab1_rr.val2
-> Seq Scan on public.tab1_rr
Output: val, val2
Filter: (tab1_rr.val = 7)
-(8 rows)
+(9 rows)
select distinct val2 from tab1_rr where val = 7;
val2
Output: first_value(val) OVER (?), val, val2
-> Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_hash.val2, tab1_hash.val
-> Sort
Output: val, val2
Sort Key: tab1_hash.val2, tab1_hash.val
-> Seq Scan on public.tab1_hash
Output: val, val2
-(9 rows)
+(10 rows)
-- should not get FQSed because of LIMIT clause
select * from tab1_hash where val2 = 3 limit 1;
------------------------------------------
Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_hash.val
-> Sort
Output: val, val2
Sort Key: tab1_hash.val
-> Seq Scan on public.tab1_hash
Output: val, val2
-(7 rows)
+(8 rows)
-- should get FQSed because DISTINCT clause contains distkey
select distinct val, val2 from tab1_hash where val2 = 8;
--------------------------------------------------------------------
Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_hash.val
-> Sort
Output: val, val2
Sort Key: tab1_hash.val
-> Seq Scan on public.tab1_hash
Output: val, val2
Filter: ((tab1_hash.val = 7) OR (tab1_hash.val = 2))
-(8 rows)
+(9 rows)
select * from tab1_hash where val = 7 and val2 = 8;
val | val2
Output: first_value(val) OVER (?), val, val2
-> Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_modulo.val2, tab1_modulo.val
-> Sort
Output: val, val2
Sort Key: tab1_modulo.val2, tab1_modulo.val
-> Seq Scan on public.tab1_modulo
Output: val, val2
-(9 rows)
+(10 rows)
-- should not get FQSed because of LIMIT clause
select * from tab1_modulo where val2 = 3 limit 1;
--------------------------------------------
Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_modulo.val
-> Sort
Output: val, val2
Sort Key: tab1_modulo.val
-> Seq Scan on public.tab1_modulo
Output: val, val2
-(7 rows)
+(8 rows)
-- should get FQSed because DISTINCT clause contains distkey
select distinct val, val2 from tab1_modulo where val2 = 8;
------------------------------------------------------------------------
Remote Subquery Scan on all
Output: val, val2
+ Sort Key: tab1_modulo.val
-> Sort
Output: val, val2
Sort Key: tab1_modulo.val
-> Seq Scan on public.tab1_modulo
Output: val, val2
Filter: ((tab1_modulo.val = 7) OR (tab1_modulo.val = 2))
-(8 rows)
+(9 rows)
select * from tab1_modulo where val = 7 and val2 = 8;
val | val2
--------------------------------------------------------------
Remote Subquery Scan on all
Output: (val + val2), val, val2
+ Sort Key: xc_groupby_tab1.val, xc_groupby_tab1.val2
-> HashAggregate
Output: (val + val2), val, val2
Group Key: xc_groupby_tab1.val, xc_groupby_tab1.val2
-> Seq Scan on public.xc_groupby_tab1
Output: val, val2
-(7 rows)
+(8 rows)
select xc_groupby_tab1.val + xc_groupby_tab2.val2, xc_groupby_tab1.val, xc_groupby_tab2.val2 from xc_groupby_tab1, xc_groupby_tab2 where xc_groupby_tab1.val = xc_groupby_tab2.val group by xc_groupby_tab1.val, xc_groupby_tab2.val2;
?column? | val | val2
---------------------------------------------------------------------------------------------------------
Remote Subquery Scan on all
Output: (xc_groupby_tab1.val + xc_groupby_tab2.val2), xc_groupby_tab1.val, xc_groupby_tab2.val2
+ Sort Key: xc_groupby_tab1.val, xc_groupby_tab2.val2
-> HashAggregate
Output: (xc_groupby_tab1.val + xc_groupby_tab2.val2), xc_groupby_tab1.val, xc_groupby_tab2.val2
Group Key: xc_groupby_tab1.val, xc_groupby_tab2.val2
Sort Key: xc_groupby_tab2.val
-> Seq Scan on public.xc_groupby_tab2
Output: xc_groupby_tab2.val2, xc_groupby_tab2.val
-(18 rows)
+(19 rows)
select xc_groupby_tab1.val + xc_groupby_tab2.val2 from xc_groupby_tab1, xc_groupby_tab2 where xc_groupby_tab1.val = xc_groupby_tab2.val group by xc_groupby_tab1.val + xc_groupby_tab2.val2;
?column?
-----------------------------------------------------
Remote Subquery Scan on all
Output: a, count(a)
+ Sort Key: xc_groupby_def.a
-> Sort
Output: a, (count(a))
Sort Key: xc_groupby_def.a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a, b
-(10 rows)
+(11 rows)
select avg(a) from xc_groupby_def group by a;
avg
-----------------------------------------------
Remote Subquery Scan on all
Output: avg(a), a
+ Sort Key: xc_groupby_def.a
-> HashAggregate
Output: avg(a), a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a, b
-(7 rows)
+(8 rows)
select avg(a) from xc_groupby_def group by b;
avg
------------------------------------------------------
Remote Subquery Scan on all
Output: count(*), a
+ Sort Key: xc_groupby_def.a
-> HashAggregate
Output: count(*), a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a, b
Filter: (xc_groupby_def.a IS NOT NULL)
-(8 rows)
+(9 rows)
select * from (select b from xc_groupby_def group by b) q order by q.b;
b
---------------------------------------------
Remote Subquery Scan on all
Output: sum(a), a
+ Sort Key: xc_groupby_g.a
-> HashAggregate
Output: sum(a), a
Group Key: xc_groupby_g.a
-> Seq Scan on public.xc_groupby_g
Output: a, b, c
-(7 rows)
+(8 rows)
select sum(b) from xc_groupby_g group by b;
sum
-------------------------------------------------------------------
Remote Subquery Scan on all
Output: (val + val2), val, val2
+ Sort Key: xc_groupby_tab1.val, xc_groupby_tab1.val2
-> Group
Output: (val + val2), val, val2
Group Key: xc_groupby_tab1.val, xc_groupby_tab1.val2
Sort Key: xc_groupby_tab1.val, xc_groupby_tab1.val2
-> Seq Scan on public.xc_groupby_tab1
Output: val, val2
-(10 rows)
+(11 rows)
select xc_groupby_tab1.val + xc_groupby_tab2.val2, xc_groupby_tab1.val, xc_groupby_tab2.val2 from xc_groupby_tab1, xc_groupby_tab2 where xc_groupby_tab1.val = xc_groupby_tab2.val group by xc_groupby_tab1.val, xc_groupby_tab2.val2;
?column? | val | val2
---------------------------------------------------------------------------------------------------------
Remote Subquery Scan on all
Output: (xc_groupby_tab1.val + xc_groupby_tab2.val2), xc_groupby_tab1.val, xc_groupby_tab2.val2
+ Sort Key: xc_groupby_tab1.val, xc_groupby_tab2.val2
-> Group
Output: (xc_groupby_tab1.val + xc_groupby_tab2.val2), xc_groupby_tab1.val, xc_groupby_tab2.val2
Group Key: xc_groupby_tab1.val, xc_groupby_tab2.val2
Sort Key: xc_groupby_tab2.val
-> Seq Scan on public.xc_groupby_tab2
Output: xc_groupby_tab2.val2, xc_groupby_tab2.val
-(21 rows)
+(22 rows)
select xc_groupby_tab1.val + xc_groupby_tab2.val2 from xc_groupby_tab1, xc_groupby_tab2 where xc_groupby_tab1.val = xc_groupby_tab2.val group by xc_groupby_tab1.val + xc_groupby_tab2.val2;
?column?
Group Key: (xc_groupby_tab1.val + xc_groupby_tab2.val2)
-> Remote Subquery Scan on all
Output: (xc_groupby_tab1.val + xc_groupby_tab2.val2)
+ Sort Key: (xc_groupby_tab1.val + xc_groupby_tab2.val2)
-> Sort
Output: ((xc_groupby_tab1.val + xc_groupby_tab2.val2))
Sort Key: ((xc_groupby_tab1.val + xc_groupby_tab2.val2))
Sort Key: xc_groupby_tab2.val
-> Seq Scan on public.xc_groupby_tab2
Output: xc_groupby_tab2.val2, xc_groupby_tab2.val
-(21 rows)
+(22 rows)
-- group by with aggregates in expression
select count(*) + sum(val) + avg(val), val2 from xc_groupby_tab1 group by val2;
-----------------------------------------------------
Remote Subquery Scan on all
Output: a, count(a)
+ Sort Key: xc_groupby_def.a
-> GroupAggregate
Output: a, count(a)
Group Key: xc_groupby_def.a
Sort Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a
-(10 rows)
+(11 rows)
select avg(a) from xc_groupby_def group by a;
avg
-----------------------------------------------------
Remote Subquery Scan on all
Output: avg(a), a
+ Sort Key: xc_groupby_def.a
-> GroupAggregate
Output: avg(a), a
Group Key: xc_groupby_def.a
Sort Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a
-(10 rows)
+(11 rows)
select avg(a) from xc_groupby_def group by b;
avg
------------------------------------------------------------
Remote Subquery Scan on all
Output: count(*), a
+ Sort Key: xc_groupby_def.a
-> GroupAggregate
Output: count(*), a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a
Filter: (xc_groupby_def.a IS NOT NULL)
-(11 rows)
+(12 rows)
select b from xc_groupby_def group by b;
b
---------------------------------------------------
Remote Subquery Scan on all
Output: sum(a), a
+ Sort Key: xc_groupby_g.a
-> GroupAggregate
Output: sum(a), a
Group Key: xc_groupby_g.a
Sort Key: xc_groupby_g.a
-> Seq Scan on public.xc_groupby_g
Output: a
-(10 rows)
+(11 rows)
select sum(b) from xc_groupby_g group by b;
sum
-----------------------------------------------------
Remote Subquery Scan on all
Output: a, count(a)
+ Sort Key: xc_groupby_def.a
-> Sort
Output: a, (count(a))
Sort Key: xc_groupby_def.a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a, b
-(10 rows)
+(11 rows)
select avg(a) from xc_groupby_def group by a;
avg
-----------------------------------------------
Remote Subquery Scan on all
Output: avg(a), a
+ Sort Key: xc_groupby_def.a
-> HashAggregate
Output: avg(a), a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a, b
-(7 rows)
+(8 rows)
select avg(a) from xc_groupby_def group by b;
avg
------------------------------------------------------
Remote Subquery Scan on all
Output: count(*), a
+ Sort Key: xc_groupby_def.a
-> HashAggregate
Output: count(*), a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a, b
Filter: (xc_groupby_def.a IS NOT NULL)
-(8 rows)
+(9 rows)
select * from (select b from xc_groupby_def group by b) q order by q.b;
b
---------------------------------------------
Remote Subquery Scan on all
Output: sum(a), a
+ Sort Key: xc_groupby_g.a
-> HashAggregate
Output: sum(a), a
Group Key: xc_groupby_g.a
-> Seq Scan on public.xc_groupby_g
Output: a, b, c
-(7 rows)
+(8 rows)
select sum(b) from xc_groupby_g group by b;
sum
Group Key: (xc_groupby_tab1.val + xc_groupby_tab2.val2)
-> Remote Subquery Scan on all
Output: (xc_groupby_tab1.val + xc_groupby_tab2.val2)
+ Sort Key: (xc_groupby_tab1.val + xc_groupby_tab2.val2)
-> Sort
Output: ((xc_groupby_tab1.val + xc_groupby_tab2.val2))
Sort Key: ((xc_groupby_tab1.val + xc_groupby_tab2.val2))
Sort Key: xc_groupby_tab2.val
-> Seq Scan on public.xc_groupby_tab2
Output: xc_groupby_tab2.val2, xc_groupby_tab2.val
-(21 rows)
+(22 rows)
-- group by with aggregates in expression
select count(*) + sum(val) + avg(val), val2 from xc_groupby_tab1 group by val2;
-----------------------------------------------------
Remote Subquery Scan on all
Output: a, count(a)
+ Sort Key: xc_groupby_def.a
-> GroupAggregate
Output: a, count(a)
Group Key: xc_groupby_def.a
Sort Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a
-(10 rows)
+(11 rows)
select avg(a) from xc_groupby_def group by a;
avg
-----------------------------------------------------
Remote Subquery Scan on all
Output: avg(a), a
+ Sort Key: xc_groupby_def.a
-> GroupAggregate
Output: avg(a), a
Group Key: xc_groupby_def.a
Sort Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a
-(10 rows)
+(11 rows)
select avg(a) from xc_groupby_def group by b;
avg
------------------------------------------------------------
Remote Subquery Scan on all
Output: count(*), a
+ Sort Key: xc_groupby_def.a
-> GroupAggregate
Output: count(*), a
Group Key: xc_groupby_def.a
-> Seq Scan on public.xc_groupby_def
Output: a
Filter: (xc_groupby_def.a IS NOT NULL)
-(11 rows)
+(12 rows)
select b from xc_groupby_def group by b;
b
---------------------------------------------------
Remote Subquery Scan on all
Output: sum(a), a
+ Sort Key: xc_groupby_g.a
-> GroupAggregate
Output: sum(a), a
Group Key: xc_groupby_g.a
Sort Key: xc_groupby_g.a
-> Seq Scan on public.xc_groupby_g
Output: a
-(10 rows)
+(11 rows)
select sum(b) from xc_groupby_g group by b;
sum