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]

Reply via email to