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

Reply via email to