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