Changeset: f44ef6f333f8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/f44ef6f333f8 Modified Files: sql/server/sql_atom.c sql/storage/sql_catalog.c Branch: default Log Message:
Use sql allocator to copy null value and pass right pointer diffs (32 lines): diff --git a/sql/server/sql_atom.c b/sql/server/sql_atom.c --- a/sql/server/sql_atom.c +++ b/sql/server/sql_atom.c @@ -334,7 +334,7 @@ atom_general_ptr( sql_allocator *sa, sql const char *p = (const char*) v; a->data.len = strLen(p); a->data.val.sval = sa_alloc(sa, a->data.len); - memcpy(a->data.val.sval, v, a->data.len); + memcpy(a->data.val.sval, p, a->data.len); } else { a->data.len = ATOMlen(a->data.vtype, v); a->data.val.pval = sa_alloc(sa, a->data.len); diff --git a/sql/storage/sql_catalog.c b/sql/storage/sql_catalog.c --- a/sql/storage/sql_catalog.c +++ b/sql/storage/sql_catalog.c @@ -507,11 +507,13 @@ SA_VALcopy(sql_allocator *sa, ValPtr d, if (!ATOMextern(s->vtype)) { *d = *s; } else if (s->val.pval == 0) { - d->val.pval = ATOMnil(s->vtype); + const void *p = ATOMnilptr(s->vtype); + d->vtype = s->vtype; + d->len = ATOMlen(d->vtype, p); + d->val.pval = sa_alloc(sa, d->len); if (d->val.pval == NULL) return NULL; - d->vtype = s->vtype; - d->len = ATOMlen(d->vtype, VALptr(d)); + memcpy(d->val.pval, p, d->len); } else if (s->vtype == TYPE_str) { const char *p = s->val.sval; d->vtype = TYPE_str; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list