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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list