You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

143 lines
5.7 KiB

[
{
"Name": "TestCompIndexInExprCorrCol",
"Cases": [
{
"SQL": "explain select t.e in (select count(*) from t s use index(idx), t t1 where s.b = 1 and s.c in (1, 2) and s.d = t.a and s.a = t1.a) from t",
"Result": [
"Projection_11 2.00 root Column#17",
"└─Apply_13 2.00 root CARTESIAN left outer semi join, other cond:eq(test.t.e, Column#16)",
" ├─TableReader_15(Build) 2.00 root data:TableFullScan_14",
" │ └─TableFullScan_14 2.00 cop[tikv] table:t keep order:false",
" └─StreamAgg_20(Probe) 1.00 root funcs:count(1)->Column#16",
" └─IndexJoin_36 2.00 root inner join, inner:TableReader_35, outer key:test.t.a, inner key:test.t.a, equal cond:eq(test.t.a, test.t.a)",
" ├─IndexReader_29(Build) 2.00 root index:IndexRangeScan_28",
" │ └─IndexRangeScan_28 2.00 cop[tikv] table:s, index:idx(b, c, d) range: decided by [eq(test.t.b, 1) in(test.t.c, 1, 2) eq(test.t.d, test.t.a)], keep order:false",
" └─TableReader_35(Probe) 1.00 root data:TableRangeScan_34",
" └─TableRangeScan_34 1.00 cop[tikv] table:t1 range: decided by [test.t.a], keep order:false"
]
},
{
"SQL": "select t.e in (select count(*) from t s use index(idx), t t1 where s.b = 1 and s.c in (1, 2) and s.d = t.a and s.a = t1.a) from t",
"Result": [
"1",
"1"
]
}
]
},
{
"Name": "TestIndexStringIsTrueRange",
"Cases": [
{
"SQL": "explain select * from t0 where c0",
"Result": [
"TableReader_7 0.80 root data:Selection_6",
"└─Selection_6 0.80 cop[tikv] test.t0.c0",
" └─TableFullScan_5 1.00 cop[tikv] table:t0 keep order:false"
]
},
{
"SQL": "explain select * from t0 where c0 and c0 > '123'",
"Result": [
"IndexReader_7 1.00 root index:Selection_6",
"└─Selection_6 1.00 cop[tikv] test.t0.c0",
" └─IndexRangeScan_5 1.00 cop[tikv] table:t0, index:i0(c0) range:(\"123\",+inf], keep order:false"
]
},
{
"SQL": "explain select * from t0 where c0 and c0 <> '123'",
"Result": [
"IndexReader_7 1.00 root index:Selection_6",
"└─Selection_6 1.00 cop[tikv] test.t0.c0",
" └─IndexRangeScan_5 1.00 cop[tikv] table:t0, index:i0(c0) range:[-inf,\"123\"), (\"123\",+inf], keep order:false"
]
},
{
"SQL": "explain select * from t0 where c0 is true",
"Result": [
"TableReader_7 0.80 root data:Selection_6",
"└─Selection_6 0.80 cop[tikv] istrue(cast(test.t0.c0))",
" └─TableFullScan_5 1.00 cop[tikv] table:t0 keep order:false"
]
},
{
"SQL": "explain select * from t0 where c0 is false",
"Result": [
"TableReader_7 0.80 root data:Selection_6",
"└─Selection_6 0.80 cop[tikv] isfalse(cast(test.t0.c0))",
" └─TableFullScan_5 1.00 cop[tikv] table:t0 keep order:false"
]
},
{
"SQL": "explain select * from t0 where c0 and c0 in ('123','456','789')",
"Result": [
"IndexReader_7 1.00 root index:Selection_6",
"└─Selection_6 1.00 cop[tikv] test.t0.c0",
" └─IndexRangeScan_5 1.00 cop[tikv] table:t0, index:i0(c0) range:[\"123\",\"123\"], [\"456\",\"456\"], [\"789\",\"789\"], keep order:false"
]
},
{
"SQL": "explain SELECT * FROM t0 WHERE ('a' != t0.c0) AND t0.c0;",
"Result": [
"IndexReader_7 1.00 root index:Selection_6",
"└─Selection_6 1.00 cop[tikv] test.t0.c0",
" └─IndexRangeScan_5 1.00 cop[tikv] table:t0, index:i0(c0) range:[-inf,\"a\"), (\"a\",+inf], keep order:false"
]
}
]
},
{
"Name": "TestPrefixIndexMultiColDNF",
"Cases": [
{
"SQL": "select * from t2 where t='aaaa';",
"Plan": [
"IndexLookUp_11 10.00 root ",
"├─IndexRangeScan_8(Build) 10.00 cop[tikv] table:t2, index:t(t) range:[\"aaa\",\"aaa\"], keep order:false, stats:pseudo",
"└─Selection_10(Probe) 10.00 cop[tikv] eq(test.t2.t, \"aaaa\")",
" └─TableRowIDScan_9 10.00 cop[tikv] table:t2 keep order:false, stats:pseudo"
],
"Result": [
"1 aaaa"
]
},
{
"SQL": "select * from t2 where t='aaaa' or t = 'a';",
"Plan": [
"IndexLookUp_11 16.00 root ",
"├─IndexRangeScan_8(Build) 20.00 cop[tikv] table:t2, index:t(t) range:[\"a\",\"a\"], [\"aaa\",\"aaa\"], keep order:false, stats:pseudo",
"└─Selection_10(Probe) 16.00 cop[tikv] or(eq(test.t2.t, \"aaaa\"), eq(test.t2.t, \"a\"))",
" └─TableRowIDScan_9 20.00 cop[tikv] table:t2 keep order:false, stats:pseudo"
],
"Result": [
"1 aaaa",
"2 a"
]
},
{
"SQL": "select * from t2 where t='aaaa';",
"Plan": [
"TableReader_7 1.00 root data:Selection_6",
"└─Selection_6 1.00 cop[tikv] eq(test.t2.t, \"aaaa\")",
" └─TableRangeScan_5 2.00 cop[tikv] table:t2 range:[0,+inf], keep order:false"
],
"Result": [
"1 aaaa"
]
},
{
"SQL": "select * from t2 where t='aaaa' or t = 'a';",
"Plan": [
"TableReader_7 1.60 root data:Selection_6",
"└─Selection_6 1.60 cop[tikv] or(eq(test.t2.t, \"aaaa\"), eq(test.t2.t, \"a\"))",
" └─TableRangeScan_5 2.00 cop[tikv] table:t2 range:[0,+inf], keep order:false"
],
"Result": [
"1 aaaa",
"2 a"
]
}
]
}
]