Changeset: 3198138da57e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3198138da57e
Modified Files:
        sql/storage/objectset.c
        sql/storage/store.c
Branch: nospare
Log Message:

use find_name in objectverions_destroy (for object sets with unique names)


diffs (36 lines):

diff --git a/sql/storage/objectset.c b/sql/storage/objectset.c
--- a/sql/storage/objectset.c
+++ b/sql/storage/objectset.c
@@ -184,6 +184,8 @@ os_append(objectset *os, void *data)
        return os_append_node(os, n);
 }
 
+static object_node * find_name(objectset *os, const char *name);
+
 static void
 objectversion_destroy(sqlstore *store, objectversion *ov, ulng commit_ts, ulng 
oldest)
 {
@@ -204,7 +206,11 @@ objectversion_destroy(sqlstore *store, o
                newer->older = older;
 
        if (!newer && ov->os) {
-               object_node *on = find_id(ov->os, ov->obj->id);
+               object_node *on = NULL;
+               if (ov->os->unique)
+                       on = find_name(ov->os, ov->obj->name);
+               else
+                       on = find_id(ov->os, ov->obj->id);
                assert(on->data == ov);
                if (on)
                        os_remove_node(ov->os, on);
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3124,6 +3124,7 @@ schema_dup(sql_trans *tr, sql_schema *s,
        os_iterator(&oi, s->tables, tr, NULL);
        for (sql_base *b = oi_next(&oi); b; b = oi_next(&oi))
                os_add(ns->tables, tr, b->name, (deep)?(sql_base*)table_dup(tr, 
(sql_table*)b, s, deep):base_incref(b));
+       /* TODO copy all the other objects, types, funcs, idxs, keys, triggers 
and parts */
        if (!deep && s->keys)
                ns->keys = os_dup(s->keys);
        return ns;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to