Changeset: e7dd8dc3bbc9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e7dd8dc3bbc9
Modified Files:
        sql/storage/objectset.c
        sql/storage/sql_catalog.c
        sql/storage/store.c
Branch: Dec2025
Log Message:

in objectset fix os_has_changes for the savepoint use case, ie check if change 
is from parent


diffs (36 lines):

diff --git a/sql/storage/objectset.c b/sql/storage/objectset.c
--- a/sql/storage/objectset.c
+++ b/sql/storage/objectset.c
@@ -1212,7 +1212,7 @@ os_has_changes(objectset *os, struct sql
        if (n) {
                objectversion *ov = n->ov;
 
-               if (ov && os_atmc_get_state(ov) == active && ov->ts != tr->tid 
&& ov->ts > TRANSACTION_ID_BASE)
+               if (ov && os_atmc_get_state(ov) == active && ov->ts != tr->tid 
&& ov->ts > TRANSACTION_ID_BASE && (!tr->parent || !tr_version_of_parent(tr, 
ov->ts)))
                        return true;
        }
        return false;
diff --git a/sql/storage/sql_catalog.c b/sql/storage/sql_catalog.c
--- a/sql/storage/sql_catalog.c
+++ b/sql/storage/sql_catalog.c
@@ -274,6 +274,7 @@ sql_table *
 find_sql_table_id(sql_trans *tr, sql_schema *s, sqlid id)
 {
        sql_table *t = (sql_table*)os_find_id(s->tables, tr, id);
+
        if (!t && tr->tmp == s) {
                t = (sql_table*) os_find_id(tr->localtmps, tr, id);
                return t;
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -4161,8 +4161,7 @@ sql_trans_create_(sqlstore *store, sql_t
 
        if (!parent) {
                tr->localtmps = os_new(NULL, (destroy_fptr) &table_destroy, 
true, true, false, false, store);
-       }
-       else {
+       } else {
                tr->localtmps = os_dup(parent->localtmps);
        }
 
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to