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]