Changeset: 95a86d86c9ed for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/95a86d86c9ed
Modified Files:
        sql/server/rel_optimizer.c
Branch: Jul2021
Log Message:

Defensive line, check if expression list is empty beforehand


diffs (22 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
@@ -2513,11 +2513,13 @@ rel_remove_redundant_join(visitor *v, sq
                        int left = 0;
                        if (is_basetable(jl->op) && jl->l == b->l)
                                left = 1;
-                       for (node *n=p->exps->h; n; n = n->next) { /* all exps 
of 'p' must be bound to the opposite side */
-                               sql_exp *e = n->data;
-
-                               if (!rel_rebind_exp(v->sql, left ? jr : jl, e))
-                                       return rel;
+                       if (!list_empty(p->exps)) {
+                               for (node *n=p->exps->h; n; n = n->next) { /* 
all exps of 'p' must be bound to the opposite side */
+                                       sql_exp *e = n->data;
+
+                                       if (!rel_rebind_exp(v->sql, left ? jr : 
jl, e))
+                                               return rel;
+                               }
                        }
                        if (exp_match_list(j->exps, rel->exps)) {
                                p->l = (left)?rel_dup(jr):rel_dup(jl);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to