Changeset: fafbf477601e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fafbf477601e
Modified Files:
sql/server/rel_optimizer.c
Branch: Apr2011
Log Message:
Implemented missing cases for comparison.
This fixes crashes on Solaris.
diffs (32 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
@@ -1083,6 +1083,14 @@
if (!l || !r)
return NULL;
return exp_or(sql->sa, l, r);
+ } else if (e->flag == cmp_in || e->flag == cmp_notin) {
+ list *r;
+
+ l = _exp_push_down(sql, e->l, f, t);
+ r = exps_push_down(sql, e->r, f, t);
+ if (!l || !r)
+ return NULL;
+ return exp_in(sql->sa, l, r, e->flag);
} else {
l = _exp_push_down(sql, e->l, f, t);
r = _exp_push_down(sql, e->r, f, t);
@@ -2933,6 +2941,13 @@
l = e->r;
for (n = l->h; n != NULL; n = n->next)
exp_mark_used(subrel, n->data);
+ } else if (e->flag == cmp_in || e->flag == cmp_notin) {
+ list *l = e->r;
+ node *n;
+
+ exp_mark_used(subrel, e->l);
+ for (n = l->h; n != NULL; n = n->next)
+ exp_mark_used(subrel, n->data);
} else {
exp_mark_used(subrel, e->l);
exp_mark_used(subrel, e->r);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list