Changeset: 1b46a548ef28 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1b46a548ef28
Modified Files:
        sql/storage/bat/bat_storage.c
Branch: default
Log Message:

merged


diffs (156 lines):

diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -326,6 +326,7 @@ delta_update_bat( sql_delta *bat, BAT *t
                }
                if (BATappend(ui, tids, o, true) != GDK_SUCCEED ||
                    BATappend(uv, updates, o, true) != GDK_SUCCEED) {
+                       bat_destroy(o);
                        bat_destroy(ui);
                        bat_destroy(uv);
                        return LOG_ERR;
@@ -550,6 +551,7 @@ dup_delta(sql_trans *tr, sql_delta *obat
                                        return LOG_ERR;
                                bat_set_access(b, BAT_READ);
                                bat->ibid = temp_create(b);
+                               bat_destroy(b);
                        }
                } else { /* old column */
                        bat->ibid = ebat_copy(bat->ibid, bat->ibase, 0);
@@ -714,8 +716,7 @@ delta_append_bat( sql_delta *bat, BAT *i
                if (isVIEW(i) && b->batCacheid == VIEWtparent(i)) {
                        BAT *ic = COLcopy(i, i->ttype, true, TRANSIENT);
                        if (ic == NULL || BATappend(b, ic, NULL, true) != 
GDK_SUCCEED) {
-                               if(ic)
-                                       bat_destroy(ic);
+                               bat_destroy(ic);
                                bat_destroy(b);
                                return LOG_ERR;
                        }
@@ -1338,8 +1339,10 @@ log_create_delta(sql_delta *bat, char tp
                bat->uvbid = e_bat(b->ttype);
        if (bat->uibid == BID_NIL || bat->uvbid == BID_NIL)
                res = LOG_ERR;
-       if (GDKinmemory(0))
+       if (GDKinmemory(0)) {
+               bat_destroy(b);
                return res;
+       }
 
        ok = logger_add_bat(bat_logger, b, bat->name, tpe, id);
        if (ok == GDK_SUCCEED)
@@ -1975,8 +1978,7 @@ clear_delta(sql_trans *tr, sql_delta *ba
                        bat_clear(b);
                        BATcommit(b);
                }
-               if (b)
-                       bat_destroy(b);
+               bat_destroy(b);
        }
        if (bat->bid) {
                b = temp_descriptor(bat->bid);
@@ -2000,8 +2002,7 @@ clear_delta(sql_trans *tr, sql_delta *ba
                        bat_clear(b);
                        BATcommit(b);
                }
-               if (b)
-                       bat_destroy(b);
+               bat_destroy(b);
        }
        if (bat->uvbid) {
                b = temp_descriptor(bat->uvbid);
@@ -2009,8 +2010,7 @@ clear_delta(sql_trans *tr, sql_delta *ba
                        bat_clear(b);
                        BATcommit(b);
                }
-               if (b)
-                       bat_destroy(b);
+               bat_destroy(b);
        }
        bat->cleared = 1;
        bat->ibase = 0;
@@ -2688,9 +2688,8 @@ static int
 update_table(sql_trans *tr, sql_table *ft, sql_table *tt)
 {
        sql_trans *oldest = oldest_active_transaction();
-       sql_table *ot = NULL;
        int ok = LOG_OK;
-       node *n, *m, *o = NULL;
+       node *n, *m;
 
        if (ATOMIC_GET(&store_nr_active) == 1 || ft->base.allocated) {
                if (ATOMIC_GET(&store_nr_active) > 1 && ft->data) { /* move 
delta */
@@ -2709,9 +2708,7 @@ update_table(sql_trans *tr, sql_table *f
                        }
                        while (b && b->wtime >= oldest->stime)
                                b = b->next;
-                       /* find table t->base.stime */
-                       ot = tr_find_table(oldest, tt);
-                       if (b && ot && b->wtime < ot->base.stime) {
+                       if (b && b->next) {
                                /* anything older can go */
                                delayed_destroy_dbat(b->next);
                                b->next = NULL;
@@ -2736,9 +2733,7 @@ update_table(sql_trans *tr, sql_table *f
                        ft->data = NULL;
                }
        }
-       if (ot)
-               o = ot->columns.set->h;
-       for (n = ft->columns.set->h, m = tt->columns.set->h; ok == LOG_OK && n 
&& m; n = n->next, m = m->next, o=(o?o->next:NULL)) {
+       for (n = ft->columns.set->h, m = tt->columns.set->h; ok == LOG_OK && n 
&& m; n = n->next, m = m->next) {
                sql_column *cc = n->data; // TODO: either stick to to/from 
terminology or old/current terminology
                sql_column *oc = m->data;
 
@@ -2746,7 +2741,6 @@ update_table(sql_trans *tr, sql_table *f
                        assert(!cc->base.wtime || oc->base.wtime < 
cc->base.wtime || (oc->base.wtime == cc->base.wtime && oc->base.allocated /* 
alter */));
                        if (ATOMIC_GET(&store_nr_active) > 1 && cc->data) { /* 
move delta */
                                sql_delta *b = cc->data;
-                               sql_column *oldc = NULL;
 
                                if (!oc->data)
                                        oc->base.allocated = cc->base.allocated;
@@ -2762,10 +2756,7 @@ update_table(sql_trans *tr, sql_table *f
                                }
                                while (b && b->wtime >= oldest->stime)
                                        b = b->next;
-                               /* find column c->base.stime */
-                               if (o)
-                                       oldc = o->data;
-                               if (oldc && b && oldc->base.id == cc->base.id 
&& b->wtime < oldc->base.stime) {
+                               if (b && b->next) {
                                        /* anything older can go */
                                        delayed_destroy_bat(b->next);
                                        b->next = NULL;
@@ -2819,10 +2810,7 @@ update_table(sql_trans *tr, sql_table *f
                cc->base.allocated = 0;
        }
        if (ok == LOG_OK && tt->idxs.set) {
-               o = NULL;
-               if (ot)
-                       o = ot->idxs.set->h;
-               for (n = ft->idxs.set->h, m = tt->idxs.set->h; ok == LOG_OK && 
n && m; n = n->next, m = m->next, o=(o?o->next:NULL)) {
+               for (n = ft->idxs.set->h, m = tt->idxs.set->h; ok == LOG_OK && 
n && m; n = n->next, m = m->next) {
                        sql_idx *ci = n->data;
                        sql_idx *oi = m->data;
 
@@ -2835,7 +2823,6 @@ update_table(sql_trans *tr, sql_table *f
                        if (ATOMIC_GET(&store_nr_active) == 1 || 
(ci->base.wtime && ci->base.allocated)) {
                                if (ATOMIC_GET(&store_nr_active) > 1 && 
ci->data) { /* move delta */
                                        sql_delta *b = ci->data;
-                                       sql_idx *oldi = NULL;
 
                                        if (!oi->data)
                                                oi->base.allocated = 
ci->base.allocated;
@@ -2851,10 +2838,7 @@ update_table(sql_trans *tr, sql_table *f
                                        }
                                        while (b && b->wtime >= oldest->stime)
                                                b = b->next;
-                                       /* find idx i->base.stime */
-                                       if (o)
-                                               oldi = o->data;
-                                       if (oldi && b && oldi->base.id == 
ci->base.id && b->wtime < oldi->base.stime) {
+                                       if (b && b->next) {
                                                /* anything older can go */
                                                delayed_destroy_bat(b->next);
                                                b->next = NULL;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to