Files
tidb/tests/integrationtest/r/executor/chunk_reuse.result

348 lines
10 KiB
Plaintext

drop table if exists t1, t2, t3, t4;
create table t1 (id1 int ,id2 char(10) ,id3 text,id4 blob,id5 json,id6 varchar(1000),id7 varchar(1001), PRIMARY KEY (`id1`) clustered,key id2(id2));
insert into t1 (id1,id2)values(1,1);
insert into t1 (id1,id2)values(2,2),(3,3);
create table t2 (id1 int ,id2 char(10) ,id3 text,id4 blob,id5 json,id6 varchar(1000),PRIMARY KEY (`id1`) clustered,key id2(id2));
insert into t2 (id1,id2)values(1,1);
insert into t2 (id1,id2)values(2,2),(3,3);
explain format='plan_tree' select t1.id1 from t1,t2 where t1.id2 > '1' and t2.id2 > '1';
id task access object operator info
HashJoin root CARTESIAN inner join
├─IndexReader(Build) root index:IndexRangeScan
│ └─IndexRangeScan cop[tikv] table:t2, index:id2(id2) range:("1",+inf], keep order:false, stats:pseudo
└─IndexReader(Probe) root index:IndexRangeScan
└─IndexRangeScan cop[tikv] table:t1, index:id2(id2) range:("1",+inf], keep order:false, stats:pseudo
select t1.id1 from t1,t2 where t1.id2 > '1' and t2.id2 > '1';
id1
2
2
3
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1,t1.id2 from t1,t2 where t1.id2 > '1' and t2.id2 > '1' ;
id1 id2
2 2
2 2
3 3
3 3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1,t1.id3 from t1,t2 where t1.id2 > '1' and t2.id2 > '1' ;
id1 id3
2 NULL
2 NULL
3 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id4 from t1,t2 where t1.id2 > '1' and t2.id2 > '1' ;
id1 id4
2 NULL
2 NULL
3 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id5 from t1,t2 where t1.id2 > '1' and t2.id2 > '1' ;
id1 id5
2 NULL
2 NULL
3 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id6 from t1,t2 where t1.id2 > '1' and t2.id2 > '1' ;
id1 id6
2 NULL
2 NULL
3 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1,t1.id7 from t1,t2 where t1.id2 > '1' and t2.id2 > '1' ;
id1 id7
2 NULL
2 NULL
3 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
explain format='plan_tree' select t1.id1 from t1,t2 where t1.id2 > '1'and t1.id1 = t2.id1;
id task access object operator info
MergeJoin root inner join, left key:executor__chunk_reuse.t1.id1, right key:executor__chunk_reuse.t2.id1
├─TableReader(Build) root data:TableFullScan
│ └─TableFullScan cop[tikv] table:t2 keep order:true, stats:pseudo
└─TableReader(Probe) root data:Selection
└─Selection cop[tikv] gt(executor__chunk_reuse.t1.id2, "1")
└─TableFullScan cop[tikv] table:t1 keep order:true, stats:pseudo
select t1.id1 from t1,t2 where t1.id2 > '1' and t1.id1 = t2.id1;
id1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1 ,t1.id3 from t1,t2 where t1.id2 > '1' and t1.id1 = t2.id1;
id1 id3
2 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1 ,t1.id4 from t1,t2 where t1.id2 > '1' and t1.id1 = t2.id1;
id1 id4
2 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1 ,t1.id5 from t1,t2 where t1.id2 > '1' and t1.id1 = t2.id1;
id1 id5
2 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1 ,t1.id6 from t1,t2 where t1.id2 > '1' and t1.id1 = t2.id1;
id1 id6
2 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1 ,t1.id7 from t1,t2 where t1.id2 > '1' and t1.id1 = t2.id1;
id1 id7
2 NULL
3 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
explain format='plan_tree' select t1.id1 from t1,t2 where t1.id1 = 1 and t2.id1 = 1;
id task access object operator info
HashJoin root CARTESIAN inner join
├─Point_Get(Build) root table:t2 handle:1
└─Point_Get(Probe) root table:t1 handle:1
select t1.id1 from t1,t2 where t1.id1 = 1 and t2.id1 = 1;
id1
1
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1,t1.id2 from t1,t2 where t1.id1 = 1 and t2.id1 = 1 ;
id1 id2
1 1
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1,t1.id3 from t1,t2 where t1.id1 = 1 and t2.id1 = 1 ;
id1 id3
1 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id4 from t1,t2 where t1.id1 = 1 and t2.id1 = 1 ;
id1 id4
1 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id5 from t1,t2 where t1.id1 = 1 and t2.id1 = 1 ;
id1 id5
1 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id6 from t1,t2 where t1.id1 = 1 and t2.id1 = 1 ;
id1 id6
1 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1,t1.id7 from t1,t2 where t1.id1 = 1 and t2.id1 = 1 ;
id1 id7
1 NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
explain format='plan_tree' select t1.id1,t1.id6 ,t2.id6 from t1 join t2 on t1.id2 = '1' and t2.id2 = '2' ;
id task access object operator info
HashJoin root CARTESIAN inner join
├─IndexLookUp(Build) root
│ ├─IndexRangeScan(Build) cop[tikv] table:t2, index:id2(id2) range:["2","2"], keep order:false, stats:pseudo
│ └─TableRowIDScan(Probe) cop[tikv] table:t2 keep order:false, stats:pseudo
└─IndexLookUp(Probe) root
├─IndexRangeScan(Build) cop[tikv] table:t1, index:id2(id2) range:["1","1"], keep order:false, stats:pseudo
└─TableRowIDScan(Probe) cop[tikv] table:t1 keep order:false, stats:pseudo
select t1.id1,t1.id6 ,t2.id6 from t1 join t2 on t1.id2 = '1' and t2.id2 = '2';
id1 id6 id6
1 NULL NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select t1.id1,t1.id3 ,t2.id6 from t1 join t2 on t1.id2 = '1' and t2.id2 = '2';
id1 id3 id6
1 NULL NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id4 ,t2.id6 from t1 join t2 on t1.id2 = '1' and t2.id2 = '2';
id1 id4 id6
1 NULL NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id5 ,t2.id6 from t1 join t2 on t1.id2 = '1' and t2.id2 = '2';
id1 id5 id6
1 NULL NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id7 ,t2.id6 from t1 join t2 on t1.id2 = '1' and t2.id2 = '2';
id1 id7 id6
1 NULL NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select t1.id1,t1.id6 ,t2.id3 from t1 join t2 on t1.id2 = '1' and t2.id2 = '2';
id1 id6 id3
1 NULL NULL
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
create table t3 (id1 int ,id2 char(10),id8 int ,id3 text,id4 blob,id5 json,id6 varchar(1000),id7 varchar(1001), PRIMARY KEY (`id1`) clustered,key id2(id2),key id8(id8));
insert into t3 (id1,id2,id8)values(1,1,1),(2,2,2),(3,3,3);
explain format='plan_tree' select id1 from t3 where id2 > '3' or id8 < 10 union (select id1 from t3 where id2 > '4' or id8 < 7);
id task access object operator info
HashAgg root group by:Column, funcs:firstrow(Column)->Column
└─Union root
├─Projection root executor__chunk_reuse.t3.id1->Column
│ └─IndexMerge root type: union
│ ├─IndexRangeScan(Build) cop[tikv] table:t3, index:id2(id2) range:("3",+inf], keep order:false, stats:pseudo
│ ├─IndexRangeScan(Build) cop[tikv] table:t3, index:id8(id8) range:[-inf,10), keep order:false, stats:pseudo
│ └─TableRowIDScan(Probe) cop[tikv] table:t3 keep order:false, stats:pseudo
└─Projection root executor__chunk_reuse.t3.id1->Column
└─IndexMerge root type: union
├─IndexRangeScan(Build) cop[tikv] table:t3, index:id2(id2) range:("4",+inf], keep order:false, stats:pseudo
├─IndexRangeScan(Build) cop[tikv] table:t3, index:id8(id8) range:[-inf,7), keep order:false, stats:pseudo
└─TableRowIDScan(Probe) cop[tikv] table:t3 keep order:false, stats:pseudo
select id1 from t3 where id2 > '3' or id8 < 10 union (select id1 from t3 where id2 > '4' or id8 < 7);
id1
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select id1 from t3 where id2 > '3' or id8 < 10 union (select id3 from t3 where id2 > '4' or id8 < 7);
id1
NULL
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select id1 from t3 where id2 > '3' or id8 < 10 union (select id4 from t3 where id2 > '4' or id8 < 7);
id1
NULL
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select id1 from t3 where id2 > '3' or id8 < 10 union (select id5 from t3 where id2 > '4' or id8 < 7);
id1
NULL
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select id1 from t3 where id2 > '3' or id8 < 10 union (select id6 from t3 where id2 > '4' or id8 < 7);
id1
NULL
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select id1 from t3 where id2 > '3' or id8 < 10 union (select id7 from t3 where id2 > '4' or id8 < 7);
id1
NULL
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
set tidb_enable_clustered_index = OFF;
create table t4 (id1 int ,id2 char(10),id8 int ,id3 text,id4 blob,id5 json,id6 varchar(1000),id7 varchar(1001), PRIMARY KEY (`id1`),key id2(id2),key id8(id8,id2));
insert into t4 (id1,id2,id8)values(1,1,1),(2,2,2),(3,3,3);
explain format='plan_tree' select id2 from t4 where id2 > '3' union (select id2 from t4 where id2 > '4');
id task access object operator info
HashAgg root group by:Column, funcs:firstrow(Column)->Column
└─Union root
├─IndexReader root index:IndexRangeScan
│ └─IndexRangeScan cop[tikv] table:t4, index:id2(id2) range:("3",+inf], keep order:false, stats:pseudo
└─IndexReader root index:IndexRangeScan
└─IndexRangeScan cop[tikv] table:t4, index:id2(id2) range:("4",+inf], keep order:false, stats:pseudo
select id2 from t4 where id2 > '3' union (select id2 from t4 where id2 > '4');
id2
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select id1 from t3 where id2 > '3' or id8 < 10 union (select CHAR_LENGTH(id3) from t3 where id2 > '4' or id8 < 7);
id1
NULL
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select id1 from t3 where id2 > '3' or id8 < 10 union (select CHAR_LENGTH(id2) from t3 where id2 > '4' or id8 < 7);
id1
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1
select id1 from t3 where id2 > '3' or id8 < 10 union (select id2 from t3 where id2 > '4' or id8 < 7 and id3 is null);
id1
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
select id1 from t3 where id2 > '3' or id8 < 10 union (select id2 from t3 where id2 > '4' or id8 < 7 and char_length(id3) > 0);
id1
1
2
3
select @@last_sql_use_alloc;
@@last_sql_use_alloc
0
set tidb_enable_clustered_index = default;
drop table if exists t;
create table t(id int primary key, col int);
insert into t values (1, 1);
select * from t where id = 1;
id col
1 1
select @@last_sql_use_alloc;
@@last_sql_use_alloc
1