Changeset: 99957028678c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/99957028678c
Modified Files:
sql/storage/bat/bat_storage.c
sql/storage/objectset.c
sql/storage/store.c
Branch: Jul2021
Log Message:
cleanup
small fix for bat leak for tables created and drop within one transaction
diffs (48 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
@@ -2062,6 +2062,8 @@ log_create_del(sql_trans *tr, sql_change
int ok = LOG_OK;
sql_table *t = (sql_table*)change->obj;
+ if (t->base.deleted)
+ return ok;
assert(!isTempTable(t));
ok = log_create_storage(tr, ATOMIC_PTR_GET(&t->data), t->base.id);
if (ok == LOG_OK) {
@@ -2359,7 +2361,6 @@ clear_table(sql_trans *tr, sql_table *t)
sql_column *c = n->data;
BUN sz = count_col(tr, c, 0), clear_ok;
- //sz -= count_del(tr, t, 0);
storage *d = tab_timestamp_storage(tr, t);
sz -= count_deletes_in_range(d->segs->h, tr, 0, sz);
if ((clear_ok = clear_del(tr, t)) >= BUN_NONE - 1)
diff --git a/sql/storage/objectset.c b/sql/storage/objectset.c
--- a/sql/storage/objectset.c
+++ b/sql/storage/objectset.c
@@ -518,10 +518,9 @@ static void
objectversion_destroy_recursive(sqlstore* store, objectversion *ov)
{
if (ov->id_based_older && ov->id_based_older == ov->name_based_older) {
- objectversion_destroy_recursive(store,
ov->id_based_older);
- }
-
- objectversion_destroy(store, ov->os, ov);
+ objectversion_destroy_recursive(store, ov->id_based_older);
+ }
+ objectversion_destroy(store, ov->os, ov);
}
static int
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -4989,6 +4989,7 @@ sql_trans_drop_table(sql_trans *tr, sql_
if (sys_drop_table(tr, t, drop_action))
return -1;
+ t->base.deleted = 1;
if (is_global) {
if (os_del(s->tables, tr, t->base.name, dup_base(&t->base)))
return -2;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list