Changeset: d4434ac96dcc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d4434ac96dcc
Modified Files:
        sql/server/rel_dump.c
        sql/test/SQLancer/Tests/sqlancer19.SQL.py
Branch: properties
Log Message:

In order to parse min/max values, set expression types early on if possible for 
set relations in remote plans


diffs (36 lines):

diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -1653,7 +1653,8 @@ rel_set_types(mvc *sql, sql_rel *rel)
        for(n=iexps->h, m=rel->exps->h; n && m; n = n->next, m = m->next) {
                sql_exp *e = m->data;
 
-               e->tpe = *exp_subtype( n->data );
+               if (!e->tpe.type)
+                       e->tpe = *exp_subtype( n->data );
        }
        return 0;
 }
@@ -2257,7 +2258,7 @@ rel_read(mvc *sql, char *r, int *pos, li
                (*pos)++;
                skipWS(r, pos);
 
-               if (!(exps = read_exps(sql, NULL, NULL, NULL, r, pos, '[', 0, 
1)))
+               if (!(exps = read_exps(sql, lrel, rrel, NULL, r, pos, '[', 0, 
1)))
                        return NULL;
                rel = rel_setop(sql->sa, lrel, rrel, j);
                rel_setop_set_exps(sql, rel, exps, false);
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
@@ -339,6 +339,10 @@ with SQLTestCase() as cli:
     cli.execute("SELECT c1 FROM rt6;") \
         
.assertSucceeded().assertDataResultMatch([("3",),("8ጮk|1*",),("27",),("Vrx^qA齀",),("J",),("18",),(">*4嘁pAP",),("+Jm*W0{",),(">V鷓",),
         ("BW5z",),(".#OJruk",),("lU1覃Nlm",),(None,),("968786590",)])
+    cli.execute("(SELECT greatest(JSON '\"5mTevdOzH5brfkMv\"', JSON 
'0.4'),CASE WHEN FALSE THEN NULL END, greatest(BLOB 'c0', BLOB '') FROM t3) 
INTERSECT ALL (SELECT JSON '0.2', JSON '-3', BLOB '30' FROM t3);") \
+        .assertSucceeded().assertDataResultMatch([])
+    cli.execute("(SELECT greatest(JSON '\"5mTevdOzH5brfkMv\"', JSON 
'0.4'),CASE WHEN FALSE THEN NULL END, greatest(BLOB 'c0', BLOB '') FROM rt3) 
INTERSECT ALL (SELECT JSON '0.2', JSON '-3', BLOB '30' FROM rt3);") \
+        .assertSucceeded().assertDataResultMatch([])
     cli.execute("ROLLBACK;")
 
     cli.execute("""
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to