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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list