Files
tidb/expression/testdata/partition_pruner_in.json

102 lines
5.9 KiB
JSON

[
{
"name": "TestHashPartitionPruner",
"cases": [
"explain select * from t1 where id = 7 and a = 6",
"explain select * from t3 where id = 9 and a = 1",
"explain select * from t2 where id = 9 and a = -110",
"explain select * from t1 where id = -17",
"explain select * from t1 join t2 on (t1.id = t2.id) where t1.id = 5 and t2.a = 7",
"explain select * from t1 left join t2 on t1.id = 1 and t2.a = 2 where t2.id = 7",
"explain select * from t2 join t1 on t1.id = t2.id and t2.a = t1.id and t2.id = 12",
"explain select * from t1 left join t2 on true where t1.a = 1 and false",
"explain select * from t1 left join t2 on true where t1.a = 1 and null",
"explain select * from t1 left join t2 on true where t1.a = null",
"explain select * from t4 where d = '2019-10-07 10:40:00' and a = 1",
"explain select * from t5 where d = '2019-10-07'",
"explain select * from t6 where a is null",
"explain select * from t6 where b is null",
"explain select * from t6 where a = 7 or a = 6",
"explain select * from t6 where a in (6, 7)",
"explain select * from t5 where d is null",
"explain select * from t7 where b = -3 and a is null",
"explain select * from t7 where (a, b) in ((3, 4), (5, 6))",
"explain select * from t7 where (a = 1 and b = 2) or (a = 3 and b = 4)",
"explain select * from t7 where (a = 1 and b = 2) or (a = 1 and b = 2)",
"explain select * from t7 partition(p0) where (a = 1 and b = 2) or (a = 3 and b = 4)"
]
},
{
"name": "TestListPartitionPruner",
"cases": [
"select * from t1 where id = 6 and a = 6",
"select * from t2 where id = 6 and a = 6 and b = 6",
"select * from t3 where id = 6 and a = 6",
"select * from t1 where id = 6 and (a = 6 or a is null)",
"select * from t2 where id = 6 and (a = 6 and b = 6 ) or ( a is null and b = 6 )",
"select * from t3 where id = 6 and (a = 6 or a is null)",
"select * from t1 where id = 6 and (a = 1 or a is null)",
"select * from t2 where id = 6 and (a = 6 and b = 6) or ( a is null and b = 6)",
"select * from t3 where id = 6 and (a = 1 or a is null)",
"select * from t1 where (id = 1 and a = 1) or a is null",
"select * from t2 where (id = 1 and a = 1 and b = 1) or (a is null and b is null)",
"select * from t3 where (id = 1 and a = 1) or a is null",
"select * from t1 where (id = 1 and a = 1) or (a = 1 and id = 1)",
"select * from t2 where (id = 1 and a = 1 and b = 1) or (a = 1 and id = 1 and b=1)",
"select * from t3 where (id = 1 and a = 1) or (a = 1 and id = 1)",
"select * from t1 where a is null",
"select * from t2 where a is null and b is null",
"select * from t3 where a is null",
"select * from t1 where a=id and id >10",
"select * from t2 where a=id and id >10",
"select * from t3 where a=id and id >10",
"select * from t1 where a=id and id >10 or a is null",
"select * from t2 where a=id and id >10 or a is null",
"select * from t3 where a=id and id >10 or a is null",
"select * from t1 where a in (1,2) or a=4",
"select * from t2 where a in (1,2) or a=4",
"select * from t3 where a in (1,2) or a=4",
"select * from t1 where a in (1,2) or a=6",
"select * from t2 where (a in (1,2) or a=7) and b = 2",
"select * from t3 where a in (1,2) or a=8",
"select * from t1 where id = 1 or b = 1",
"select * from t2 where id = 1 or b = 1",
"select * from t3 where id = 1 or b = 1",
"select * from t1 where a = 100",
"select * from t2 where a = 100 and b = 100",
"select * from t3 where a = 100",
"select * from t1 partition(p0) where a in (1,3,5,7)",
"select * from t2 partition(p0) where b in (1,3,5,7)",
"select * from t1 partition(p1) where a in (1,3,5,7)",
"select * from t2 partition(p1) where a in (1,3,5,7)",
"select * from t1 join t2 on t1.id = t2.id where (t1.a=1 or t1.a = 3) and (t2.a = 6 and t2.b = 6)",
"select * from t1 left join t3 on t1.id = t3.id where (t1.a=1 or t1.a = 3) and t3.a in (6,7,8)",
"select * from t3 right join t2 on t3.id = t2.id where (t3.a=1 or t3.a = 3) and t2.a in (6,7,8) and t2.b = 6",
"select * from t1 join t2 on true where t1.a=5 and t2.a in (6,7,8) and t1.a-t2.a=1 and t2.b = 6",
"select * from t1 where a = 6 union select * from t1 where a = 1 order by a",
"select * from t4 join t5 on t4.id = t5.id where (t4.a=1 or t4.a = 3) and (t5.a = 1 or t5.a = 6) and t5.b in (1,6)",
"select * from t4 t1 join t4 t2 on t1.id = t2.id where t1.a in (1, 4) and t2.a in (1,3,9,100)",
"select * from t6 t1 join t6 t2 on t1.id = t2.id where t1.a in (1, 4) and t2.a in (1,3,9,100)",
"select count(*) from t6 join t5 on t6.b = t5.b where t6.a in (1,2) and t5.a in (1,6) and t5.b in (1,6)",
"select /*+ INL_JOIN(t6,t5) */ count(*) from t6 join t5 on t6.b = t5.b where t6.a in (1,2) and t5.a in (1,6) and t5.b in (1,6)",
"select /*+ INL_HASH_JOIN(t5,t6) */ count(*) from t6 join t5 on t6.b = t5.b where t6.a in (1,2) and t5.a in (1,6) and t5.b in (1,6)",
"select * from t7 where a is null or a > 0 order by a;"
]
},
{
"name": "TestListColumnsPartitionPruner",
"cases": [
"select * from t1 where a = 1 or b = 2",
"select * from t1 where a = 1 and b = 2",
"select * from t1 where a = 1 and b = 1",
"select * from t1 where a in (1,2,3) or b in (4,5,6)",
"select * from t1 where a in (1,2,3) and b in (4,5,6)",
"select * from t1 where a in (1,2,3) and b in (3,4,6)",
"select * from t1 where ( a=1 and b=1) or (a=6 and b=6)",
"select * from t1 where a = 100 and b = 100",
"select * from t1 join t2 on t1.id = t2.id where (t1.a=1 or t1.a = 3 and t1.b in (3,5)) and t2.a in (6,7,8) and t2.b=7 and t2.id=7",
"select * from t1 left join t2 on true where (t1.a=1 or t1.a = 3 and t1.b in (3,5)) and t2.a in (6,7,8) and t2.b=7 and t2.id = 7"
]
}
]