Changeset: 93ea08a1e18d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=93ea08a1e18d Modified Files: sql/storage/store.c Branch: Apr2019 Log Message:
make sure the type of a column is allocator local (ie only point too pointers in the transactions local allocator (or into direct malloced space) diffs (23 lines): diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -2602,6 +2602,19 @@ column_dup(sql_trans *tr, int flags, sql base_init(sa, &c->base, oc->base.id, tr_flag(&oc->base, flags), oc->base.name); obj_ref(oc,c,flags); c->type = oc->type; + if (c->type.type->s) { /* user type */ + sql_schema *s = t->s; + sql_type *lt = NULL; + + if (s->base.id == c->type.type->s->base.id) { + lt = sql_trans_bind_type(tr, s, c->type.type->base.name); + } else { + lt = sql_trans_bind_type(tr, find_sql_schema_id(tr, c->type.type->s->base.id), c->type.type->base.name); + } + if (lt == NULL) + GDKfatal("SQL type %s missing", c->type.type->base.name); + sql_init_subtype(&c->type, lt, c->type.digits, c->type.scale); + } c->def = NULL; if (oc->def) c->def = sa_strdup(sa, oc->def); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list