Changeset: d1f8920dd4c7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d1f8920dd4c7
Modified Files:
        sql/backends/monet5/sql.c
        sql/storage/bat/bat_storage.c
Branch: default
Log Message:

Don't leak descriptors


diffs (44 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
@@ -5055,6 +5055,8 @@ do_str_column_vacuum(sql_trans *tr, sql_
                }
        }
        BBPunfix(b->batCacheid);
+       if (bn)
+               BBPunfix(bn->batCacheid);
        return MAL_SUCCEED;
 }
 
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
@@ -4056,9 +4056,12 @@ swap_bats(sql_trans *tr, sql_column *col
        assert(d && d->cs.ts == tr->tid);
        if ((!inTransaction(tr, col->t) && (odelta != d || isTempTable(col->t)) 
&& isGlobal(col->t)) || (!isNew(col->t) && isLocalTemp(col->t)))
                trans_add(tr, &col->base, d, &tc_gc_col, &commit_update_col, 
&log_update_col);
-       sqlid id = col->base.id;
-       bat bid = d->cs.bid;
-       lock_column(tr->store, id);
+       if (d->cs.bid)
+               temp_destroy(d->cs.bid);
+       if (d->cs.uibid)
+               temp_destroy(d->cs.uibid);
+       if (d->cs.uvbid)
+               temp_destroy(d->cs.uvbid);
        d->cs.bid = temp_create(bn);
        d->cs.uibid = 0;
        d->cs.uvbid = 0;
@@ -4066,12 +4069,9 @@ swap_bats(sql_trans *tr, sql_column *col
        d->cs.cleared = 0;
        d->cs.ts = tr->tid;
        d->cs.refcnt = 1;
-       temp_destroy(bid);
-       unlock_column(tr->store, id);
        return LOG_OK;
 }
 
-
 void
 bat_storage_init( store_functions *sf)
 {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to