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

plan: refine explain result format #7011

Merged
merged 5 commits into from
Jul 9, 2018
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 80 additions & 80 deletions cmd/explaintest/r/explain_complex.result

Large diffs are not rendered by default.

156 changes: 78 additions & 78 deletions cmd/explaintest/r/explain_complex_stats.result

Large diffs are not rendered by default.

410 changes: 205 additions & 205 deletions cmd/explaintest/r/explain_easy.result

Large diffs are not rendered by default.

202 changes: 101 additions & 101 deletions cmd/explaintest/r/explain_easy_stats.result
Original file line number Diff line number Diff line change
Expand Up @@ -11,119 +11,119 @@ load stats 's/explain_easy_stats_index_prune.json';
set @@session.tidb_opt_insubquery_unfold = 1;
set @@session.tidb_opt_agg_push_down = 1;
explain select * from t3 where exists (select s.a from t3 s having sum(s.a) = t3.a );
id task operator info count
Projection_13 root test.t3.a, test.t3.b, test.t3.c, test.t3.d 1600.00
└─HashLeftJoin_14 root semi join, inner:StreamAgg_30, equal:[eq(cast(test.t3.a), sel_agg_1)] 1600.00
├─Projection_15 root test.t3.a, test.t3.b, test.t3.c, test.t3.d, cast(test.t3.a) 2000.00
│ └─TableReader_17 root data:TableScan_16 2000.00
│ └─TableScan_16 cop table:t3, range:[-inf,+inf], keep order:false 2000.00
└─StreamAgg_30 root funcs:sum(col_0) 1.00
└─TableReader_31 root data:StreamAgg_22 1.00
└─StreamAgg_22 cop funcs:sum(s.a) 1.00
└─TableScan_29 cop table:s, range:[-inf,+inf], keep order:false 2000.00
id count task operator info
Projection_13 1600.00 root test.t3.a, test.t3.b, test.t3.c, test.t3.d
└─HashLeftJoin_14 1600.00 root semi join, inner:StreamAgg_30, equal:[eq(cast(test.t3.a), sel_agg_1)]
├─Projection_15 2000.00 root test.t3.a, test.t3.b, test.t3.c, test.t3.d, cast(test.t3.a)
│ └─TableReader_17 2000.00 root data:TableScan_16
│ └─TableScan_16 2000.00 cop table:t3, range:[-inf,+inf], keep order:false
└─StreamAgg_30 1.00 root funcs:sum(col_0)
└─TableReader_31 1.00 root data:StreamAgg_22
└─StreamAgg_22 1.00 cop funcs:sum(s.a)
└─TableScan_29 2000.00 cop table:s, range:[-inf,+inf], keep order:false
explain select * from t1;
id task operator info count
TableReader_5 root data:TableScan_4 1999.00
└─TableScan_4 cop table:t1, range:[-inf,+inf], keep order:false 1999.00
id count task operator info
TableReader_5 1999.00 root data:TableScan_4
└─TableScan_4 1999.00 cop table:t1, range:[-inf,+inf], keep order:false
explain select * from t1 order by c2;
id task operator info count
IndexLookUp_13 root index:IndexScan_11, table:TableScan_12 1999.00
├─IndexScan_11 cop table:t1, index:c2, range:[<nil>,+inf], keep order:true 1999.00
└─TableScan_12 cop table:t1, keep order:false 1999.00
id count task operator info
IndexLookUp_13 1999.00 root
├─IndexScan_11 1999.00 cop table:t1, index:c2, range:[<nil>,+inf], keep order:true
└─TableScan_12 1999.00 cop table:t1, keep order:false
explain select * from t2 order by c2;
id task operator info count
Sort_4 root test.t2.c2:asc 1985.00
└─TableReader_8 root data:TableScan_7 1985.00
└─TableScan_7 cop table:t2, range:[-inf,+inf], keep order:false 1985.00
id count task operator info
Sort_4 1985.00 root test.t2.c2:asc
└─TableReader_8 1985.00 root data:TableScan_7
└─TableScan_7 1985.00 cop table:t2, range:[-inf,+inf], keep order:false
explain select * from t1 where t1.c1 > 0;
id task operator info count
TableReader_6 root data:TableScan_5 1999.00
└─TableScan_5 cop table:t1, range:(0,+inf], keep order:false 1999.00
id count task operator info
TableReader_6 1999.00 root data:TableScan_5
└─TableScan_5 1999.00 cop table:t1, range:(0,+inf], keep order:false
explain select t1.c1, t1.c2 from t1 where t1.c2 = 1;
id task operator info count
IndexReader_9 root index:IndexScan_8 0.00
└─IndexScan_8 cop table:t1, index:c2, range:[1,1], keep order:false 0.00
id count task operator info
IndexReader_9 0.00 root index:IndexScan_8
└─IndexScan_8 0.00 cop table:t1, index:c2, range:[1,1], keep order:false
explain select * from t1 left join t2 on t1.c2 = t2.c1 where t1.c1 > 1;
id task operator info count
Projection_6 root test.t1.c1, test.t1.c2, test.t1.c3, test.t2.c1, test.t2.c2 2481.25
└─MergeJoin_7 root left outer join, left key:test.t1.c2, right key:test.t2.c1 2481.25
├─IndexLookUp_17 root index:Selection_16, table:TableScan_15 1998.00
│ ├─Selection_16 cop gt(test.t1.c1, 1) 1998.00
│ │ └─IndexScan_14 cop table:t1, index:c2, range:[<nil>,+inf], keep order:true 1999.00
│ └─TableScan_15 cop table:t1, keep order:false 1998.00
└─IndexLookUp_21 root index:IndexScan_19, table:TableScan_20 1985.00
├─IndexScan_19 cop table:t2, index:c1, range:[<nil>,+inf], keep order:true 1985.00
└─TableScan_20 cop table:t2, keep order:false 1985.00
id count task operator info
Projection_6 2481.25 root test.t1.c1, test.t1.c2, test.t1.c3, test.t2.c1, test.t2.c2
└─MergeJoin_7 2481.25 root left outer join, left key:test.t1.c2, right key:test.t2.c1
├─IndexLookUp_17 1998.00 root
│ ├─Selection_16 1998.00 cop gt(test.t1.c1, 1)
│ │ └─IndexScan_14 1999.00 cop table:t1, index:c2, range:[<nil>,+inf], keep order:true
│ └─TableScan_15 1998.00 cop table:t1, keep order:false
└─IndexLookUp_21 1985.00 root
├─IndexScan_19 1985.00 cop table:t2, index:c1, range:[<nil>,+inf], keep order:true
└─TableScan_20 1985.00 cop table:t2, keep order:false
explain update t1 set t1.c2 = 2 where t1.c1 = 1;
id task operator info count
TableReader_5 root data:TableScan_4 1.00
└─TableScan_4 cop table:t1, range:[1,1], keep order:false 1.00
id count task operator info
TableReader_5 1.00 root data:TableScan_4
└─TableScan_4 1.00 cop table:t1, range:[1,1], keep order:false
explain delete from t1 where t1.c2 = 1;
id task operator info count
IndexLookUp_9 root index:IndexScan_7, table:TableScan_8 0.00
├─IndexScan_7 cop table:t1, index:c2, range:[1,1], keep order:false 0.00
└─TableScan_8 cop table:t1, keep order:false 0.00
id count task operator info
IndexLookUp_9 0.00 root
├─IndexScan_7 0.00 cop table:t1, index:c2, range:[1,1], keep order:false
└─TableScan_8 0.00 cop table:t1, keep order:false
explain select count(b.c2) from t1 a, t2 b where a.c1 = b.c2 group by a.c1;
id task operator info count
Projection_11 root cast(join_agg_0) 1985.00
└─IndexJoin_14 root inner join, inner:TableReader_13, outer key:b.c2, inner key:a.c1 1985.00
├─TableReader_13 root data:TableScan_12 1999.00
│ └─TableScan_12 cop table:a, range:[-inf,+inf], keep order:false 1999.00
└─HashAgg_21 root group by:col_2, funcs:count(col_0), firstrow(col_1) 1985.00
└─TableReader_22 root data:HashAgg_17 1985.00
└─HashAgg_17 cop group by:b.c2, funcs:count(b.c2), firstrow(b.c2) 1985.00
└─TableScan_20 cop table:b, range:[-inf,+inf], keep order:false 1985.00
id count task operator info
Projection_11 1985.00 root cast(join_agg_0)
└─IndexJoin_14 1985.00 root inner join, inner:TableReader_13, outer key:b.c2, inner key:a.c1
├─TableReader_13 1999.00 root data:TableScan_12
│ └─TableScan_12 1999.00 cop table:a, range:[-inf,+inf], keep order:false
└─HashAgg_21 1985.00 root group by:col_2, funcs:count(col_0), firstrow(col_1)
└─TableReader_22 1985.00 root data:HashAgg_17
└─HashAgg_17 1985.00 cop group by:b.c2, funcs:count(b.c2), firstrow(b.c2)
└─TableScan_20 1985.00 cop table:b, range:[-inf,+inf], keep order:false
explain select * from t2 order by t2.c2 limit 0, 1;
id task operator info count
TopN_7 root test.t2.c2:asc, offset:0, count:1 1.00
└─TableReader_15 root data:TopN_14 1.00
└─TopN_14 cop test.t2.c2:asc, offset:0, count:1 1.00
└─TableScan_13 cop table:t2, range:[-inf,+inf], keep order:false 1985.00
id count task operator info
TopN_7 1.00 root test.t2.c2:asc, offset:0, count:1
└─TableReader_15 1.00 root data:TopN_14
└─TopN_14 1.00 cop test.t2.c2:asc, offset:0, count:1
└─TableScan_13 1985.00 cop table:t2, range:[-inf,+inf], keep order:false
explain select * from t1 where c1 > 1 and c2 = 1 and c3 < 1;
id task operator info count
IndexLookUp_12 root index:Selection_10, table:Selection_11 0.00
├─Selection_10 cop gt(test.t1.c1, 1) 0.00
│ └─IndexScan_8 cop table:t1, index:c2, range:[1,1], keep order:false 0.00
└─Selection_11 cop lt(test.t1.c3, 1) 0.00
└─TableScan_9 cop table:t1, keep order:false 0.00
id count task operator info
IndexLookUp_12 0.00 root
├─Selection_10 0.00 cop gt(test.t1.c1, 1)
│ └─IndexScan_8 0.00 cop table:t1, index:c2, range:[1,1], keep order:false
└─Selection_11 0.00 cop lt(test.t1.c3, 1)
└─TableScan_9 0.00 cop table:t1, keep order:false
explain select * from t1 where c1 = 1 and c2 > 1;
id task operator info count
TableReader_7 root data:Selection_6 0.50
└─Selection_6 cop gt(test.t1.c2, 1) 0.50
└─TableScan_5 cop table:t1, range:[1,1], keep order:false 1.00
id count task operator info
TableReader_7 0.50 root data:Selection_6
└─Selection_6 0.50 cop gt(test.t1.c2, 1)
└─TableScan_5 1.00 cop table:t1, range:[1,1], keep order:false
explain select c1 from t1 where c1 in (select c2 from t2);
id task operator info count
Projection_10 root test.t1.c1 0.00
└─TableDual_11 root rows:0 0.00
id count task operator info
Projection_10 0.00 root test.t1.c1
└─TableDual_11 0.00 root rows:0
explain select * from information_schema.columns;
id task operator info count
MemTableScan_4 root 10000.00
id count task operator info
MemTableScan_4 10000.00 root
explain select c2 = (select c2 from t2 where t1.c1 = t2.c1 order by c1 limit 1) from t1;
id task operator info count
Projection_12 root eq(test.t1.c2, test.t2.c2) 1999.00
└─Apply_14 root left outer join, inner:Limit_22 1999.00
├─TableReader_16 root data:TableScan_15 1999.00
│ └─TableScan_15 cop table:t1, range:[-inf,+inf], keep order:false 1999.00
└─Limit_22 root offset:0, count:1 1.00
└─IndexLookUp_47 root index:IndexScan_45, table:TableScan_46 0.00
├─IndexScan_45 cop table:t2, index:c1, range: decided by [eq(test.t1.c1, test.t2.c1)], keep order:true 0.00
└─TableScan_46 cop table:t2, keep order:false 0.00
id count task operator info
Projection_12 1999.00 root eq(test.t1.c2, test.t2.c2)
└─Apply_14 1999.00 root left outer join, inner:Limit_22
├─TableReader_16 1999.00 root data:TableScan_15
│ └─TableScan_15 1999.00 cop table:t1, range:[-inf,+inf], keep order:false
└─Limit_22 1.00 root offset:0, count:1
└─IndexLookUp_47 0.00 root
├─IndexScan_45 0.00 cop table:t2, index:c1, range: decided by [eq(test.t1.c1, test.t2.c1)], keep order:true
└─TableScan_46 0.00 cop table:t2, keep order:false
explain select * from t1 order by c1 desc limit 1;
id task operator info count
Limit_10 root offset:0, count:1 1.00
└─TableReader_21 root data:Limit_20 1.00
└─Limit_20 cop offset:0, count:1 1.00
└─TableScan_18 cop table:t1, range:[-inf,+inf], keep order:true, desc 1.00
id count task operator info
Limit_10 1.00 root offset:0, count:1
└─TableReader_21 1.00 root data:Limit_20
└─Limit_20 1.00 cop offset:0, count:1
└─TableScan_18 1.00 cop table:t1, range:[-inf,+inf], keep order:true, desc
set @@session.tidb_opt_insubquery_unfold = 0;
explain select 1 in (select c2 from t2) from t1;
id task operator info count
Projection_6 root 5_aux_0 1999.00
└─HashLeftJoin_7 root left outer semi join, inner:TableReader_12 1999.00
├─TableReader_9 root data:TableScan_8 1999.00
│ └─TableScan_8 cop table:t1, range:[-inf,+inf], keep order:false 1999.00
└─TableReader_12 root data:Selection_11 0.00
└─Selection_11 cop eq(1, test.t2.c2) 0.00
└─TableScan_10 cop table:t2, range:[-inf,+inf], keep order:false 1985.00
id count task operator info
Projection_6 1999.00 root 5_aux_0
└─HashLeftJoin_7 1999.00 root left outer semi join, inner:TableReader_12
├─TableReader_9 1999.00 root data:TableScan_8
│ └─TableScan_8 1999.00 cop table:t1, range:[-inf,+inf], keep order:false
└─TableReader_12 0.00 root data:Selection_11
└─Selection_11 0.00 cop eq(1, test.t2.c2)
└─TableScan_10 1985.00 cop table:t2, range:[-inf,+inf], keep order:false
explain format="dot" select 1 in (select c2 from t2) from t1;
dot contents

Expand Down Expand Up @@ -153,10 +153,10 @@ label = "cop"
}

explain select * from index_prune WHERE a = 1010010404050976781 AND b = 26467085526790 LIMIT 1;
id task operator info count
Limit_9 root offset:0, count:1 1.00
└─IndexLookUp_15 root index:Limit_14, table:TableScan_13 1.00
├─Limit_14 cop offset:0, count:1 1.00
│ └─IndexScan_12 cop table:index_prune, index:a, b, range:[1010010404050976781 26467085526790,1010010404050976781 26467085526790], keep order:false 1.00
└─TableScan_13 cop table:index_prune, keep order:false 1.00
id count task operator info
Limit_9 1.00 root offset:0, count:1
└─IndexLookUp_15 1.00 root
├─Limit_14 1.00 cop offset:0, count:1
│ └─IndexScan_12 1.00 cop table:index_prune, index:a, b, range:[1010010404050976781 26467085526790,1010010404050976781 26467085526790], keep order:false
└─TableScan_13 1.00 cop table:index_prune, keep order:false
drop table if exists t1, t2, t3, index_prune;
Loading