Changeset: b0a0cc245985 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b0a0cc245985
Modified Files:
        sql/include/sql_catalog.h
        sql/storage/bat/bat_storage.c
Branch: Jul2021
Log Message:

don't log insert/updates/deletes for tables deleted in the same transaction


diffs (41 lines):

diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -197,6 +197,7 @@ typedef struct sql_base {
 } sql_base;
 
 #define isNew(x)          ((x)->base.new)
+#define isDeleted(x)      ((x)->base.deleted)
 
 extern void base_init(sql_allocator *sa, sql_base * b, sqlid id, bool isnew, 
const char *name);
 
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
@@ -3336,7 +3336,7 @@ log_update_col( sql_trans *tr, sql_chang
 {
        sql_column *c = (sql_column*)change->obj;
 
-       if (!isTempTable(c->t) && !tr->parent) {/* don't write save point 
commits */
+       if (!isDeleted(c->t) && !isTempTable(c->t) && !tr->parent) {/* don't 
write save point commits */
                storage *s = ATOMIC_PTR_GET(&c->t->data);
                return tr_log_delta(tr, c->t, ATOMIC_PTR_GET(&c->data), 
s->segs->h, c->base.id);
        }
@@ -3444,7 +3444,7 @@ log_update_idx( sql_trans *tr, sql_chang
 {
        sql_idx *i = (sql_idx*)change->obj;
 
-       if (!isTempTable(i->t) && !tr->parent) { /* don't write save point 
commits */
+       if (!isDeleted(i->t) && !isTempTable(i->t) && !tr->parent) { /* don't 
write save point commits */
                storage *s = ATOMIC_PTR_GET(&i->t->data);
                return tr_log_delta(tr, i->t, ATOMIC_PTR_GET(&i->data), 
s->segs->h, i->base.id);
        }
@@ -3541,7 +3541,7 @@ log_update_del( sql_trans *tr, sql_chang
 {
        sql_table *t = (sql_table*)change->obj;
 
-       if (!isTempTable(t) && !tr->parent) /* don't write save point commits */
+       if (!isDeleted(t) && !isTempTable(t) && !tr->parent) /* don't write 
save point commits */
                return log_storage(tr, t, ATOMIC_PTR_GET(&t->data), t->base.id);
        return LOG_OK;
 }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to