Changeset: 0f55ecdd24ad for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/0f55ecdd24ad Modified Files: sql/storage/bat/bat_storage.c Branch: Jan2022 Log Message:
small fix of the global temporary table insert/delete transactions diffs (39 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 @@ -2264,7 +2264,7 @@ storage_delete_val(sql_trans *tr, sql_ta } } unlock_table(tr->store, t->base.id); - if ((!inTransaction(tr, t) && !in_transaction && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) + if ((!inTransaction(tr, t) && (!in_transaction || isTempTable(t)) && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) trans_add(tr, &t->base, s, &tc_gc_del, &commit_update_del, isTempTable(t)?NULL:&log_update_del); return LOG_OK; } @@ -2382,7 +2382,7 @@ storage_delete_bat(sql_trans *tr, sql_ta } if (i != oi) bat_destroy(i); - if ((!inTransaction(tr, t) && !in_transaction && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) + if ((!inTransaction(tr, t) && (!in_transaction || isTempTable(t)) && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) trans_add(tr, &t->base, s, &tc_gc_del, &commit_update_del, isTempTable(t)?NULL:&log_update_del); return ok; } @@ -4310,7 +4310,7 @@ claim_segmentsV2(sql_trans *tr, sql_tabl unlock_table(tr->store, t->base.id); /* hard to only add this once per transaction (probably want to change to once per new segment) */ - if ((!inTransaction(tr, t) && !in_transaction && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) { + if ((!inTransaction(tr, t) && (!in_transaction || isTempTable(t)) && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) { trans_add(tr, &t->base, s, &tc_gc_del, &commit_update_del, isTempTable(t)?NULL:&log_update_del); in_transaction = true; } @@ -4386,7 +4386,7 @@ claim_segments(sql_trans *tr, sql_table unlock_table(tr->store, t->base.id); /* hard to only add this once per transaction (probably want to change to once per new segment) */ - if ((!inTransaction(tr, t) && !in_transaction && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) { + if ((!inTransaction(tr, t) && (!in_transaction || isTempTable(t)) && isGlobal(t)) || (!isNew(t) && isLocalTemp(t))) { trans_add(tr, &t->base, s, &tc_gc_del, &commit_update_del, isTempTable(t)?NULL:&log_update_del); in_transaction = true; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list