Changeset: 6c6d9ba787be for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6c6d9ba787be
Modified Files:
sql/backends/monet5/rel_physical.c
sql/server/rel_unnest.c
Branch: pp_hashjoin
Log Message:
make sure not to lose function, cmp and converts on topn push down
diffs (28 lines):
diff --git a/sql/backends/monet5/rel_physical.c
b/sql/backends/monet5/rel_physical.c
--- a/sql/backends/monet5/rel_physical.c
+++ b/sql/backends/monet5/rel_physical.c
@@ -1448,7 +1448,7 @@ rel_push_down_topn(visitor *v, sql_rel *
assert(obe->type == e_column);
sql_exp *ne = exps_bind_nid(oexps, obe->nid);
- if (ne && ne->type == e_func)
+ if (ne && (ne->type == e_func || ne->type ==
e_cmp || ne->type == e_convert))
return rel;
}
orderby->exps = pexps;
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
@@ -3619,8 +3619,11 @@ rewrite_column(visitor *v, sql_exp *e, s
{
sql_exp *ne = repr_find(v, info->repr, e);
if (ne && ne != e && ne->alias.label > 0) {
- if (e->freevar && e->alias.label == e->nid)
+ if (e->freevar && e->alias.label == e->nid) {
e->alias = ne->alias;
+ e->l = ne->l;
+ e->r = ne->r;
+ }
e->nid = ne->alias.label;
e->freevar = 0;
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]