Skip to content

Commit

Permalink
plan: refine explain result format (#7011)
Browse files Browse the repository at this point in the history
  • Loading branch information
coocood authored and winoros committed Jul 9, 2018
1 parent 5bdf34b commit 372a6fc
Show file tree
Hide file tree
Showing 14 changed files with 1,038 additions and 575 deletions.
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

0 comments on commit 372a6fc

Please sign in to comment.