1251 lines
44 KiB
Plaintext
1251 lines
44 KiB
Plaintext
drop table if exists tp, t;
|
|
set tidb_partition_prune_mode='dynamic';
|
|
create table tp(a datetime, b int) partition by range columns (a) (partition p0 values less than("2012-12-10 00:00:00"), partition p1 values less than("2022-12-30 00:00:00"), partition p2 values less than("2025-12-12 00:00:00"));
|
|
create table t(a datetime, b int) partition by range columns (a) (partition p0 values less than("2012-12-10 00:00:00"), partition p1 values less than("2022-12-30 00:00:00"), partition p2 values less than("2025-12-12 00:00:00"));
|
|
insert into tp values("2015-09-09 00:00:00", 1), ("2020-08-08 19:00:01", 2), ("2024-01-01 01:01:01", 3);
|
|
insert into t values("2015-09-09 00:00:00", 1), ("2020-08-08 19:00:01", 2), ("2024-01-01 01:01:01", 3);
|
|
analyze table tp;
|
|
analyze table t;
|
|
explain format='brief' select * from tp where a != '2024-01-01 01:01:01';
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:all data:Selection
|
|
└─Selection 2.00 cop[tikv] ne(executor__partition__partition_with_expression.tp.a, 2024-01-01 01:01:01.000000)
|
|
└─TableFullScan 3.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a != '2024-01-01 01:01:01';
|
|
a b
|
|
2015-09-09 00:00:00 1
|
|
2020-08-08 19:00:01 2
|
|
select * from t where a != '2024-01-01 01:01:01';
|
|
a b
|
|
2015-09-09 00:00:00 1
|
|
2020-08-08 19:00:01 2
|
|
explain format='brief' select * from tp where a != '2024-01-01 01:01:01' and a > '2015-09-09 00:00:00';
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p1,p2 data:Selection
|
|
└─Selection 1.00 cop[tikv] gt(executor__partition__partition_with_expression.tp.a, 2015-09-09 00:00:00.000000), ne(executor__partition__partition_with_expression.tp.a, 2024-01-01 01:01:01.000000)
|
|
└─TableFullScan 3.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a != '2024-01-01 01:01:01' and a > '2015-09-09 00:00:00';
|
|
a b
|
|
2020-08-08 19:00:01 2
|
|
select * from t where a != '2024-01-01 01:01:01' and a > '2015-09-09 00:00:00';
|
|
a b
|
|
2020-08-08 19:00:01 2
|
|
set tidb_partition_prune_mode=default;
|
|
drop table if exists tp, t;
|
|
set tidb_partition_prune_mode='dynamic';
|
|
create table tp(a datetime, b int) partition by range(weekday(a)) (partition p0 values less than(3), partition p1 values less than(5), partition p2 values less than(8));
|
|
create table t(a datetime, b int);
|
|
insert into tp values("2020-08-17 00:00:00", 1), ("2020-08-18 00:00:00", 2), ("2020-08-19 00:00:00", 4), ("2020-08-20 00:00:00", 5), ("2020-08-21 00:00:00", 6), ("2020-08-22 00:00:00", 0);
|
|
insert into t values("2020-08-17 00:00:00", 1), ("2020-08-18 00:00:00", 2), ("2020-08-19 00:00:00", 4), ("2020-08-20 00:00:00", 5), ("2020-08-21 00:00:00", 6), ("2020-08-22 00:00:00", 0);
|
|
analyze table tp;
|
|
analyze table t;
|
|
explain format='brief' select * from tp where a = '2020-08-17 00:00:00';
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p0 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.tp.a, 2020-08-17 00:00:00.000000)
|
|
└─TableFullScan 6.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a = '2020-08-17 00:00:00';
|
|
a b
|
|
2020-08-17 00:00:00 1
|
|
select * from t where a = '2020-08-17 00:00:00';
|
|
a b
|
|
2020-08-17 00:00:00 1
|
|
explain format='brief' select * from tp where a= '2020-08-20 00:00:00' and a < '2020-08-22 00:00:00';
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p1 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.tp.a, 2020-08-20 00:00:00.000000)
|
|
└─TableFullScan 6.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a= '2020-08-20 00:00:00' and a < '2020-08-22 00:00:00';
|
|
a b
|
|
2020-08-20 00:00:00 5
|
|
select * from t where a= '2020-08-20 00:00:00' and a < '2020-08-22 00:00:00';
|
|
a b
|
|
2020-08-20 00:00:00 5
|
|
explain format='brief' select * from tp where a < '2020-08-19 00:00:00';
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:all data:Selection
|
|
└─Selection 2.00 cop[tikv] lt(executor__partition__partition_with_expression.tp.a, 2020-08-19 00:00:00.000000)
|
|
└─TableFullScan 6.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a < '2020-08-19 00:00:00';
|
|
a b
|
|
2020-08-17 00:00:00 1
|
|
2020-08-18 00:00:00 2
|
|
select * from t where a < '2020-08-19 00:00:00';
|
|
a b
|
|
2020-08-17 00:00:00 1
|
|
2020-08-18 00:00:00 2
|
|
set tidb_partition_prune_mode=default;
|
|
drop table if exists tp, t;
|
|
set tidb_partition_prune_mode='dynamic';
|
|
create table tp(a timestamp, b int) partition by range(floor(unix_timestamp(a))) (partition p0 values less than(1580670000), partition p1 values less than(1597622400), partition p2 values less than(1629158400));
|
|
create table t(a timestamp, b int);
|
|
insert into tp values('2020-01-01 19:00:00', 1),('2020-08-15 00:00:00', -1), ('2020-08-18 05:00:01', 2), ('2020-10-01 14:13:15', 3);
|
|
insert into t values('2020-01-01 19:00:00', 1),('2020-08-15 00:00:00', -1), ('2020-08-18 05:00:01', 2), ('2020-10-01 14:13:15', 3);
|
|
analyze table tp;
|
|
analyze table t;
|
|
explain select * from tp where a > '2020-09-11 00:00:00';
|
|
id estRows task access object operator info
|
|
TableReader_7 1.00 root partition:p2 data:Selection_6
|
|
└─Selection_6 1.00 cop[tikv] gt(executor__partition__partition_with_expression.tp.a, 2020-09-11 00:00:00.000000)
|
|
└─TableFullScan_5 4.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a > '2020-09-11 00:00:00';
|
|
a b
|
|
2020-10-01 14:13:15 3
|
|
select * from t where a > '2020-09-11 00:00:00';
|
|
a b
|
|
2020-10-01 14:13:15 3
|
|
explain select * from tp where a < '2020-07-07 01:00:00';
|
|
id estRows task access object operator info
|
|
TableReader_7 1.00 root partition:p0,p1 data:Selection_6
|
|
└─Selection_6 1.00 cop[tikv] lt(executor__partition__partition_with_expression.tp.a, 2020-07-07 01:00:00.000000)
|
|
└─TableFullScan_5 4.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a < '2020-07-07 01:00:00';
|
|
a b
|
|
2020-01-01 19:00:00 1
|
|
select * from t where a < '2020-07-07 01:00:00';
|
|
a b
|
|
2020-01-01 19:00:00 1
|
|
set tidb_partition_prune_mode=default;
|
|
drop table if exists tp, t;
|
|
set tidb_partition_prune_mode='dynamic';
|
|
create table tp(a timestamp, b int) partition by range(unix_timestamp(a)) (partition p0 values less than(1580670000), partition p1 values less than(1597622400), partition p2 values less than(1629158400));
|
|
create table t(a timestamp, b int);
|
|
insert into tp values('2020-01-01 19:00:00', 1),('2020-08-15 00:00:00', -1), ('2020-08-18 05:00:01', 2), ('2020-10-01 14:13:15', 3);
|
|
insert into t values('2020-01-01 19:00:00', 1),('2020-08-15 00:00:00', -1), ('2020-08-18 05:00:01', 2), ('2020-10-01 14:13:15', 3);
|
|
analyze table tp;
|
|
analyze table t;
|
|
explain select * from tp where a > '2020-09-11 00:00:00';
|
|
id estRows task access object operator info
|
|
TableReader_7 1.00 root partition:p2 data:Selection_6
|
|
└─Selection_6 1.00 cop[tikv] gt(executor__partition__partition_with_expression.tp.a, 2020-09-11 00:00:00.000000)
|
|
└─TableFullScan_5 4.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a > '2020-09-11 00:00:00';
|
|
a b
|
|
2020-10-01 14:13:15 3
|
|
select * from t where a > '2020-09-11 00:00:00';
|
|
a b
|
|
2020-10-01 14:13:15 3
|
|
explain select * from tp where a < '2020-07-07 01:00:00';
|
|
id estRows task access object operator info
|
|
TableReader_7 1.00 root partition:p0,p1 data:Selection_6
|
|
└─Selection_6 1.00 cop[tikv] lt(executor__partition__partition_with_expression.tp.a, 2020-07-07 01:00:00.000000)
|
|
└─TableFullScan_5 4.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a < '2020-07-07 01:00:00';
|
|
a b
|
|
2020-01-01 19:00:00 1
|
|
select * from t where a < '2020-07-07 01:00:00';
|
|
a b
|
|
2020-01-01 19:00:00 1
|
|
set tidb_partition_prune_mode=default;
|
|
drop table if exists tp, t;
|
|
set tidb_partition_prune_mode='dynamic';
|
|
create table tp(a datetime, b int) partition by range columns(a) (partition p0 values less than('2020-02-02 00:00:00'), partition p1 values less than('2020-09-01 00:00:00'), partition p2 values less than('2020-12-20 00:00:00'));
|
|
create table t(a datetime, b int);
|
|
insert into tp values('2020-01-01 12:00:00', 1), ('2020-08-22 10:00:00', 2), ('2020-09-09 11:00:00', 3), ('2020-10-01 00:00:00', 4);
|
|
insert into t values('2020-01-01 12:00:00', 1), ('2020-08-22 10:00:00', 2), ('2020-09-09 11:00:00', 3), ('2020-10-01 00:00:00', 4);
|
|
analyze table tp;
|
|
analyze table t;
|
|
explain select * from tp where a < '2020-09-01 00:00:00';
|
|
id estRows task access object operator info
|
|
TableReader_7 2.00 root partition:p0,p1 data:Selection_6
|
|
└─Selection_6 2.00 cop[tikv] lt(executor__partition__partition_with_expression.tp.a, 2020-09-01 00:00:00.000000)
|
|
└─TableFullScan_5 4.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a < '2020-09-01 00:00:00';
|
|
a b
|
|
2020-01-01 12:00:00 1
|
|
2020-08-22 10:00:00 2
|
|
select * from t where a < '2020-09-01 00:00:00';
|
|
a b
|
|
2020-01-01 12:00:00 1
|
|
2020-08-22 10:00:00 2
|
|
explain select * from tp where a > '2020-07-07 01:00:00';
|
|
id estRows task access object operator info
|
|
TableReader_7 3.00 root partition:p1,p2 data:Selection_6
|
|
└─Selection_6 3.00 cop[tikv] gt(executor__partition__partition_with_expression.tp.a, 2020-07-07 01:00:00.000000)
|
|
└─TableFullScan_5 4.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a > '2020-07-07 01:00:00';
|
|
a b
|
|
2020-08-22 10:00:00 2
|
|
2020-09-09 11:00:00 3
|
|
2020-10-01 00:00:00 4
|
|
select * from t where a > '2020-07-07 01:00:00';
|
|
a b
|
|
2020-08-22 10:00:00 2
|
|
2020-09-09 11:00:00 3
|
|
2020-10-01 00:00:00 4
|
|
set tidb_partition_prune_mode=default;
|
|
drop table if exists tp, t;
|
|
set tidb_partition_prune_mode='dynamic';
|
|
create table tp(a varchar(255), b int) partition by range columns(a) (partition p0 values less than('ddd'), partition p1 values less than('ggggg'), partition p2 values less than('mmmmmm'));
|
|
create table t(a varchar(255), b int);
|
|
insert into tp values('aaa', 1), ('bbbb', 2), ('ccc', 3), ('dfg', 4), ('kkkk', 5), ('10', 6);
|
|
insert into t values('aaa', 1), ('bbbb', 2), ('ccc', 3), ('dfg', 4), ('kkkk', 5), ('10', 6);
|
|
analyze table tp;
|
|
analyze table t;
|
|
explain select * from tp where a < '10';
|
|
id estRows task access object operator info
|
|
TableReader_7 0.00 root partition:p0 data:Selection_6
|
|
└─Selection_6 0.00 cop[tikv] lt(executor__partition__partition_with_expression.tp.a, "10")
|
|
└─TableFullScan_5 6.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a < '10';
|
|
a b
|
|
select * from t where a < '10';
|
|
a b
|
|
explain select * from tp where a > 0;
|
|
id estRows task access object operator info
|
|
TableReader_7 4.80 root partition:all data:Selection_6
|
|
└─Selection_6 4.80 cop[tikv] gt(cast(executor__partition__partition_with_expression.tp.a, double BINARY), 0)
|
|
└─TableFullScan_5 6.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a > 0;
|
|
a b
|
|
10 6
|
|
select * from t where a > 0;
|
|
a b
|
|
10 6
|
|
explain select * from tp where a < 0;
|
|
id estRows task access object operator info
|
|
TableReader_7 4.80 root partition:all data:Selection_6
|
|
└─Selection_6 4.80 cop[tikv] lt(cast(executor__partition__partition_with_expression.tp.a, double BINARY), 0)
|
|
└─TableFullScan_5 6.00 cop[tikv] table:tp keep order:false
|
|
select * from tp where a < 0;
|
|
a b
|
|
select * from t where a < 0;
|
|
a b
|
|
set tidb_partition_prune_mode=default;
|
|
drop table if exists trange, thash, t;
|
|
create table trange(a int, b int) partition by range(a) (partition p0 values less than(3), partition p1 values less than (5), partition p2 values less than(11));
|
|
create table thash(a int, b int) partition by hash(a) partitions 4;
|
|
create table t(a int, b int);
|
|
insert into trange values(1, NULL), (1, NULL), (1, 1), (2, 1), (3, 2), (4, 3), (5, 5), (6, 7), (7, 7), (7, 7), (10, NULL), (NULL, NULL), (NULL, 1);
|
|
insert into thash values(1, NULL), (1, NULL), (1, 1), (2, 1), (3, 2), (4, 3), (5, 5), (6, 7), (7, 7), (7, 7), (10, NULL), (NULL, NULL), (NULL, 1);
|
|
insert into t values(1, NULL), (1, NULL), (1, 1), (2, 1), (3, 2), (4, 3), (5, 5), (6, 7), (7, 7), (7, 7), (10, NULL), (NULL, NULL), (NULL, 1);
|
|
set session tidb_partition_prune_mode='dynamic';
|
|
analyze table trange;
|
|
analyze table thash;
|
|
analyze table t;
|
|
SELECT * from t where a = 2;
|
|
a b
|
|
2 1
|
|
explain format='brief' select * from trange where a = 2;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p0 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 2;
|
|
a b
|
|
2 1
|
|
explain format='brief' select * from thash where a = 2;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p2 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 2;
|
|
a b
|
|
2 1
|
|
SELECT * from t where a = 4 or a = 1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
4 3
|
|
explain format='brief' select * from trange where a = 4 or a = 1;
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:p0,p1 data:Selection
|
|
└─Selection 4.00 cop[tikv] or(eq(executor__partition__partition_with_expression.trange.a, 4), eq(executor__partition__partition_with_expression.trange.a, 1))
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 4 or a = 1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
4 3
|
|
explain format='brief' select * from thash where a = 4 or a = 1;
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:p0,p1 data:Selection
|
|
└─Selection 4.00 cop[tikv] or(eq(executor__partition__partition_with_expression.thash.a, 4), eq(executor__partition__partition_with_expression.thash.a, 1))
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 4 or a = 1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
4 3
|
|
SELECT * from t where a = -1;
|
|
a b
|
|
explain format='brief' select * from trange where a = -1;
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:p0 data:Selection
|
|
└─Selection 0.00 cop[tikv] eq(executor__partition__partition_with_expression.trange.a, -1)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = -1;
|
|
a b
|
|
explain format='brief' select * from thash where a = -1;
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:p1 data:Selection
|
|
└─Selection 0.00 cop[tikv] eq(executor__partition__partition_with_expression.thash.a, -1)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = -1;
|
|
a b
|
|
SELECT * from t where a is NULL;
|
|
a b
|
|
NULL NULL
|
|
NULL 1
|
|
explain format='brief' select * from trange where a is NULL;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0 data:Selection
|
|
└─Selection 2.00 cop[tikv] isnull(executor__partition__partition_with_expression.trange.a)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a is NULL;
|
|
a b
|
|
NULL NULL
|
|
NULL 1
|
|
explain format='brief' select * from thash where a is NULL;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0 data:Selection
|
|
└─Selection 2.00 cop[tikv] isnull(executor__partition__partition_with_expression.thash.a)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a is NULL;
|
|
a b
|
|
NULL NULL
|
|
NULL 1
|
|
SELECT * from t where b is NULL;
|
|
a b
|
|
NULL NULL
|
|
1 NULL
|
|
1 NULL
|
|
10 NULL
|
|
explain format='brief' select * from trange where b is NULL;
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:all data:Selection
|
|
└─Selection 4.00 cop[tikv] isnull(executor__partition__partition_with_expression.trange.b)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where b is NULL;
|
|
a b
|
|
NULL NULL
|
|
1 NULL
|
|
1 NULL
|
|
10 NULL
|
|
explain format='brief' select * from thash where b is NULL;
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:all data:Selection
|
|
└─Selection 4.00 cop[tikv] isnull(executor__partition__partition_with_expression.thash.b)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where b is NULL;
|
|
a b
|
|
NULL NULL
|
|
1 NULL
|
|
1 NULL
|
|
10 NULL
|
|
SELECT * from t where a > -1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a > -1;
|
|
id estRows task access object operator info
|
|
TableReader 11.00 root partition:all data:Selection
|
|
└─Selection 11.00 cop[tikv] gt(executor__partition__partition_with_expression.trange.a, -1)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a > -1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a > -1;
|
|
id estRows task access object operator info
|
|
TableReader 11.00 root partition:all data:Selection
|
|
└─Selection 11.00 cop[tikv] gt(executor__partition__partition_with_expression.thash.a, -1)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a > -1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a >= 4 and a <= 5;
|
|
a b
|
|
4 3
|
|
5 5
|
|
explain format='brief' select * from trange where a >= 4 and a <= 5;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p1,p2 data:Selection
|
|
└─Selection 2.00 cop[tikv] ge(executor__partition__partition_with_expression.trange.a, 4), le(executor__partition__partition_with_expression.trange.a, 5)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a >= 4 and a <= 5;
|
|
a b
|
|
4 3
|
|
5 5
|
|
explain format='brief' select * from thash where a >= 4 and a <= 5;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0,p1 data:Selection
|
|
└─Selection 2.00 cop[tikv] ge(executor__partition__partition_with_expression.thash.a, 4), le(executor__partition__partition_with_expression.thash.a, 5)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a >= 4 and a <= 5;
|
|
a b
|
|
4 3
|
|
5 5
|
|
SELECT * from t where a > 10;
|
|
a b
|
|
explain format='brief' select * from trange where a > 10;
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:dual data:Selection
|
|
└─Selection 0.00 cop[tikv] gt(executor__partition__partition_with_expression.trange.a, 10)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a > 10;
|
|
a b
|
|
explain format='brief' select * from thash where a > 10;
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:all data:Selection
|
|
└─Selection 0.00 cop[tikv] gt(executor__partition__partition_with_expression.thash.a, 10)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a > 10;
|
|
a b
|
|
SELECT * from t where a >=2 and a <= 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from trange where a >=2 and a <= 3;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0,p1 data:Selection
|
|
└─Selection 2.00 cop[tikv] ge(executor__partition__partition_with_expression.trange.a, 2), le(executor__partition__partition_with_expression.trange.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a >=2 and a <= 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from thash where a >=2 and a <= 3;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p2,p3 data:Selection
|
|
└─Selection 2.00 cop[tikv] ge(executor__partition__partition_with_expression.thash.a, 2), le(executor__partition__partition_with_expression.thash.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a >=2 and a <= 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
SELECT * from t where a between 2 and 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from trange where a between 2 and 3;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0,p1 data:Selection
|
|
└─Selection 2.00 cop[tikv] ge(executor__partition__partition_with_expression.trange.a, 2), le(executor__partition__partition_with_expression.trange.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a between 2 and 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from thash where a between 2 and 3;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p2,p3 data:Selection
|
|
└─Selection 2.00 cop[tikv] ge(executor__partition__partition_with_expression.thash.a, 2), le(executor__partition__partition_with_expression.thash.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a between 2 and 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
SELECT * from t where a < 2;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
explain format='brief' select * from trange where a < 2;
|
|
id estRows task access object operator info
|
|
TableReader 3.00 root partition:p0 data:Selection
|
|
└─Selection 3.00 cop[tikv] lt(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a < 2;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
explain format='brief' select * from thash where a < 2;
|
|
id estRows task access object operator info
|
|
TableReader 3.00 root partition:all data:Selection
|
|
└─Selection 3.00 cop[tikv] lt(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a < 2;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
SELECT * from t where a <= 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from trange where a <= 3;
|
|
id estRows task access object operator info
|
|
TableReader 5.00 root partition:p0,p1 data:Selection
|
|
└─Selection 5.00 cop[tikv] le(executor__partition__partition_with_expression.trange.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a <= 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from thash where a <= 3;
|
|
id estRows task access object operator info
|
|
TableReader 5.00 root partition:all data:Selection
|
|
└─Selection 5.00 cop[tikv] le(executor__partition__partition_with_expression.thash.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a <= 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
3 2
|
|
SELECT * from t where a in (2, 3);
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from trange where a in (2, 3);
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0,p1 data:Selection
|
|
└─Selection 2.00 cop[tikv] in(executor__partition__partition_with_expression.trange.a, 2, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a in (2, 3);
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from thash where a in (2, 3);
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p2,p3 data:Selection
|
|
└─Selection 2.00 cop[tikv] in(executor__partition__partition_with_expression.thash.a, 2, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a in (2, 3);
|
|
a b
|
|
2 1
|
|
3 2
|
|
SELECT * from t where a in (1, 5);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
5 5
|
|
explain format='brief' select * from trange where a in (1, 5);
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:p0,p2 data:Selection
|
|
└─Selection 4.00 cop[tikv] in(executor__partition__partition_with_expression.trange.a, 1, 5)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a in (1, 5);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
5 5
|
|
explain format='brief' select * from thash where a in (1, 5);
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:p1 data:Selection
|
|
└─Selection 4.00 cop[tikv] in(executor__partition__partition_with_expression.thash.a, 1, 5)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a in (1, 5);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
5 5
|
|
SELECT * from t where a not in (1, 5);
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a not in (1, 5);
|
|
id estRows task access object operator info
|
|
TableReader 7.00 root partition:all data:Selection
|
|
└─Selection 7.00 cop[tikv] not(in(executor__partition__partition_with_expression.trange.a, 1, 5))
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a not in (1, 5);
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a not in (1, 5);
|
|
id estRows task access object operator info
|
|
TableReader 7.00 root partition:all data:Selection
|
|
└─Selection 7.00 cop[tikv] not(in(executor__partition__partition_with_expression.thash.a, 1, 5))
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a not in (1, 5);
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a = 2 and a = 2;
|
|
a b
|
|
2 1
|
|
explain format='brief' select * from trange where a = 2 and a = 2;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p0 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 2 and a = 2;
|
|
a b
|
|
2 1
|
|
explain format='brief' select * from thash where a = 2 and a = 2;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p2 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 2 and a = 2;
|
|
a b
|
|
2 1
|
|
SELECT * from t where a = 2 and a = 3;
|
|
a b
|
|
explain format='brief' select * from trange where a = 2 and a = 3;
|
|
id estRows task access object operator info
|
|
TableDual 0.00 root rows:0
|
|
SELECT * from trange where a = 2 and a = 3;
|
|
a b
|
|
explain format='brief' select * from thash where a = 2 and a = 3;
|
|
id estRows task access object operator info
|
|
TableDual 0.00 root rows:0
|
|
SELECT * from thash where a = 2 and a = 3;
|
|
a b
|
|
SELECT * from t where a < 2 and a > 0;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
explain format='brief' select * from trange where a < 2 and a > 0;
|
|
id estRows task access object operator info
|
|
TableReader 3.00 root partition:p0 data:Selection
|
|
└─Selection 3.00 cop[tikv] gt(executor__partition__partition_with_expression.trange.a, 0), lt(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a < 2 and a > 0;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
explain format='brief' select * from thash where a < 2 and a > 0;
|
|
id estRows task access object operator info
|
|
TableReader 3.00 root partition:p1 data:Selection
|
|
└─Selection 3.00 cop[tikv] gt(executor__partition__partition_with_expression.thash.a, 0), lt(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a < 2 and a > 0;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
SELECT * from t where a < 2 and a < 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
explain format='brief' select * from trange where a < 2 and a < 3;
|
|
id estRows task access object operator info
|
|
TableReader 3.00 root partition:p0 data:Selection
|
|
└─Selection 3.00 cop[tikv] lt(executor__partition__partition_with_expression.trange.a, 2), lt(executor__partition__partition_with_expression.trange.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a < 2 and a < 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
explain format='brief' select * from thash where a < 2 and a < 3;
|
|
id estRows task access object operator info
|
|
TableReader 3.00 root partition:all data:Selection
|
|
└─Selection 3.00 cop[tikv] lt(executor__partition__partition_with_expression.thash.a, 2), lt(executor__partition__partition_with_expression.thash.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a < 2 and a < 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
SELECT * from t where a > 1 and a > 2;
|
|
a b
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a > 1 and a > 2;
|
|
id estRows task access object operator info
|
|
TableReader 7.00 root partition:p1,p2 data:Selection
|
|
└─Selection 7.00 cop[tikv] gt(executor__partition__partition_with_expression.trange.a, 1), gt(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a > 1 and a > 2;
|
|
a b
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a > 1 and a > 2;
|
|
id estRows task access object operator info
|
|
TableReader 7.00 root partition:all data:Selection
|
|
└─Selection 7.00 cop[tikv] gt(executor__partition__partition_with_expression.thash.a, 1), gt(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a > 1 and a > 2;
|
|
a b
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a = 2 or a = 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from trange where a = 2 or a = 3;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0,p1 data:Selection
|
|
└─Selection 2.00 cop[tikv] or(eq(executor__partition__partition_with_expression.trange.a, 2), eq(executor__partition__partition_with_expression.trange.a, 3))
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 2 or a = 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from thash where a = 2 or a = 3;
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p2,p3 data:Selection
|
|
└─Selection 2.00 cop[tikv] or(eq(executor__partition__partition_with_expression.thash.a, 2), eq(executor__partition__partition_with_expression.thash.a, 3))
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 2 or a = 3;
|
|
a b
|
|
2 1
|
|
3 2
|
|
SELECT * from t where a = 2 or a in (3);
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from trange where a = 2 or a in (3);
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p0,p1 data:Selection
|
|
└─Selection 2.00 cop[tikv] or(eq(executor__partition__partition_with_expression.trange.a, 2), eq(executor__partition__partition_with_expression.trange.a, 3))
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 2 or a in (3);
|
|
a b
|
|
2 1
|
|
3 2
|
|
explain format='brief' select * from thash where a = 2 or a in (3);
|
|
id estRows task access object operator info
|
|
TableReader 2.00 root partition:p2,p3 data:Selection
|
|
└─Selection 2.00 cop[tikv] or(eq(executor__partition__partition_with_expression.thash.a, 2), eq(executor__partition__partition_with_expression.thash.a, 3))
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 2 or a in (3);
|
|
a b
|
|
2 1
|
|
3 2
|
|
SELECT * from t where a = 2 or a > 3;
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a = 2 or a > 3;
|
|
id estRows task access object operator info
|
|
TableReader 7.00 root partition:all data:Selection
|
|
└─Selection 7.00 cop[tikv] or(eq(executor__partition__partition_with_expression.trange.a, 2), gt(executor__partition__partition_with_expression.trange.a, 3))
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 2 or a > 3;
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a = 2 or a > 3;
|
|
id estRows task access object operator info
|
|
TableReader 7.00 root partition:all data:Selection
|
|
└─Selection 7.00 cop[tikv] or(eq(executor__partition__partition_with_expression.thash.a, 2), gt(executor__partition__partition_with_expression.thash.a, 3))
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 2 or a > 3;
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a = 2 or a <= 1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
explain format='brief' select * from trange where a = 2 or a <= 1;
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:p0 data:Selection
|
|
└─Selection 4.00 cop[tikv] or(eq(executor__partition__partition_with_expression.trange.a, 2), le(executor__partition__partition_with_expression.trange.a, 1))
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 2 or a <= 1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
explain format='brief' select * from thash where a = 2 or a <= 1;
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:all data:Selection
|
|
└─Selection 4.00 cop[tikv] or(eq(executor__partition__partition_with_expression.thash.a, 2), le(executor__partition__partition_with_expression.thash.a, 1))
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 2 or a <= 1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
SELECT * from t where a = 2 or a between 2 and 2;
|
|
a b
|
|
2 1
|
|
explain format='brief' select * from trange where a = 2 or a between 2 and 2;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p0 data:Selection
|
|
└─Selection 1.00 cop[tikv] or(eq(executor__partition__partition_with_expression.trange.a, 2), and(ge(executor__partition__partition_with_expression.trange.a, 2), le(executor__partition__partition_with_expression.trange.a, 2)))
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a = 2 or a between 2 and 2;
|
|
a b
|
|
2 1
|
|
explain format='brief' select * from thash where a = 2 or a between 2 and 2;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p2 data:Selection
|
|
└─Selection 1.00 cop[tikv] or(eq(executor__partition__partition_with_expression.thash.a, 2), and(ge(executor__partition__partition_with_expression.thash.a, 2), le(executor__partition__partition_with_expression.thash.a, 2)))
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a = 2 or a between 2 and 2;
|
|
a b
|
|
2 1
|
|
SELECT * from t where a != 2;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a != 2;
|
|
id estRows task access object operator info
|
|
TableReader 10.00 root partition:all data:Selection
|
|
└─Selection 10.00 cop[tikv] ne(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a != 2;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a != 2;
|
|
id estRows task access object operator info
|
|
TableReader 10.00 root partition:all data:Selection
|
|
└─Selection 10.00 cop[tikv] ne(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a != 2;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a != 2 and a > 4;
|
|
a b
|
|
10 NULL
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a != 2 and a > 4;
|
|
id estRows task access object operator info
|
|
TableReader 5.00 root partition:p2 data:Selection
|
|
└─Selection 5.00 cop[tikv] gt(executor__partition__partition_with_expression.trange.a, 4), ne(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a != 2 and a > 4;
|
|
a b
|
|
10 NULL
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a != 2 and a > 4;
|
|
id estRows task access object operator info
|
|
TableReader 5.00 root partition:all data:Selection
|
|
└─Selection 5.00 cop[tikv] gt(executor__partition__partition_with_expression.thash.a, 4), ne(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a != 2 and a > 4;
|
|
a b
|
|
10 NULL
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a != 2 and a != 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a != 2 and a != 3;
|
|
id estRows task access object operator info
|
|
TableReader 9.00 root partition:all data:Selection
|
|
└─Selection 9.00 cop[tikv] ne(executor__partition__partition_with_expression.trange.a, 2), ne(executor__partition__partition_with_expression.trange.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a != 2 and a != 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a != 2 and a != 3;
|
|
id estRows task access object operator info
|
|
TableReader 9.00 root partition:all data:Selection
|
|
└─Selection 9.00 cop[tikv] ne(executor__partition__partition_with_expression.thash.a, 2), ne(executor__partition__partition_with_expression.thash.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a != 2 and a != 3;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a != 2 and a = 3;
|
|
a b
|
|
3 2
|
|
explain format='brief' select * from trange where a != 2 and a = 3;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p1 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.trange.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a != 2 and a = 3;
|
|
a b
|
|
3 2
|
|
explain format='brief' select * from thash where a != 2 and a = 3;
|
|
id estRows task access object operator info
|
|
TableReader 1.00 root partition:p3 data:Selection
|
|
└─Selection 1.00 cop[tikv] eq(executor__partition__partition_with_expression.thash.a, 3)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a != 2 and a = 3;
|
|
a b
|
|
3 2
|
|
SELECT * from t where not (a = 2);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where not (a = 2);
|
|
id estRows task access object operator info
|
|
TableReader 10.00 root partition:all data:Selection
|
|
└─Selection 10.00 cop[tikv] ne(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where not (a = 2);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where not (a = 2);
|
|
id estRows task access object operator info
|
|
TableReader 10.00 root partition:all data:Selection
|
|
└─Selection 10.00 cop[tikv] ne(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where not (a = 2);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
10 NULL
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where not (a > 2);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
explain format='brief' select * from trange where not (a > 2);
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:p0 data:Selection
|
|
└─Selection 4.00 cop[tikv] le(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where not (a > 2);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
explain format='brief' select * from thash where not (a > 2);
|
|
id estRows task access object operator info
|
|
TableReader 4.00 root partition:all data:Selection
|
|
└─Selection 4.00 cop[tikv] le(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where not (a > 2);
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
1 1
|
|
2 1
|
|
SELECT * from t where not (a < 2);
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where not (a < 2);
|
|
id estRows task access object operator info
|
|
TableReader 8.00 root partition:all data:Selection
|
|
└─Selection 8.00 cop[tikv] ge(executor__partition__partition_with_expression.trange.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where not (a < 2);
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where not (a < 2);
|
|
id estRows task access object operator info
|
|
TableReader 8.00 root partition:all data:Selection
|
|
└─Selection 8.00 cop[tikv] ge(executor__partition__partition_with_expression.thash.a, 2)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where not (a < 2);
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a + 1 > 4;
|
|
a b
|
|
10 NULL
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a + 1 > 4;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] gt(plus(executor__partition__partition_with_expression.trange.a, 1), 4)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a + 1 > 4;
|
|
a b
|
|
10 NULL
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a + 1 > 4;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] gt(plus(executor__partition__partition_with_expression.thash.a, 1), 4)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a + 1 > 4;
|
|
a b
|
|
10 NULL
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a - 1 > 0;
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from trange where a - 1 > 0;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] gt(minus(executor__partition__partition_with_expression.trange.a, 1), 0)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a - 1 > 0;
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
explain format='brief' select * from thash where a - 1 > 0;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] gt(minus(executor__partition__partition_with_expression.thash.a, 1), 0)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a - 1 > 0;
|
|
a b
|
|
10 NULL
|
|
2 1
|
|
3 2
|
|
4 3
|
|
5 5
|
|
6 7
|
|
7 7
|
|
7 7
|
|
SELECT * from t where a * 2 < 0;
|
|
a b
|
|
explain format='brief' select * from trange where a * 2 < 0;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] lt(mul(executor__partition__partition_with_expression.trange.a, 2), 0)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a * 2 < 0;
|
|
a b
|
|
explain format='brief' select * from thash where a * 2 < 0;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] lt(mul(executor__partition__partition_with_expression.thash.a, 2), 0)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a * 2 < 0;
|
|
a b
|
|
SELECT * from t where a << 1 < 0;
|
|
a b
|
|
explain format='brief' select * from trange where a << 1 < 0;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] lt(leftshift(executor__partition__partition_with_expression.trange.a, 1), 0)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a << 1 < 0;
|
|
a b
|
|
explain format='brief' select * from thash where a << 1 < 0;
|
|
id estRows task access object operator info
|
|
TableReader 10.40 root partition:all data:Selection
|
|
└─Selection 10.40 cop[tikv] lt(leftshift(executor__partition__partition_with_expression.thash.a, 1), 0)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a << 1 < 0;
|
|
a b
|
|
SELECT * from t where a > '10';
|
|
a b
|
|
explain format='brief' select * from trange where a > '10';
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:dual data:Selection
|
|
└─Selection 0.00 cop[tikv] gt(executor__partition__partition_with_expression.trange.a, 10)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a > '10';
|
|
a b
|
|
explain format='brief' select * from thash where a > '10';
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:all data:Selection
|
|
└─Selection 0.00 cop[tikv] gt(executor__partition__partition_with_expression.thash.a, 10)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a > '10';
|
|
a b
|
|
SELECT * from t where a > '10ab';
|
|
a b
|
|
explain format='brief' select * from trange where a > '10ab';
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:dual data:Selection
|
|
└─Selection 0.00 cop[tikv] gt(executor__partition__partition_with_expression.trange.a, 10)
|
|
└─TableFullScan 13.00 cop[tikv] table:trange keep order:false
|
|
SELECT * from trange where a > '10ab';
|
|
a b
|
|
explain format='brief' select * from thash where a > '10ab';
|
|
id estRows task access object operator info
|
|
TableReader 0.00 root partition:all data:Selection
|
|
└─Selection 0.00 cop[tikv] gt(executor__partition__partition_with_expression.thash.a, 10)
|
|
└─TableFullScan 13.00 cop[tikv] table:thash keep order:false
|
|
SELECT * from thash where a > '10ab';
|
|
a b
|
|
set tidb_partition_prune_mode=default;
|