Changeset: 759bce77a1de for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/759bce77a1de
Modified Files:
        sql/server/rel_unnest.c
        sql/test/SQLancer/Tests/sqlancer19.SQL.py
Branch: default
Log Message:

Leave rewrite_anyequal earlier if no rewrites are needed. At the moment 
unnesting is called again on remote plans and it could create issues


diffs (26 lines):

diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -2881,7 +2881,7 @@ rewrite_anyequal(visitor *v, sql_rel *re
                                        v->changes++;
                                        return le;
                                }
-                       } else if (!lsq && is_tuple && is_values(re) && 
!exps_have_rel_exp(re->f)) {
+                       } else if (!lsq && !exps_have_rel_exp(re->f)) {
                                return e; /* leave as is, handled later */
                        }
 
diff --git a/sql/test/SQLancer/Tests/sqlancer19.SQL.py 
b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
--- a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
+++ b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
@@ -369,6 +369,10 @@ with SQLTestCase() as cli:
         
.assertSucceeded().assertDataResultMatch([(Decimal('2.47'),"1","","1")])
     cli.execute("SELECT abs(2.47), ltrim(count(*)), ltrim(count(*),count(*)), 
lower(count(*)) FROM rt3 where rt3.c0 = 1;") \
         
.assertSucceeded().assertDataResultMatch([(Decimal('2.47'),"1","","1")])
+    cli.execute("SELECT 1 FROM t3 LEFT OUTER JOIN (SELECT 1) x(x) ON 1 <> 
ALL(VALUES (t3.c0)) where t3.c0 = 1;") \
+        .assertSucceeded().assertDataResultMatch([(1,)])
+    cli.execute("SELECT 1 FROM rt3 LEFT OUTER JOIN (SELECT 1) x(x) ON 1 <> 
ALL(VALUES (rt3.c0)) where rt3.c0 = 1;") \
+        .assertSucceeded().assertDataResultMatch([(1,)])
     cli.execute("ROLLBACK;")
 
     cli.execute("SELECT CASE 1 WHEN 5 THEN ((SELECT t3.c0) INTERSECT (SELECT 
9)) ELSE (VALUES (t3.c0), (1)) END FROM t3;") \
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to