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

Reply via email to