Changeset: f067182d633c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f067182d633c
Modified Files:
        sql/backends/monet5/sql_upgrades.c
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
        
sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128
Branch: Dec2025
Log Message:

Before setting table READ ONLY, commit; after commit first start new 
transaction.


diffs (262 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -19,6 +19,7 @@
 #include "gdk_time.h"
 #include <unistd.h>
 #include "sql_upgrades.h"
+#include "sql_scenario.h"
 #include "rel_rel.h"
 #include "rel_semantic.h"
 
@@ -2201,12 +2202,13 @@ sql_update_sep2022(Client c, mvc *sql, s
        if ((b = BBPquickdesc(output->cols[0].b)) && BATcount(b) > 0) {
                pos = snprintf(buf, bufsize,
                        "ALTER TABLE sys.keywords SET READ WRITE;\n"
-                       "DELETE FROM sys.keywords WHERE keyword IN 
('LOCKED');\n");
+                       "DELETE FROM sys.keywords WHERE keyword IN 
('LOCKED');\n"
+                       "COMMIT;\n");
                assert(pos < bufsize);
                printf("Running database upgrade commands:\n%s\n", buf);
                fflush(stdout);
                err = SQLstatementIntern(c, buf, "update", true, false, NULL);
-               if (err == MAL_SUCCEED) {
+               if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == MAL_SUCCEED) 
{
                        pos = snprintf(buf, bufsize, "ALTER TABLE sys.keywords 
SET READ ONLY;\n");
                        assert(pos < bufsize);
                        printf("Running database upgrade commands:\n%s\n", buf);
@@ -2230,12 +2232,13 @@ sql_update_sep2022(Client c, mvc *sql, s
        if ((b = BBPquickdesc(output->cols[0].b)) && BATcount(b) == 0) {
                pos = snprintf(buf, bufsize,
                                "ALTER TABLE sys.table_types SET READ WRITE;\n"
-                               "INSERT INTO sys.table_types VALUES (7, 
'UNLOGGED TABLE');\n");
+                               "INSERT INTO sys.table_types VALUES (7, 
'UNLOGGED TABLE');\n"
+                               "COMMIT;\n");
                assert(pos < bufsize);
                printf("Running database upgrade commands:\n%s\n", buf);
                fflush(stdout);
                err = SQLstatementIntern(c, buf, "update", true, false, NULL);
-               if (err == MAL_SUCCEED) {
+               if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == MAL_SUCCEED) 
{
                        pos = snprintf(buf, bufsize, "ALTER TABLE 
sys.table_types SET READ ONLY;\n");
                        assert(pos < bufsize);
                        printf("Running database upgrade commands:\n%s\n", buf);
@@ -3072,7 +3075,7 @@ sql_update_dec2023(Client c, mvc *sql, s
                printf("Running database upgrade commands:\n%s\n", query);
                fflush(stdout);
                err = SQLstatementIntern(c, query, "update", true, false, NULL);
-               if (err == MAL_SUCCEED) {
+               if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == MAL_SUCCEED) 
{
                        static const char query2[] = "alter table 
sys.function_languages set read only;\n";
                        printf("Running database upgrade commands:\n%s\n", 
query2);
                        fflush(stdout);
@@ -3744,7 +3747,7 @@ sql_update_dec2023_sp4(Client c, mvc *sq
                        printf("Running database upgrade commands:\n%s\n", 
query);
                        fflush(stdout);
                        err = SQLstatementIntern(c, query, "update", true, 
false, NULL);
-                       if (err == MAL_SUCCEED) {
+                       if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == 
MAL_SUCCEED) {
                                static const char query2[] =
                                        "create temporary table d as (select 
distinct * from sys.dependencies);\n"
                                        "delete from sys.dependencies;\n"
@@ -4274,7 +4277,8 @@ sql_update_aug2024(Client c, mvc *sql, s
                                        " ('ClientRemark', 'remark');\n"
                                        "grant select on 
sys.clientinfo_properties to public;\n"
                                        "update sys.functions set system = true 
where schema_id = 2000 and name in ('setclientinfo', 'sessions');\n"
-                                       "update sys._tables set system = true 
where schema_id = 2000 and name in ('clientinfo_properties', 'sessions');\n";
+                                       "update sys._tables set system = true 
where schema_id = 2000 and name in ('clientinfo_properties', 'sessions');\n"
+                                       "commit;\n";
 
                                t = mvc_bind_table(sql, s, "sessions");
                                t->system = 0; /* make it non-system else the 
drop view will fail */
@@ -4282,7 +4286,7 @@ sql_update_aug2024(Client c, mvc *sql, s
                                fflush(stdout);
                                err = SQLstatementIntern(c, query, "update", 
true, false, NULL);
                        }
-                       if (err == MAL_SUCCEED) {
+                       if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == 
MAL_SUCCEED) {
                                static const char query[] = "alter table 
sys.clientinfo_properties SET READ ONLY;\n";
                                printf("Running database upgrade 
commands:\n%s\n", query);
                                fflush(stdout);
@@ -4301,14 +4305,15 @@ sql_update_aug2024(Client c, mvc *sql, s
                                        "(3, 'Unique Key With Nulls Not 
Distinct'),\n"
                                        "(4, 'Check Constraint');\n"
                                        "GRANT SELECT ON sys.key_types TO 
PUBLIC;\n"
-                                       "UPDATE sys._tables SET system = true 
WHERE schema_id = 2000 AND name = 'key_types';\n";
+                                       "UPDATE sys._tables SET system = true 
WHERE schema_id = 2000 AND name = 'key_types';\n"
+                                       "COMMIT;\n";
                                if ((t = mvc_bind_table(sql, s, "key_types")) 
!= NULL)
                                        t->system = 0;
                                printf("Running database upgrade 
commands:\n%s\n", query);
                                fflush(stdout);
                                err = SQLstatementIntern(c, query, "update", 
true, false, NULL);
                        }
-                       if (err == MAL_SUCCEED) {
+                       if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == 
MAL_SUCCEED) {
                                static const char query[] = "ALTER TABLE 
sys.key_types SET READ ONLY;\n";
                                printf("Running database upgrade 
commands:\n%s\n", query);
                                fflush(stdout);
@@ -4814,14 +4819,14 @@ sql_update_mar2025_sp1(Client c, mvc *sq
                printf("Running database upgrade commands:\n%s\n", stmt2a);
                fflush(stdout);
                err = SQLstatementIntern(c, stmt2a, "update", true, false, 
NULL);
-               if (err == MAL_SUCCEED) {
+               if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == MAL_SUCCEED) 
{
                        static const char stmt2b[] =
                                "INSERT INTO sys.table_types VALUES (31, 'LOCAL 
TEMPORARY VIEW');\n"
                                "COMMIT;\n";
                        printf("Running database upgrade commands:\n%s\n", 
stmt2b);
                        fflush(stdout);
                        err = SQLstatementIntern(c, stmt2b, "update", true, 
false, NULL);
-                       if (err == MAL_SUCCEED) {
+                       if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == 
MAL_SUCCEED) {
                                static const char stmt3[] = "ALTER TABLE 
sys.table_types SET READ ONLY;\n";
                                printf("Running database upgrade 
commands:\n%s\n", stmt3);
                                fflush(stdout);
@@ -5250,11 +5255,12 @@ sql_update_dec2025(Client c, mvc *sql, s
        if ((b = BBPquickdesc(output->cols[0].b)) && BATcount(b) > 0) {
                const char query[] =
                        "ALTER TABLE sys.keywords SET READ WRITE;\n"
-                       "DELETE FROM sys.keywords WHERE keyword = 'PLAN';\n";
+                       "DELETE FROM sys.keywords WHERE keyword = 'PLAN';\n"
+                       "COMMIT;\n";
                printf("Running database upgrade commands:\n%s\n", query);
                fflush(stdout);
                err = SQLstatementIntern(c, query, "update", true, false, NULL);
-               if (err == MAL_SUCCEED) {
+               if (err == MAL_SUCCEED && (err = SQLtrans(sql)) == MAL_SUCCEED) 
{
                        static const char query2[] = "ALTER TABLE sys.keywords 
SET READ ONLY;\n";
                        printf("Running database upgrade commands:\n%s\n", 
query2);
                        fflush(stdout);
diff --git 
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- 
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ 
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -240,6 +240,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
@@ -240,6 +240,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git 
a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -325,6 +325,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git 
a/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
@@ -242,6 +242,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out 
b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
--- a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
@@ -242,6 +242,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
@@ -325,6 +325,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git 
a/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -240,6 +240,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
@@ -240,6 +240,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git 
a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128 
b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -325,6 +325,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git 
a/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128 
b/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
@@ -242,6 +242,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git a/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out 
b/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out
--- a/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out
@@ -242,6 +242,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
diff --git a/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128 
b/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128
@@ -325,6 +325,7 @@ update sys.functions set system = true w
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ WRITE;
 DELETE FROM sys.keywords WHERE keyword = 'PLAN';
+COMMIT;
 
 Running database upgrade commands:
 ALTER TABLE sys.keywords SET READ ONLY;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to