Changeset: 5f2a66b818c4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/5f2a66b818c4 Modified Files: sql/server/rel_unnest.c Branch: Dec2023 Log Message:
move allocation to where needed only. diffs (33 lines): 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 @@ -2629,7 +2629,6 @@ static inline sql_exp * rewrite_rank(visitor *v, sql_rel *rel, sql_exp *e, int depth) { sql_rel *rell = NULL; - int needed = 0; if (!is_simple_project(rel->op) || e->type != e_func || list_length(e->r) < 2 /* e->r means window function */) return e; @@ -2639,7 +2638,7 @@ rewrite_rank(visitor *v, sql_rel *rel, s list *l = e->l, *r = e->r, *gbe = r->h->data, *obe = r->h->next->data; e->card = (rel->card == CARD_AGGR) ? CARD_AGGR : CARD_MULTI; /* After the unnesting, the cardinality of the window function becomes larger */ - needed = (gbe || obe); + int needed = (gbe || obe); if (l) for (node *n = l->h; n && !needed; n = n->next) { sql_exp *e = n->data; @@ -2660,10 +2659,9 @@ rewrite_rank(visitor *v, sql_rel *rel, s } /* The following array remembers the original positions of gbe and obe expressions to replace them in order later at diff_replace_arguments */ - int gbeoffset = list_length(gbe), i = 0, added = 0; - int *pos = SA_NEW_ARRAY(v->sql->ta, int, gbeoffset + list_length(obe)); - if (gbe || obe) { + int gbeoffset = list_length(gbe), i = 0, added = 0; + int *pos = SA_NEW_ARRAY(v->sql->ta, int, gbeoffset + list_length(obe)); if (gbe) for (i = 0 ; i < gbeoffset ; i++) pos[i] = i; _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org