Changeset: f7b911fd8699 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f7b911fd8699
Modified Files:
sql/server/rel_optimizer.c
sql/test/SQLancer/Tests/sqlancer15.test
Branch: Jul2021
Log Message:
rel_remove_redundant_join cannot be applied between different join types
diffs (104 lines):
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -2497,7 +2497,7 @@ rel_remove_redundant_join(visitor *v, sq
p = l;
j = p->l;
}
- if (!p || !j || !is_join(j->op))
+ if (!p || !j || j->op != rel->op)
return rel;
/* j must have b->l (ie table) */
sql_rel *jl = j->l, *jr = j->r;
diff --git a/sql/test/SQLancer/Tests/sqlancer15.test
b/sql/test/SQLancer/Tests/sqlancer15.test
--- a/sql/test/SQLancer/Tests/sqlancer15.test
+++ b/sql/test/SQLancer/Tests/sqlancer15.test
@@ -507,6 +507,88 @@ statement ok
START TRANSACTION
statement ok
+CREATE TABLE "t0" ("c0" TINYINT,"c2" BIGINT,CONSTRAINT "t0_c0_unique" UNIQUE
("c0"),CONSTRAINT "t0_c0_c2_unique" UNIQUE ("c0", "c2"),CONSTRAINT
"t0_c2_c0_unique" UNIQUE ("c2", "c0"))
+
+statement ok rowcount 27
+COPY 27 RECORDS INTO "t0" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+1 1387424266
+2 0
+6 3634984454
+9 4
+NULL 9
+NULL 0
+NULL 611858669
+NULL 7
+3 1
+0 1317354363
+NULL 5
+NULL 0
+NULL 5
+NULL 3
+NULL 0
+NULL 8
+7 NULL
+NULL 4
+NULL 7
+NULL 5
+NULL 3
+NULL 9
+NULL -10538834904
+NULL -1305419631
+NULL NULL
+NULL 2
+NULL NULL
+
+statement ok
+CREATE TABLE "t1" ("c0" DOUBLE NOT NULL,"c3" TINYINT,CONSTRAINT "t1_c0_pkey"
PRIMARY KEY ("c0"))
+
+statement ok rowcount 21
+COPY 21 RECORDS INTO "t1" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+0.8376401275906128 NULL
+0.7629541543404468 NULL
+8 NULL
+0.16645741874792763 NULL
+124929929.23213053 8
+0.9235567828803988 3
+0.03242632919661814 8
+5.342823187177086 7
+-286476790.76211333 NULL
+0.5506963799172256 NULL
+4 NULL
+1 NULL
+-0 8
+-1.57151353e+09 8
+-0.903317038799036 NULL
+0.15904894751992874 NULL
+0.9264127967998556 NULL
+0.7141061795496624 NULL
+0.7396064226766994 NULL
+0.711 NULL
+0.21684918803285913 NULL
+
+query I rowsort
+select 1 from t1 right outer join (select distinct 4*t1.c3 from t1 left outer
join (select 2) as sub0 on false) as sub0 on false
+----
+1
+1
+1
+1
+
+query I rowsort
+select cast(((true) = true) = false as int) as count from t1 right outer join
(select distinct ((((4)^(-7)))*(case 611858669 when 9 then 2 when 1387424266
then t1.c3 end))
+from t1 left outer join (select cast(8 as double precision), case 8 when 4
then 0.0 when 303400756 then 0.11124314 when 0.9 then 0.3 when 1142205063 then
-1571513530 end where false) as sub0 on not (true)) as sub0 on false
+----
+0
+
+statement ok
+ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
CREATE TABLE "t0" ("c3" INTERVAL SECOND)
statement ok rowcount 9
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list