|
9659 | 9659 | ]
|
9660 | 9660 | }
|
9661 | 9661 | ]
|
| 9662 | + }, |
| 9663 | + { |
| 9664 | + "Name": "TestAdditionOtherConditionsRemained4OuterJoin", |
| 9665 | + "Cases": [ |
| 9666 | + { |
| 9667 | + "SQL": "SELECT `queries_identifier`.`id`, `queries_identifier`.`name` FROM `queries_identifier` LEFT OUTER JOIN `queries_channel` ON (`queries_identifier`.`id` = `queries_channel`.`identifier_id`) INNER JOIN `queries_program` ON (`queries_identifier`.`id` = `queries_program`.`identifier_id`) WHERE ((`queries_channel`.`id` = 5 AND `queries_program`.`id` = 9) OR `queries_program`.`id` = 8) ORDER BY `queries_identifier`.`id` ASC", |
| 9668 | + "Output": [ |
| 9669 | + "13 i1" |
| 9670 | + ] |
| 9671 | + }, |
| 9672 | + { |
| 9673 | + "SQL": "SELECT `queries_identifier`.`id`, `queries_identifier`.`name` FROM `queries_identifier` RIGHT OUTER JOIN `queries_channel` ON (`queries_identifier`.`id` = `queries_channel`.`identifier_id`) INNER JOIN `queries_program` ON (`queries_identifier`.`id` = `queries_program`.`identifier_id`) WHERE ((`queries_channel`.`id` = 5 AND `queries_program`.`id` = 9) OR `queries_program`.`id` = 8) ORDER BY `queries_identifier`.`id` ASC", |
| 9674 | + "Output": [ |
| 9675 | + "13 i1" |
| 9676 | + ] |
| 9677 | + }, |
| 9678 | + { |
| 9679 | + "SQL": "explain format = 'brief' SELECT `queries_identifier`.`id`, `queries_identifier`.`name` FROM `queries_identifier` LEFT OUTER JOIN `queries_channel` ON (`queries_identifier`.`id` = `queries_channel`.`identifier_id`) INNER JOIN `queries_program` ON (`queries_identifier`.`id` = `queries_program`.`identifier_id`) WHERE ((`queries_channel`.`id` = 5 AND `queries_program`.`id` = 9) OR `queries_program`.`id` = 8) ORDER BY `queries_identifier`.`id` ASC;", |
| 9680 | + "Output": [ |
| 9681 | + "Sort 2.50 root test.queries_identifier.id", |
| 9682 | + "└─Projection 2.50 root test.queries_identifier.id, test.queries_identifier.name", |
| 9683 | + " └─Selection 2.50 root or(and(eq(test.queries_channel.id, 5), eq(test.queries_program.id, 9)), eq(test.queries_program.id, 8))", |
| 9684 | + " └─IndexJoin 3.12 root left outer join, inner:IndexReader, outer key:test.queries_identifier.id, inner key:test.queries_channel.identifier_id, equal cond:eq(test.queries_identifier.id, test.queries_channel.identifier_id)", |
| 9685 | + " ├─IndexHashJoin(Build) 2.50 root inner join, inner:TableReader, outer key:test.queries_program.identifier_id, inner key:test.queries_identifier.id, equal cond:eq(test.queries_program.identifier_id, test.queries_identifier.id)", |
| 9686 | + " │ ├─Batch_Point_Get(Build) 2.00 root table:queries_program handle:[8 9], keep order:false, desc:false", |
| 9687 | + " │ └─TableReader(Probe) 2.00 root data:TableRangeScan", |
| 9688 | + " │ └─TableRangeScan 2.00 cop[tikv] table:queries_identifier range: decided by [test.queries_program.identifier_id], keep order:false, stats:pseudo", |
| 9689 | + " └─IndexReader(Probe) 2.50 root index:IndexRangeScan", |
| 9690 | + " └─IndexRangeScan 2.50 cop[tikv] table:queries_channel, index:identifier_id(identifier_id) range: decided by [eq(test.queries_channel.identifier_id, test.queries_identifier.id)], keep order:false, stats:pseudo" |
| 9691 | + ] |
| 9692 | + }, |
| 9693 | + { |
| 9694 | + "SQL": "explain format='brief' select * from t left join t1 on t.a=t1.a inner join t2 on t.a=t2.a and t2.c = 100 left join t3 on t2.a=t3.a and t3.b > 1 left join t4 on t2.a = t4.a where (t2.b > 100 or t.a > 10 or t1.b < 10)", |
| 9695 | + "Output": [ |
| 9696 | + "Projection 19.51 root test.t.a, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t2.c, test.t3.a, test.t3.b, test.t4.a, test.t4.b", |
| 9697 | + "└─Selection 19.51 root or(gt(test.t2.b, 100), or(gt(test.t.a, 10), lt(test.t1.b, 10))), or(gt(test.t2.b, 100), or(gt(test.t2.a, 10), lt(test.t1.b, 10)))", |
| 9698 | + " └─HashJoin 24.39 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", |
| 9699 | + " ├─HashJoin(Build) 19.51 root left outer join, equal:[eq(test.t.a, test.t1.a)]", |
| 9700 | + " │ ├─HashJoin(Build) 15.61 root inner join, equal:[eq(test.t2.a, test.t.a)]", |
| 9701 | + " │ │ ├─HashJoin(Build) 12.49 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", |
| 9702 | + " │ │ │ ├─TableReader(Build) 9.99 root data:Selection", |
| 9703 | + " │ │ │ │ └─Selection 9.99 cop[tikv] eq(test.t2.c, 100), not(isnull(test.t2.a))", |
| 9704 | + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", |
| 9705 | + " │ │ │ └─TableReader(Probe) 3330.00 root data:Selection", |
| 9706 | + " │ │ │ └─Selection 3330.00 cop[tikv] gt(test.t3.b, 1), not(isnull(test.t3.a))", |
| 9707 | + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", |
| 9708 | + " │ │ └─TableReader(Probe) 9990.00 root data:Selection", |
| 9709 | + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", |
| 9710 | + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", |
| 9711 | + " │ └─TableReader(Probe) 9990.00 root data:Selection", |
| 9712 | + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", |
| 9713 | + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", |
| 9714 | + " └─TableReader(Probe) 9990.00 root data:Selection", |
| 9715 | + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", |
| 9716 | + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" |
| 9717 | + ] |
| 9718 | + } |
| 9719 | + ] |
9662 | 9720 | }
|
9663 | 9721 | ]
|
0 commit comments