@@ -583,30 +583,30 @@ HAVING EXISTS (SELECT 1 FROM t_panic WHERE x IS NULL);`).Check(testkit.Rows("<ni
583583 tk .MustExec ("create table t1(vkey integer, c10 integer);" )
584584 tk .MustExec ("create table t2(c12 integer, c13 integer, c14 varchar(0), c15 double);" )
585585 tk .MustExec ("create table t3(vkey varchar(0), c20 integer);" )
586- tk .MustQuery ("explain format='brief ' select 0 from t2 join(t3 join t0 a on 0) left join(t1 b left join t1 c on 0) on(c20 = b.vkey) on(c13 = a.vkey) join(select c14 d from(t2 join t3 on c12 = vkey)) e on(c3 = d) where nullif(c15, case when(c.c10) then 0 end);" ).Check (testkit .Rows (
587- "Projection 0.00 root 0->Column#33 " ,
588- "└─HashJoin 0.00 root inner join, equal:[eq(Column#23 , Column#40 )]" ,
589- " ├─HashJoin(Build) 0.00 root inner join, equal:[eq(test.t0.c3, test.t2.c14)]" ,
590- " │ ├─Selection(Build) 0.00 root if(eq(test.t2.c15, cast(case(test.t1.c10, 0), double BINARY)), NULL, test.t2.c15)" ,
591- " │ │ └─HashJoin 0.00 root left outer join, left side:HashJoin, equal:[eq(test.t3.c20, test.t1.vkey)]" ,
592- " │ │ ├─HashJoin(Build) 0.00 root inner join, equal:[eq(test.t0.vkey, test.t2.c13)]" ,
593- " │ │ │ ├─TableDual(Build) 0.00 root rows:0" ,
594- " │ │ │ └─TableReader(Probe) 9990.00 root data:Selection" ,
595- " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.c13))" ,
596- " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ,
597- " │ │ └─HashJoin(Probe) 9990.00 root CARTESIAN left outer join, left side:TableReader" ,
598- " │ │ ├─TableDual(Build) 0.00 root rows:0" ,
599- " │ │ └─TableReader(Probe) 9990.00 root data:Selection" ,
600- " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.vkey))" ,
601- " │ │ └─TableFullScan 10000.00 cop[tikv] table:b keep order:false, stats:pseudo" ,
602- " │ └─Projection(Probe) 9990.00 root test.t2.c12, test.t2.c14, test.t2.c12->Column#23 " ,
603- " │ └─TableReader 9990.00 root data:Selection" ,
604- " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.c14))" ,
605- " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ,
606- " └─Projection(Probe) 8000.00 root cast(test.t3.vkey, bigint(0) BINARY)->Column#40 " ,
607- " └─Selection 8000.00 root eq(cast(cast(test.t3.vkey, bigint(0) BINARY), double BINARY), cast(test.t3.vkey, double BINARY))" ,
608- " └─TableReader 10000.00 root data:TableFullScan" ,
609- " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ))
586+ tk .MustQuery ("explain format='plan_tree ' select 0 from t2 join(t3 join t0 a on 0) left join(t1 b left join t1 c on 0) on(c20 = b.vkey) on(c13 = a.vkey) join(select c14 d from(t2 join t3 on c12 = vkey)) e on(c3 = d) where nullif(c15, case when(c.c10) then 0 end);" ).Check (testkit .Rows (
587+ "Projection root 0->Column" ,
588+ "└─HashJoin root inner join, equal:[eq(Column, Column)]" ,
589+ " ├─HashJoin(Build) root inner join, equal:[eq(test.t0.c3, test.t2.c14)]" ,
590+ " │ ├─Selection(Build) root if(eq(test.t2.c15, cast(case(test.t1.c10, 0), double BINARY)), NULL, test.t2.c15)" ,
591+ " │ │ └─HashJoin root left outer join, left side:HashJoin, equal:[eq(test.t3.c20, test.t1.vkey)]" ,
592+ " │ │ ├─HashJoin(Build) root inner join, equal:[eq(test.t0.vkey, test.t2.c13)]" ,
593+ " │ │ │ ├─TableDual(Build) root rows:0" ,
594+ " │ │ │ └─TableReader(Probe) root data:Selection" ,
595+ " │ │ │ └─Selection cop[tikv] not(isnull(test.t2.c13))" ,
596+ " │ │ │ └─TableFullScan cop[tikv] table:t2 keep order:false, stats:pseudo" ,
597+ " │ │ └─HashJoin(Probe) root CARTESIAN left outer join, left side:TableReader" ,
598+ " │ │ ├─TableDual(Build) root rows:0" ,
599+ " │ │ └─TableReader(Probe) root data:Selection" ,
600+ " │ │ └─Selection cop[tikv] not(isnull(test.t1.vkey))" ,
601+ " │ │ └─TableFullScan cop[tikv] table:b keep order:false, stats:pseudo" ,
602+ " │ └─Projection(Probe) root test.t2.c12, test.t2.c14, test.t2.c12->Column" ,
603+ " │ └─TableReader root data:Selection" ,
604+ " │ └─Selection cop[tikv] not(isnull(test.t2.c14))" ,
605+ " │ └─TableFullScan cop[tikv] table:t2 keep order:false, stats:pseudo" ,
606+ " └─Projection(Probe) root cast(test.t3.vkey, bigint(0) BINARY)->Column" ,
607+ " └─Selection root eq(cast(cast(test.t3.vkey, bigint(0) BINARY), double BINARY), cast(test.t3.vkey, double BINARY))" ,
608+ " └─TableReader root data:TableFullScan" ,
609+ " └─TableFullScan cop[tikv] table:t3 keep order:false, stats:pseudo" ))
610610 }
611611
612612 // issue-58999-view-equality-expression-join-key-panic
0 commit comments