Changeset: 751f0c229b65 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/751f0c229b65
Modified Files:
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cat.c
        sql/common/sql_list.c
        sql/include/sql_catalog.h
        sql/include/sql_list.h
        sql/server/rel_propagate.c
        sql/server/sql_partition.c
        sql/storage/objectset.c
        sql/storage/sql_catalog.c
        sql/storage/store.c
Branch: default
Log Message:

removal of allocator in storage layer, as its a shared structure.


diffs (truncated from 1479 to 300 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -391,7 +391,7 @@ create_table_or_view(mvc *sql, char *sna
                char *err = NULL;
 
                _DELETE(nt->part.pexp->exp);
-               nt->part.pexp->exp = SA_STRDUP(sql->session->tr->sa, 
t->part.pexp->exp);
+               nt->part.pexp->exp = _STRDUP(t->part.pexp->exp);
                err = bootstrap_partition_expression(sql, nt, 1);
                sa_reset(sql->ta);
                if (err) {
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -390,7 +390,7 @@ alter_table_add_value_partition(mvc *sql
                msg = 
createException(SQL,"sql.alter_table_add_value_partition",SQLSTATE(42000) 
"ALTER TABLE: no values in the list");
                goto finish;
        }
-       values = list_new(sql->session->tr->sa, (fdestroy) &part_value_destroy);
+       values = list_create((fdestroy) &part_value_destroy);
        for ( i = pci->retc+6; i < pci->argc; i++){
                sql_part_value *nextv = NULL;
                ValRecord *vnext = &(stk)->stk[(pci)->argv[i]];
@@ -404,8 +404,8 @@ alter_table_add_value_partition(mvc *sql
                        goto finish;
                }
 
-               nextv = SA_ZNEW(sql->session->tr->sa, sql_part_value); /* 
instantiate the part value */
-               nextv->value = SA_NEW_ARRAY(sql->session->tr->sa, char, len);
+               nextv = ZNEW(sql_part_value); /* instantiate the part value */
+               nextv->value = NEW_ARRAY(char, len);
                memcpy(nextv->value, pnext, len);
                nextv->length = len;
 
diff --git a/sql/common/sql_list.c b/sql/common/sql_list.c
--- a/sql/common/sql_list.c
+++ b/sql/common/sql_list.c
@@ -68,6 +68,14 @@ sa_list_append(sql_allocator *sa, list *
 }
 
 list *
+list_add(list *l, void *data)
+{
+       if (!l)
+               l = list_create(NULL);
+       return list_append(l, data);
+}
+
+list *
 list_new(sql_allocator *sa, fdestroy destroy)
 {
        list *l = (sa)?SA_NEW(sa, list):MNEW(list);
diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -327,7 +327,6 @@ typedef struct sql_trans {
        sql_catalog *cat;
        sql_schema *tmp;        /* each session has its own tmp schema */
        changeset localtmps;
-       sql_allocator *sa;      /* transaction allocator */
 
        struct sql_trans *parent;       /* multilevel transaction support */
 } sql_trans;
diff --git a/sql/include/sql_list.h b/sql/include/sql_list.h
--- a/sql/include/sql_list.h
+++ b/sql/include/sql_list.h
@@ -41,6 +41,7 @@ sql_export list *sa_list(sql_allocator *
 extern list *list_new(sql_allocator *sa, fdestroy destroy);
 
 extern list *sa_list_append( sql_allocator *sa, list *l, void *data);
+extern list *list_add( list *l, void *data);
 
 extern void list_destroy(list *l);
 extern void list_destroy2(list *l, void *data);
diff --git a/sql/server/rel_propagate.c b/sql/server/rel_propagate.c
--- a/sql/server/rel_propagate.c
+++ b/sql/server/rel_propagate.c
@@ -758,7 +758,7 @@ rel_generate_subinserts(sql_query *query
                        } else {
                                bool max_equal_min = ATOMcmp(tpe, 
pt->part.range.maxvalue, pt->part.range.minvalue) == 0;
 
-                               full_range = range = max_equal_min ? 
+                               full_range = range = max_equal_min ?
                                        exp_compare(sql->sa, le, 
exp_atom(sql->sa, atom_general_ptr(sql->sa, &tp, pt->part.range.minvalue)), 
cmp_equal) :
                                        exp_compare2(sql->sa, le, 
exp_atom(sql->sa, atom_general_ptr(sql->sa, &tp, pt->part.range.minvalue)),
                                                                                
          exp_atom(sql->sa, atom_general_ptr(sql->sa, &tp, 
pt->part.range.maxvalue)), 1, 0);
diff --git a/sql/server/sql_partition.c b/sql/server/sql_partition.c
--- a/sql/server/sql_partition.c
+++ b/sql/server/sql_partition.c
@@ -329,7 +329,6 @@ initialize_sql_parts(mvc *sql, sql_table
        str res = NULL;
        sql_subtype found;
        int localtype;
-       sql_trans *tr = sql->session->tr;
 
        if (isPartitionedByExpressionTable(mt) && (res = 
bootstrap_partition_expression(sql, mt, 0)) != NULL)
                return res;
@@ -352,7 +351,7 @@ initialize_sql_parts(mvc *sql, sql_table
                                        if (ok)
                                                ok = VALconvert(localtype, 
&vvalue);
                                        if (ok) {
-                                               v->value = SA_NEW_ARRAY(tr->sa, 
char, vvalue.len);
+                                               v->value = NEW_ARRAY(char, 
vvalue.len);
                                                memcpy(v->value, 
VALget(&vvalue), vvalue.len);
                                                v->length = vvalue.len;
                                        }
@@ -380,8 +379,8 @@ initialize_sql_parts(mvc *sql, sql_table
                                                const void *nil_ptr = 
ATOMnilptr(localtype);
                                                size_t nil_len = 
ATOMlen(localtype, nil_ptr);
 
-                                               p->part.range.minvalue = 
SA_NEW_ARRAY(tr->sa, char, nil_len);
-                                               p->part.range.maxvalue = 
SA_NEW_ARRAY(tr->sa, char, nil_len);
+                                               p->part.range.minvalue = 
NEW_ARRAY(char, nil_len);
+                                               p->part.range.maxvalue = 
NEW_ARRAY(char, nil_len);
                                                memcpy(p->part.range.minvalue, 
nil_ptr, nil_len);
                                                memcpy(p->part.range.maxvalue, 
nil_ptr, nil_len);
                                                p->part.range.minlength = 
nil_len;
@@ -391,8 +390,8 @@ initialize_sql_parts(mvc *sql, sql_table
                                                if (ok)
                                                        ok = 
VALconvert(localtype, &vmax);
                                                if (ok) {
-                                                       p->part.range.minvalue 
= SA_NEW_ARRAY(tr->sa, char, vmin.len);
-                                                       p->part.range.maxvalue 
= SA_NEW_ARRAY(tr->sa, char, vmax.len);
+                                                       p->part.range.minvalue 
= NEW_ARRAY(char, vmin.len);
+                                                       p->part.range.maxvalue 
= NEW_ARRAY(char, vmax.len);
                                                        
memcpy(p->part.range.minvalue, VALget(&vmin), vmin.len);
                                                        
memcpy(p->part.range.maxvalue, VALget(&vmax), vmax.len);
                                                        p->part.range.minlength 
= vmin.len;
diff --git a/sql/storage/objectset.c b/sql/storage/objectset.c
--- a/sql/storage/objectset.c
+++ b/sql/storage/objectset.c
@@ -630,6 +630,7 @@ tc_commit_objectversion(sql_trans *tr, s
 objectset *
 os_new(sql_allocator *sa, destroy_fptr destroy, bool temporary, bool unique, 
bool concurrent, sql_store store)
 {
+       assert(!sa);
        objectset *os = SA_NEW(sa, objectset);
        *os = (objectset) {
                .refcnt = 1,
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
@@ -54,7 +54,7 @@ static void *
 void
 trans_add(sql_trans *tr, sql_base *b, void *data, tc_cleanup_fptr cleanup, 
tc_commit_fptr commit, tc_log_fptr log)
 {
-       sql_change *change = SA_NEW(tr->sa, sql_change);
+       sql_change *change = MNEW(sql_change);
 
        *change = (sql_change) {
                .obj = b,
@@ -64,7 +64,7 @@ trans_add(sql_trans *tr, sql_base *b, vo
                .log = log,
        };
        MT_lock_set(&tr->lock);
-       tr->changes = sa_list_append(tr->sa, tr->changes, change);
+       tr->changes = list_add(tr->changes, change);
        if (log)
                tr->logchanges++;
        MT_lock_unset(&tr->lock);
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -315,7 +315,10 @@ sql_trans_add_predicate(sql_trans* tr, s
                predicate_destroy(tr->store, p);
                return LOG_ERR;
        }
-       list_append(tr->predicates, p);
+       if (!list_append(tr->predicates, p)) {
+               predicate_destroy(tr->store, p);
+               return LOG_ERR;
+       }
        return LOG_OK;
 }
 
@@ -334,7 +337,10 @@ sql_trans_add_dependency(sql_trans* tr, 
                _DELETE(dep);
                return LOG_ERR;
        }
-       list_append(tr->dependencies, dep);
+       if (!list_append(tr->dependencies, dep)) {
+               _DELETE(dep);
+               return LOG_ERR;
+       }
        return LOG_OK;
 }
 
@@ -353,14 +359,17 @@ sql_trans_add_dependency_change(sql_tran
                _DELETE(dep);
                return LOG_ERR;
        }
-       list_append(tr->depchanges, dep);
+       if (!list_append(tr->depchanges, dep)) {
+               _DELETE(dep);
+               return LOG_ERR;
+       }
        return LOG_OK;
 }
 
 static void
 load_keycolumn(sql_trans *tr, sql_key *k, res_table *rt_keycols/*, oid rid*/)
 {
-       sql_kc *kc = SA_ZNEW(tr->sa, sql_kc);
+       sql_kc *kc = ZNEW(sql_kc);
        sql_schema *syss = find_sql_schema(tr, "sys");
        sql_table *objects = find_sql_table(tr, syss, "objects");
        sqlstore *store = tr->store;
@@ -380,13 +389,13 @@ load_key(sql_trans *tr, sql_table *t, re
        sqlstore *store = tr->store;
 
        key_type ktype = (key_type) *(int*) 
store->table_api.table_fetch_value(rt_keys, find_sql_column(keys, "type"));
-       sql_key *nk = (ktype != fkey)?(sql_key*)SA_ZNEW(tr->sa, 
sql_ukey):(sql_key*)SA_ZNEW(tr->sa, sql_fkey);
+       sql_key *nk = (ktype != 
fkey)?(sql_key*)ZNEW(sql_ukey):(sql_key*)ZNEW(sql_fkey);
        sqlid kid = *(sqlid*) store->table_api.table_fetch_value(rt_keys, 
find_sql_column(keys, "id"));
        str v = (char*) store->table_api.table_fetch_value(rt_keys, 
find_sql_column(keys, "name"));
 
-       base_init(tr->sa, &nk->base, kid, 0, v);
+       base_init(NULL, &nk->base, kid, 0, v);
        nk->type = ktype;
-       nk->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
+       nk->columns = list_create((fdestroy) &kc_destroy);
        nk->t = t;
 
        if (ktype == ukey || ktype == pkey) {
@@ -422,7 +431,7 @@ load_key(sql_trans *tr, sql_table *t, re
 static void
 load_idxcolumn(sql_trans *tr, sql_idx * i, res_table *rt_idxcols/*, oid rid*/)
 {
-       sql_kc *kc = SA_ZNEW(tr->sa, sql_kc);
+       sql_kc *kc = ZNEW(sql_kc);
        sql_schema *syss = find_sql_schema(tr, "sys");
        sql_table *objects = find_sql_table(tr, syss, "objects");
        sqlstore *store = tr->store;
@@ -437,7 +446,7 @@ load_idxcolumn(sql_trans *tr, sql_idx * 
 static sql_idx *
 load_idx(sql_trans *tr, sql_table *t, res_table *rt_idx, res_table 
*rt_idxcols/*, oid rid*/)
 {
-       sql_idx *ni = SA_ZNEW(tr->sa, sql_idx);
+       sql_idx *ni = ZNEW(sql_idx);
        sql_schema *syss = find_sql_schema(tr, "sys");
        sql_table *idxs = find_sql_table(tr, syss, "idxs");
        sql_table *objects = find_sql_table(tr, syss, "objects");
@@ -445,9 +454,9 @@ load_idx(sql_trans *tr, sql_table *t, re
 
        sqlid iid = *(sqlid*)store->table_api.table_fetch_value(rt_idx, 
find_sql_column(idxs, "id"));
        str v = (char*)store->table_api.table_fetch_value(rt_idx, 
find_sql_column(idxs, "name"));
-       base_init(tr->sa, &ni->base, iid, 0, v);
+       base_init(NULL, &ni->base, iid, 0, v);
        ni->type = (idx_type) *(int*) 
store->table_api.table_fetch_value(rt_idx, find_sql_column(idxs, "type"));
-       ni->columns = list_new(tr->sa, (fdestroy) &kc_destroy);
+       ni->columns = list_create((fdestroy) &kc_destroy);
        ni->t = t;
        ni->key = NULL;
        ATOMIC_PTR_INIT(&ni->data, NULL);
@@ -467,7 +476,7 @@ load_idx(sql_trans *tr, sql_table *t, re
 static void
 load_triggercolumn(sql_trans *tr, sql_trigger * i, res_table *rt_triggercols)
 {
-       sql_kc *kc = SA_ZNEW(tr->sa, sql_kc);
+       sql_kc *kc = ZNEW(sql_kc);
        sql_schema *syss = find_sql_schema(tr, "sys");
        sql_table *objects = find_sql_table(tr, syss, "objects");
        sqlstore *store = tr->store;
@@ -481,7 +490,7 @@ load_triggercolumn(sql_trans *tr, sql_tr
 static sql_trigger *
 load_trigger(sql_trans *tr, sql_table *t, res_table *rt_triggers, res_table 
*rt_triggercols)
 {
-       sql_trigger *nt = SA_ZNEW(tr->sa, sql_trigger);
+       sql_trigger *nt = ZNEW(sql_trigger);
        sql_schema *syss = find_sql_schema(tr, "sys");
        sql_table *triggers = find_sql_table(tr, syss, "triggers");
        sql_table *objects = find_sql_table(tr, syss, "objects");
@@ -489,7 +498,7 @@ load_trigger(sql_trans *tr, sql_table *t
 
        sqlid tid = *(sqlid*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "id"));
        str v = (char*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "name"));
-       base_init(tr->sa, &nt->base, tid, 0, v);
+       base_init(NULL, &nt->base, tid, 0, v);
 
        nt->time = *(sht*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "time"));
        nt->orientation = 
*(sht*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "orientation"));
@@ -497,19 +506,19 @@ load_trigger(sql_trans *tr, sql_table *t
 
        v = (char*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "old_name"));
        if (!strNil(v))
-               nt->old_name = SA_STRDUP(tr->sa, v);
+               nt->old_name =_STRDUP(v);
        v = (char*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "new_name"));
        if (!strNil(v))
-               nt->new_name = SA_STRDUP(tr->sa, v);
+               nt->new_name =_STRDUP(v);
        v = (char*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "condition"));
        if (!strNil(v))
-               nt->condition = SA_STRDUP(tr->sa, v);
+               nt->condition =_STRDUP(v);
        v = (char*)store->table_api.table_fetch_value(rt_triggers, 
find_sql_column(triggers, "statement"));
        if (!strNil(v))
-               nt->statement = SA_STRDUP(tr->sa, v);
+               nt->statement =_STRDUP(v);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to