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]