Changeset: c03572335d0e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c03572335d0e
Modified Files:
        sql/backends/monet5/sql_upgrades.c
Branch: Aug2024
Log Message:

Add upgrade code for #7611.


diffs (50 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
@@ -4367,6 +4367,35 @@ sql_update_aug2024(Client c, mvc *sql, s
        return err;
 }
 
+static str
+sql_update_aug2024_sp3(Client c, mvc *sql, sql_schema *s)
+{
+       char *err;
+       res_table *output;
+       BAT *b;
+
+       (void) sql;
+       (void) s;
+       err = SQLstatementIntern(c, "SELECT id FROM sys.keys WHERE type = 3 AND 
name LIKE '%_?';\n", "update", true, false, &output);
+       if (err)
+               return err;
+       b = BATdescriptor(output->cols[0].b);
+       if (b) {
+               if (BATcount(b) > 0) {
+                       /* do update */
+                       const char query1[] =
+                               "UPDATE sys.keys k SET name = (SELECT t.name 
FROM sys._tables t WHERE t.id = k.table_id) || '_' || (SELECT 
group_concat(kc.name, '_' /* ORDER BY kc.nr */) FROM sys.objects kc WHERE kc.id 
= k.id) || '_nndunique' WHERE k.type = 3 AND (k.table_id, k.name) IN (SELECT 
t.id, t.name || '_?' FROM sys._tables t WHERE NOT t.system);\n";
+                       printf("Running database upgrade commands:\n%s\n", 
query1);
+                       fflush(stdout);
+                       err = SQLstatementIntern(c, query1, "update", true, 
false, NULL);
+               }
+               BBPunfix(b->batCacheid);
+       }
+       res_table_destroy(output);
+
+       return err;
+}
+
 int
 SQLupgrades(Client c, mvc *m)
 {
@@ -4425,6 +4454,10 @@ SQLupgrades(Client c, mvc *m)
                goto handle_error;
        }
 
+       if ((err = sql_update_aug2024_sp3(c, m, s)) != NULL) {
+               goto handle_error;
+       }
+
        return 0;
 
 handle_error:
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to