Changeset: c5ba7c2b50b8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c5ba7c2b50b8
Modified Files:
        sql/server/rel_optimizer.c
        sql/server/rel_select.c
        sql/server/rel_unnest.c
Branch: Jun2020
Log Message:

Added missing checks


diffs (53 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
@@ -8251,7 +8251,8 @@ rel_split_outerjoin(mvc *sql, sql_rel *r
                e = rel->exps->h->data;
                nll->exps = exps_copy(sql, e->l);
                nlr->exps = exps_copy(sql, e->r);
-               nl = rel_or( sql, NULL, nll, nlr, NULL, NULL, NULL);
+               if (!(nl = rel_or( sql, NULL, nll, nlr, NULL, NULL, NULL)))
+                       return NULL;
 
                if (rel->op == op_left || rel->op == op_full) {
                        /* split in 2 anti joins */
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -5723,10 +5723,9 @@ rel_setquery(sql_query *query, symbol *q
                if (t2 && distinct)
                        t2 = rel_distinct(t2);
                res = rel_setquery_(query, t1, t2, corresponding, op_union );
-       }
-       if ( q->token == SQL_EXCEPT)
+       } else if ( q->token == SQL_EXCEPT)
                res = rel_setquery_(query, t1, t2, corresponding, op_except );
-       if ( q->token == SQL_INTERSECT)
+       else if ( q->token == SQL_INTERSECT)
                res = rel_setquery_(query, t1, t2, corresponding, op_inter );
        if (res && distinct)
                res = rel_distinct(res);
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
@@ -1765,14 +1765,17 @@ rewrite_or_exp(mvc *sql, sql_rel *rel, i
 
                                        l = rel_select(sql->sa, l, NULL);
                                        l->exps = e->l;
-                                       l = rewrite_or_exp(sql, l, changes);
+                                       if (!(l = rewrite_or_exp(sql, l, 
changes)))
+                                               return NULL;
                                        r = rel_select(sql->sa, r, NULL);
                                        r->exps = e->r;
-                                       r = rewrite_or_exp(sql, r, changes);
+                                       if (!(r = rewrite_or_exp(sql, r, 
changes)))
+                                               return NULL;
 
                                        list *ls = rel_projections(sql, rel, 
NULL, 1, 1);
                                        list *rs = rel_projections(sql, rel, 
NULL, 1, 1);
-                                       rel = rel_setop_check_types(sql, l, r, 
ls, rs, op_union);
+                                       if (!(rel = rel_setop_check_types(sql, 
l, r, ls, rs, op_union)))
+                                               return NULL;
                                        rel = rel_distinct(rel);
                                        rel_set_exps(rel, exps);
                                        (*changes)++;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to