Changeset: 82365f63af25 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/82365f63af25
Modified Files:
        sql/server/rel_rel.c
Branch: default
Log Message:

Now that inplacing relations is becoming more common, make sure some properties 
always get reset


diffs (102 lines):

diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -456,20 +456,27 @@ rel_first_column(mvc *sql, sql_rel *r)
        return NULL;
 }
 
+static void
+rel_inplace_reset_props(sql_rel *rel)
+{
+       rel->flag = 0;
+       rel->attr = NULL;
+       reset_dependent(rel);
+       set_processed(rel);
+}
+
 sql_rel *
 rel_inplace_basetable(sql_rel *rel, sql_rel *bt)
 {
        assert(is_basetable(bt->op));
 
        rel_destroy_(rel);
-       set_processed(rel);
+       rel_inplace_reset_props(rel);
        rel->l = bt->l;
        rel->r = bt->r;
-       rel->attr = NULL;
        rel->op = op_basetable;
        rel->exps = bt->exps;
        rel->card = CARD_MULTI;
-       rel->flag = 0;
        rel->nrcols = bt->nrcols;
        return rel;
 }
@@ -478,14 +485,12 @@ sql_rel *
 rel_inplace_setop(mvc *sql, sql_rel *rel, sql_rel *l, sql_rel *r, 
operator_type setop, list *exps)
 {
        rel_destroy_(rel);
+       rel_inplace_reset_props(rel);
        rel->l = l;
        rel->r = r;
-       rel->attr = NULL;
        rel->op = setop;
        rel->card = CARD_MULTI;
-       rel->flag = 0;
        rel_setop_set_exps(sql, rel, exps, false);
-       set_processed(rel);
        return rel;
 }
 
@@ -502,15 +507,12 @@ rel_inplace_project(sql_allocator *sa, s
        } else {
                rel_destroy_(rel);
        }
-       set_processed(rel);
-
+       rel_inplace_reset_props(rel);
        rel->l = l;
        rel->r = NULL;
-       rel->attr = NULL;
        rel->op = op_project;
        rel->exps = e;
        rel->card = CARD_MULTI;
-       rel->flag = 0;
        if (l) {
                rel->nrcols = l->nrcols;
                assert (exps_card(rel->exps) <= rel->card);
@@ -522,14 +524,12 @@ sql_rel *
 rel_inplace_select(sql_rel *rel, sql_rel *l, list *exps)
 {
        rel_destroy_(rel);
-       set_processed(rel);
+       rel_inplace_reset_props(rel);
        rel->l = l;
        rel->r = NULL;
-       rel->attr = NULL;
        rel->op = op_select;
        rel->exps = exps;
        rel->card = exps_card(exps);
-       rel->flag = 0;
        rel->card = CARD_ATOM; /* no relation */
        if (l) {
                rel->card = l->card;
@@ -544,17 +544,15 @@ sql_rel *
 rel_inplace_groupby(sql_rel *rel, sql_rel *l, list *groupbyexps, list *exps )
 {
        rel_destroy_(rel);
+       rel_inplace_reset_props(rel);
        rel->card = CARD_ATOM;
        if (groupbyexps)
                rel->card = CARD_AGGR;
        rel->l = l;
        rel->r = groupbyexps;
-       rel->attr = NULL;
        rel->exps = exps;
        rel->nrcols = l->nrcols;
        rel->op = op_groupby;
-       rel->flag = 0;
-       set_processed(rel);
        return rel;
 }
 
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to