Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

planner, executor: add post-process after physical plan optimization and move buildProjBelowAgg from executor to planner #8828

Merged
merged 5 commits into from Jan 3, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
44 changes: 24 additions & 20 deletions cmd/explaintest/r/explain_complex.result
Expand Up @@ -179,23 +179,27 @@ CREATE TABLE `tbl_008` (`a` int, `b` int);
CREATE TABLE `tbl_009` (`a` int, `b` int);
explain select sum(a) from (select * from tbl_001 union all select * from tbl_002 union all select * from tbl_003 union all select * from tbl_004 union all select * from tbl_005 union all select * from tbl_006 union all select * from tbl_007 union all select * from tbl_008 union all select * from tbl_009) x group by b;
id count task operator info
HashAgg_34 72000.00 root group by:x.b, funcs:sum(x.a)
└─Union_35 90000.00 root
├─TableReader_38 10000.00 root data:TableScan_37
│ └─TableScan_37 10000.00 cop table:tbl_001, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_41 10000.00 root data:TableScan_40
│ └─TableScan_40 10000.00 cop table:tbl_002, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_44 10000.00 root data:TableScan_43
│ └─TableScan_43 10000.00 cop table:tbl_003, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_47 10000.00 root data:TableScan_46
│ └─TableScan_46 10000.00 cop table:tbl_004, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_50 10000.00 root data:TableScan_49
│ └─TableScan_49 10000.00 cop table:tbl_005, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_53 10000.00 root data:TableScan_52
│ └─TableScan_52 10000.00 cop table:tbl_006, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_56 10000.00 root data:TableScan_55
│ └─TableScan_55 10000.00 cop table:tbl_007, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_59 10000.00 root data:TableScan_58
│ └─TableScan_58 10000.00 cop table:tbl_008, range:[-inf,+inf], keep order:false, stats:pseudo
└─TableReader_62 10000.00 root data:TableScan_61
└─TableScan_61 10000.00 cop table:tbl_009, range:[-inf,+inf], keep order:false, stats:pseudo
HashAgg_34 72000.00 root group by:col_1, funcs:sum(col_0)
└─Projection_63 90000.00 root cast(x.a), x.b
└─Union_35 90000.00 root
├─TableReader_38 10000.00 root data:TableScan_37
│ └─TableScan_37 10000.00 cop table:tbl_001, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_41 10000.00 root data:TableScan_40
│ └─TableScan_40 10000.00 cop table:tbl_002, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_44 10000.00 root data:TableScan_43
│ └─TableScan_43 10000.00 cop table:tbl_003, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_47 10000.00 root data:TableScan_46
│ └─TableScan_46 10000.00 cop table:tbl_004, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_50 10000.00 root data:TableScan_49
│ └─TableScan_49 10000.00 cop table:tbl_005, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_53 10000.00 root data:TableScan_52
│ └─TableScan_52 10000.00 cop table:tbl_006, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_56 10000.00 root data:TableScan_55
│ └─TableScan_55 10000.00 cop table:tbl_007, range:[-inf,+inf], keep order:false, stats:pseudo
├─TableReader_59 10000.00 root data:TableScan_58
│ └─TableScan_58 10000.00 cop table:tbl_008, range:[-inf,+inf], keep order:false, stats:pseudo
└─TableReader_62 10000.00 root data:TableScan_61
└─TableScan_61 10000.00 cop table:tbl_009, range:[-inf,+inf], keep order:false, stats:pseudo



44 changes: 24 additions & 20 deletions cmd/explaintest/r/explain_complex_stats.result
Expand Up @@ -205,23 +205,27 @@ CREATE TABLE tbl_009 (a int, b int);
load stats 's/explain_complex_stats_tbl_009.json';
explain select sum(a) from (select * from tbl_001 union all select * from tbl_002 union all select * from tbl_003 union all select * from tbl_004 union all select * from tbl_005 union all select * from tbl_006 union all select * from tbl_007 union all select * from tbl_008 union all select * from tbl_009) x group by b;
id count task operator info
HashAgg_34 18000.00 root group by:x.b, funcs:sum(x.a)
└─Union_35 18000.00 root
├─TableReader_38 2000.00 root data:TableScan_37
│ └─TableScan_37 2000.00 cop table:tbl_001, range:[-inf,+inf], keep order:false
├─TableReader_41 2000.00 root data:TableScan_40
│ └─TableScan_40 2000.00 cop table:tbl_002, range:[-inf,+inf], keep order:false
├─TableReader_44 2000.00 root data:TableScan_43
│ └─TableScan_43 2000.00 cop table:tbl_003, range:[-inf,+inf], keep order:false
├─TableReader_47 2000.00 root data:TableScan_46
│ └─TableScan_46 2000.00 cop table:tbl_004, range:[-inf,+inf], keep order:false
├─TableReader_50 2000.00 root data:TableScan_49
│ └─TableScan_49 2000.00 cop table:tbl_005, range:[-inf,+inf], keep order:false
├─TableReader_53 2000.00 root data:TableScan_52
│ └─TableScan_52 2000.00 cop table:tbl_006, range:[-inf,+inf], keep order:false
├─TableReader_56 2000.00 root data:TableScan_55
│ └─TableScan_55 2000.00 cop table:tbl_007, range:[-inf,+inf], keep order:false
├─TableReader_59 2000.00 root data:TableScan_58
│ └─TableScan_58 2000.00 cop table:tbl_008, range:[-inf,+inf], keep order:false
└─TableReader_62 2000.00 root data:TableScan_61
└─TableScan_61 2000.00 cop table:tbl_009, range:[-inf,+inf], keep order:false
HashAgg_34 18000.00 root group by:col_1, funcs:sum(col_0)
└─Projection_63 18000.00 root cast(x.a), x.b
└─Union_35 18000.00 root
├─TableReader_38 2000.00 root data:TableScan_37
│ └─TableScan_37 2000.00 cop table:tbl_001, range:[-inf,+inf], keep order:false
├─TableReader_41 2000.00 root data:TableScan_40
│ └─TableScan_40 2000.00 cop table:tbl_002, range:[-inf,+inf], keep order:false
├─TableReader_44 2000.00 root data:TableScan_43
│ └─TableScan_43 2000.00 cop table:tbl_003, range:[-inf,+inf], keep order:false
├─TableReader_47 2000.00 root data:TableScan_46
│ └─TableScan_46 2000.00 cop table:tbl_004, range:[-inf,+inf], keep order:false
├─TableReader_50 2000.00 root data:TableScan_49
│ └─TableScan_49 2000.00 cop table:tbl_005, range:[-inf,+inf], keep order:false
├─TableReader_53 2000.00 root data:TableScan_52
│ └─TableScan_52 2000.00 cop table:tbl_006, range:[-inf,+inf], keep order:false
├─TableReader_56 2000.00 root data:TableScan_55
│ └─TableScan_55 2000.00 cop table:tbl_007, range:[-inf,+inf], keep order:false
├─TableReader_59 2000.00 root data:TableScan_58
│ └─TableScan_58 2000.00 cop table:tbl_008, range:[-inf,+inf], keep order:false
└─TableReader_62 2000.00 root data:TableScan_61
└─TableScan_61 2000.00 cop table:tbl_009, range:[-inf,+inf], keep order:false



44 changes: 24 additions & 20 deletions cmd/explaintest/r/explain_easy.result
Expand Up @@ -86,12 +86,13 @@ TableReader_7 0.33 root data:Selection_6
└─TableScan_5 1.00 cop table:t1, range:[1,1], keep order:false, stats:pseudo
explain select sum(t1.c1 in (select c1 from t2)) from t1;
id count task operator info
StreamAgg_12 1.00 root funcs:sum(5_aux_0)
└─MergeJoin_28 10000.00 root left outer semi join, left key:test.t1.c1, right key:test.t2.c1
├─TableReader_19 10000.00 root data:TableScan_18
│ └─TableScan_18 10000.00 cop table:t1, range:[-inf,+inf], keep order:true, stats:pseudo
└─IndexReader_23 10000.00 root index:IndexScan_22
└─IndexScan_22 10000.00 cop table:t2, index:c1, range:[NULL,+inf], keep order:true, stats:pseudo
StreamAgg_12 1.00 root funcs:sum(col_0)
└─Projection_35 10000.00 root cast(5_aux_0)
└─MergeJoin_28 10000.00 root left outer semi join, left key:test.t1.c1, right key:test.t2.c1
├─TableReader_19 10000.00 root data:TableScan_18
│ └─TableScan_18 10000.00 cop table:t1, range:[-inf,+inf], keep order:true, stats:pseudo
└─IndexReader_23 10000.00 root index:IndexScan_22
└─IndexScan_22 10000.00 cop table:t2, index:c1, range:[NULL,+inf], keep order:true, stats:pseudo
explain select c1 from t1 where c1 in (select c2 from t2);
id count task operator info
Projection_9 10000.00 root test.t1.c1
Expand Down Expand Up @@ -190,12 +191,13 @@ HashAgg_18 24000.00 root group by:c1, funcs:firstrow(join_agg_0)
set @@session.tidb_opt_insubq_to_join_and_agg=0;
explain select sum(t1.c1 in (select c1 from t2)) from t1;
id count task operator info
StreamAgg_12 1.00 root funcs:sum(5_aux_0)
└─MergeJoin_28 10000.00 root left outer semi join, left key:test.t1.c1, right key:test.t2.c1
├─TableReader_19 10000.00 root data:TableScan_18
│ └─TableScan_18 10000.00 cop table:t1, range:[-inf,+inf], keep order:true, stats:pseudo
└─IndexReader_23 10000.00 root index:IndexScan_22
└─IndexScan_22 10000.00 cop table:t2, index:c1, range:[NULL,+inf], keep order:true, stats:pseudo
StreamAgg_12 1.00 root funcs:sum(col_0)
└─Projection_35 10000.00 root cast(5_aux_0)
└─MergeJoin_28 10000.00 root left outer semi join, left key:test.t1.c1, right key:test.t2.c1
├─TableReader_19 10000.00 root data:TableScan_18
│ └─TableScan_18 10000.00 cop table:t1, range:[-inf,+inf], keep order:true, stats:pseudo
└─IndexReader_23 10000.00 root index:IndexScan_22
└─IndexScan_22 10000.00 cop table:t2, index:c1, range:[NULL,+inf], keep order:true, stats:pseudo
explain select 1 in (select c2 from t2) from t1;
id count task operator info
Projection_6 10000.00 root 5_aux_0
Expand All @@ -207,13 +209,14 @@ Projection_6 10000.00 root 5_aux_0
└─TableScan_10 10000.00 cop table:t2, range:[-inf,+inf], keep order:false, stats:pseudo
explain select sum(6 in (select c2 from t2)) from t1;
id count task operator info
StreamAgg_12 1.00 root funcs:sum(5_aux_0)
└─HashLeftJoin_19 10000.00 root left outer semi join, inner:TableReader_18
├─TableReader_21 10000.00 root data:TableScan_20
│ └─TableScan_20 10000.00 cop table:t1, range:[-inf,+inf], keep order:false, stats:pseudo
└─TableReader_18 10.00 root data:Selection_17
└─Selection_17 10.00 cop eq(6, test.t2.c2)
└─TableScan_16 10000.00 cop table:t2, range:[-inf,+inf], keep order:false, stats:pseudo
StreamAgg_12 1.00 root funcs:sum(col_0)
└─Projection_22 10000.00 root cast(5_aux_0)
└─HashLeftJoin_19 10000.00 root left outer semi join, inner:TableReader_18
├─TableReader_21 10000.00 root data:TableScan_20
│ └─TableScan_20 10000.00 cop table:t1, range:[-inf,+inf], keep order:false, stats:pseudo
└─TableReader_18 10.00 root data:Selection_17
└─Selection_17 10.00 cop eq(6, test.t2.c2)
└─TableScan_16 10000.00 cop table:t2, range:[-inf,+inf], keep order:false, stats:pseudo
explain format="dot" select sum(t1.c1 in (select c1 from t2)) from t1;
dot contents

Expand All @@ -222,7 +225,8 @@ subgraph cluster12{
node [style=filled, color=lightgrey]
color=black
label = "root"
"StreamAgg_12" -> "MergeJoin_28"
"StreamAgg_12" -> "Projection_35"
"Projection_35" -> "MergeJoin_28"
"MergeJoin_28" -> "TableReader_19"
"MergeJoin_28" -> "IndexReader_23"
}
Expand Down