Changeset: c0f3a12f0ada for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c0f3a12f0ada Modified Files: sql/server/sql_mvc.c Branch: default Log Message:
merged with 2016 diffs (58 lines): diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c --- a/sql/server/sql_mvc.c +++ b/sql/server/sql_mvc.c @@ -247,22 +247,34 @@ sql_trans_deref( sql_trans *tr ) for ( m = s->tables.set->h; m; m = m->next) { sql_table *t = m->data; - if (t->po) + if (t->po) { + sql_table *p = t->po; + t->po = t->po->po; + table_destroy(p); + } if (t->columns.set) for ( o = t->columns.set->h; o; o = o->next) { sql_column *c = o->data; - if (c->po) + if (c->po) { + sql_column *p = c->po; + c->po = c->po->po; + column_destroy(p); + } } if (t->idxs.set) for ( o = t->idxs.set->h; o; o = o->next) { sql_idx *i = o->data; - if (i->po) + if (i->po) { + sql_idx *p = i->po; + i->po = i->po->po; + idx_destroy(p); + } } } } @@ -310,13 +322,14 @@ build up the hash (not copied in the tra tr = tr->parent; if (tr->parent) { store_lock(); - while (tr->parent != NULL && ok == SQL_OK) { + while (ctr->parent->parent != NULL && ok == SQL_OK) { /* first free references to tr objects, ie * c->po = c->po->po etc */ ctr = sql_trans_deref(ctr); + } + while (tr->parent != NULL && ok == SQL_OK) tr = sql_trans_destroy(tr); - } store_unlock(); } cur -> parent = tr; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list