Changeset: 3f2d29873c78 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3f2d29873c78 Modified Files: sql/storage/store.c Branch: Aug2024 Log Message:
move drop bats code into the sys_drop_* functions, should solve bat leaks on disk diffs (74 lines): diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -4382,6 +4382,11 @@ sys_drop_idx(sql_trans *tr, sql_idx * i, return res; } + i->base.deleted = 1; + if (!isNew(i) && !isTempTable(i->t)) + if ((res = store->storage_api.drop_idx(tr, (sql_idx*)dup_base(&i->base)))) + return res; + /* remove idx from schema and table */ if (isGlobal(i->t) && (res = os_del(i->t->s->idxs, tr, i->base.name, dup_base(&i->base)))) return res; @@ -4598,6 +4603,11 @@ sys_drop_column(sql_trans *tr, sql_colum if ((res = sys_drop_default_object(tr, col, drop_action))) return res; + col->base.deleted = 1; + if (!isNew(col) && !isTempTable(col->t)) + if ((res = store->storage_api.drop_col(tr, (sql_column*)dup_base(&col->base)))) + return res; + if (drop_action && (res = sql_trans_drop_all_dependencies(tr, col->base.id, COLUMN_DEPENDENCY))) return res; if (col->type.type->s && (res = sql_trans_drop_dependency(tr, col->type.type->base.id, col->base.id, TYPE_DEPENDENCY))) @@ -4808,6 +4818,10 @@ sys_drop_table(sql_trans *tr, sql_table if ((res = sys_drop_columns(tr, t, drop_action))) return res; + if (isTable(t) && !isNew(t)) + if ((res = store->storage_api.drop_del(tr, t))) + return res; + if (drop_action && (res = sql_trans_drop_all_dependencies(tr, t->base.id, !isView(t) ? TABLE_DEPENDENCY : VIEW_DEPENDENCY))) return res; return res; @@ -6079,11 +6093,6 @@ sql_trans_drop_table(sql_trans *tr, sql_ if (t != gt && (res = os_del(tr->localtmps, tr, t->base.name, dup_base(&t->base)))) return res; - sqlstore *store = tr->store; - if (isTable(t) && !isNew(t)) - if ((res = store->storage_api.drop_del(tr, t))) - return res; - if (drop_action == DROP_CASCADE_START && tr->dropped) { list_destroy(tr->dropped); tr->dropped = NULL; @@ -6287,11 +6296,6 @@ sql_trans_drop_column(sql_trans *tr, sql if ((res = sys_drop_column(tr, col, drop_action))) return res; - col->base.deleted = 1; - if (!isNew(col) && !isTempTable(col->t)) - if ((res = store->storage_api.drop_col(tr, (sql_column*)dup_base(&col->base)))) - return res; - if (isNew(col)) { /* remove create from changes */ trans_del(tr, &col->base); if (!isNew(col->t)) @@ -6903,11 +6907,6 @@ sql_trans_drop_idx(sql_trans *tr, sql_sc if ((res = store_reset_sql_functions(tr, i->t->base.id))) /* reset sql functions depending on the table */ return res; - i->base.deleted = 1; - if (!isNew(i) && !isTempTable(i->t)) - if ((res = store->storage_api.drop_idx(tr, (sql_idx*)dup_base(&i->base)))) - return res; - node *n = ol_find_name(i->t->idxs, i->base.name); if (n) ol_del(i->t->idxs, store, n); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org