Changeset: 812591e3ba1a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/812591e3ba1a Modified Files: sql/backends/monet5/rel_predicates.c Branch: Jan2022 Log Message:
If a global predicate is needed, then don't add smaller predicates diffs (24 lines): diff --git a/sql/backends/monet5/rel_predicates.c b/sql/backends/monet5/rel_predicates.c --- a/sql/backends/monet5/rel_predicates.c +++ b/sql/backends/monet5/rel_predicates.c @@ -57,11 +57,16 @@ rel_find_predicates(visitor *v, sql_rel sql_exp *e = n->data, *r = e->r, *r2 = e->f; sql_column *c = NULL; - if (!is_compare(e->type) || !is_theta_exp(e->flag) || r->type != e_atom || !r->l || (r2 && (r2->type != e_atom || !r2->l)) || is_symmetric(e) || !(c = exp_find_column(rel, e->l))) { + if (!is_compare(e->type) || !is_theta_exp(e->flag) || r->type != e_atom || !r->l || (r2 && (r2->type != e_atom || !r2->l)) || is_symmetric(e) || !(c = exp_find_column(rel, e->l))) needall = true; - } else if (isNew(c)) { - continue; - } else { + } + if (!needall) { + for (node *n = parent->exps->h; n; n = n->next) { + sql_exp *e = n->data, *r = e->r, *r2 = e->f; + sql_column *c = exp_find_column(rel, e->l); + + if (isNew(c)) + continue; atom *e1 = r && r->l ? atom_copy(NULL, r->l) : NULL, *e2 = r2 && r2->l ? atom_copy(NULL, r2->l) : NULL; if ((r && r->l && !e1) || (r2 && r2->l && !e2)) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list