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.
204 lines
7.2 KiB
204 lines
7.2 KiB
[
|
|
{
|
|
"Name": "TestPlanCacheWithDifferentVariableTypes",
|
|
"Cases": [
|
|
{
|
|
"PrepareStmt": "prepare stmt from \"select ?, ?\"",
|
|
"Executes": [
|
|
{
|
|
"SQL": "execute stmt using @v1, @v2",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "1"
|
|
},
|
|
{
|
|
"Name": "v2",
|
|
"Value": "2"
|
|
}
|
|
],
|
|
"Plan": [
|
|
"Projection_3 1.00 root 1->Column#1, 2->Column#2",
|
|
"└─TableDual_4 1.00 root rows:1"
|
|
],
|
|
"LastPlanUseCache": "0",
|
|
"Result": [
|
|
"1 2"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "execute stmt using @v1, @v2",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "1"
|
|
},
|
|
{
|
|
"Name": "v2",
|
|
"Value": "\"abc\""
|
|
}
|
|
],
|
|
"Plan": [
|
|
"Projection_3 1.00 root 1->Column#1, abc->Column#2",
|
|
"└─TableDual_4 1.00 root rows:1"
|
|
],
|
|
"LastPlanUseCache": "0",
|
|
"Result": [
|
|
"1 abc"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "execute stmt using @v1, @v2",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "10"
|
|
},
|
|
{
|
|
"Name": "v2",
|
|
"Value": "\"cba\""
|
|
}
|
|
],
|
|
"Plan": [
|
|
"Projection_3 1.00 root 10->Column#1, cba->Column#2",
|
|
"└─TableDual_4 1.00 root rows:1"
|
|
],
|
|
"LastPlanUseCache": "0",
|
|
"Result": [
|
|
"10 cba"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"PrepareStmt": "prepare stmt from \"select a from t1 where t1.b = ?\"",
|
|
"Executes": [
|
|
{
|
|
"SQL": "execute stmt using @v1",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "3"
|
|
}
|
|
],
|
|
"Plan": [
|
|
"Projection_4 10.00 root test.t1.a",
|
|
"└─IndexReader_6 10.00 root index:IndexRangeScan_5",
|
|
" └─IndexRangeScan_5 10.00 cop[tikv] table:t1, index:b(b, a) range:[3,3], keep order:false, stats:pseudo"
|
|
],
|
|
"LastPlanUseCache": "0",
|
|
"Result": [
|
|
"3"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "execute stmt using @v1",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "2"
|
|
}
|
|
],
|
|
"Plan": [
|
|
"Projection_4 10.00 root test.t1.a",
|
|
"└─IndexReader_6 10.00 root index:IndexRangeScan_5",
|
|
" └─IndexRangeScan_5 10.00 cop[tikv] table:t1, index:b(b, a) range:[2,2], keep order:false, stats:pseudo"
|
|
],
|
|
"LastPlanUseCache": "1",
|
|
"Result": [
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "execute stmt using @v1",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "\"abc\""
|
|
}
|
|
],
|
|
"Plan": [
|
|
"Projection_4 8000.00 root test.t1.a",
|
|
"└─IndexReader_10 8000.00 root index:Selection_9",
|
|
" └─Selection_9 8000.00 cop[tikv] eq(cast(test.t1.b), 0)",
|
|
" └─IndexFullScan_8 10000.00 cop[tikv] table:t1, index:b(b, a) keep order:false, stats:pseudo"
|
|
],
|
|
"LastPlanUseCache": "0",
|
|
"Result": null
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"PrepareStmt": "prepare stmt from \"select t1.c, t2.c from t1 join t2 on t1.b = t2.b and t1.a = t2.a where t1.b = ?\"",
|
|
"Executes": [
|
|
{
|
|
"SQL": "execute stmt using @v1",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "1"
|
|
}
|
|
],
|
|
"Plan": [
|
|
"HashJoin_23 99.90 root inner join, equal:[eq(test.t1.b, test.t2.b) eq(test.t1.a, test.t2.a)]",
|
|
"├─IndexLookUp_48(Build) 99.80 root ",
|
|
"│ ├─Selection_47(Build) 99.80 cop[tikv] not(isnull(test.t2.b))",
|
|
"│ │ └─IndexRangeScan_45 99.90 cop[tikv] table:t2, index:b(b, a) range:[1 -inf,1 +inf], keep order:false, stats:pseudo",
|
|
"│ └─TableRowIDScan_46(Probe) 99.80 cop[tikv] table:t2 keep order:false, stats:pseudo",
|
|
"└─IndexLookUp_41(Probe) 99.80 root ",
|
|
" ├─Selection_40(Build) 99.80 cop[tikv] not(isnull(test.t1.b))",
|
|
" │ └─IndexRangeScan_38 99.90 cop[tikv] table:t1, index:b(b, a) range:[1 -inf,1 +inf], keep order:false, stats:pseudo",
|
|
" └─TableRowIDScan_39(Probe) 99.80 cop[tikv] table:t1 keep order:false, stats:pseudo"
|
|
],
|
|
"LastPlanUseCache": "0",
|
|
"Result": null
|
|
},
|
|
{
|
|
"SQL": "execute stmt using @v1",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "2"
|
|
}
|
|
],
|
|
"Plan": [
|
|
"HashJoin_23 99.90 root inner join, equal:[eq(test.t1.b, test.t2.b) eq(test.t1.a, test.t2.a)]",
|
|
"├─IndexLookUp_48(Build) 99.80 root ",
|
|
"│ ├─Selection_47(Build) 99.80 cop[tikv] not(isnull(test.t2.b))",
|
|
"│ │ └─IndexRangeScan_45 99.90 cop[tikv] table:t2, index:b(b, a) range:[2 -inf,2 +inf], keep order:false, stats:pseudo",
|
|
"│ └─TableRowIDScan_46(Probe) 99.80 cop[tikv] table:t2 keep order:false, stats:pseudo",
|
|
"└─IndexLookUp_41(Probe) 99.80 root ",
|
|
" ├─Selection_40(Build) 99.80 cop[tikv] not(isnull(test.t1.b))",
|
|
" │ └─IndexRangeScan_38 99.90 cop[tikv] table:t1, index:b(b, a) range:[2 -inf,2 +inf], keep order:false, stats:pseudo",
|
|
" └─TableRowIDScan_39(Probe) 99.80 cop[tikv] table:t1 keep order:false, stats:pseudo"
|
|
],
|
|
"LastPlanUseCache": "1",
|
|
"Result": [
|
|
"222 222"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "execute stmt using @v1",
|
|
"Vars": [
|
|
{
|
|
"Name": "v1",
|
|
"Value": "\"abc\""
|
|
}
|
|
],
|
|
"Plan": [
|
|
"HashJoin_23 9980.01 root inner join, equal:[eq(test.t1.b, test.t2.b) eq(test.t1.a, test.t2.a)]",
|
|
"├─TableReader_44(Build) 7984.01 root data:Selection_43",
|
|
"│ └─Selection_43 7984.01 cop[tikv] eq(cast(test.t2.b), 0), not(isnull(test.t2.a)), not(isnull(test.t2.b))",
|
|
"│ └─TableFullScan_42 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo",
|
|
"└─TableReader_37(Probe) 7984.01 root data:Selection_36",
|
|
" └─Selection_36 7984.01 cop[tikv] eq(cast(test.t1.b), 0), not(isnull(test.t1.a)), not(isnull(test.t1.b))",
|
|
" └─TableFullScan_35 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo"
|
|
],
|
|
"LastPlanUseCache": "0",
|
|
"Result": null
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
|