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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list