Changeset: 6b2914759f66 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6b2914759f66
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/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-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
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

Add upgrade code for new sys.vacuum proc.


diffs (truncated from 537 to 300 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
@@ -329,7 +329,7 @@ sql_create_shp(Client c)
        //Create the new SHPload procedures
        const char query[] = "create procedure SHPLoad(fname string, schemaname 
string, tablename string) external name shp.load;\n"
                "create procedure SHPLoad(fname string, tablename string) 
external name shp.load;\n"
-               "update sys.functions set system = true where schema_id = 2000 
and name in ('shpload');";
+               "update sys.functions set system = true where schema_id = 2000 
and name in ('shpload');\n";
        printf("Running database upgrade commands:\n%s\n", query);
        fflush(stdout);
        return SQLstatementIntern(c, query, "update", true, false, NULL);
@@ -7207,6 +7207,32 @@ sql_update_aug2024(Client c, mvc *sql, s
        return err;
 }
 
+static str
+sql_update_default(Client c, mvc *sql, sql_schema *s)
+{
+       char *err = MAL_SUCCEED;
+       sql_subtype tp;
+
+       sql_find_subtype(&tp, "varchar", 0, 0);
+       if (!sql_bind_func(sql, s->base.name, "vacuum", &tp, &tp, F_PROC, true, 
true)) {
+               sql->session->status = 0; /* if the function was not found 
clean the error */
+               sql->errstr[0] = '\0';
+               const char query[] =
+                       "create procedure sys.vacuum(sname string, tname 
string)\n"
+                       "external name sql.vacuum;\n"
+                       "create procedure sys.vacuum(sname string, tname 
string, interval int)\n"
+                       "external name sql.vacuum;\n"
+                       "create procedure sys.stop_vacuum(sname string, tname 
string)\n"
+                       "external name sql.stop_vacuum;\n"
+                       "update sys.functions set system = true where system <> 
true and schema_id = 2000 and name in ('vacuum', 'stop_vacuum');\n";
+                       printf("Running database upgrade commands:\n%s\n", 
query);
+                       fflush(stdout);
+                       err = SQLstatementIntern(c, query, "update", true, 
false, NULL);
+       }
+
+       return err;
+}
+
 int
 SQLupgrades(Client c, mvc *m)
 {
@@ -7410,6 +7436,11 @@ SQLupgrades(Client c, mvc *m)
                goto handle_error;
        }
 
+       if ((err = sql_update_default(c, m, s)) != NULL) {
+               TRC_CRITICAL(SQL_PARSER, "%s\n", err);
+               goto handle_error;
+       }
+
        return 0;
 
 handle_error:
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
@@ -9,6 +9,7 @@ Running database upgrade commands:
 create procedure SHPLoad(fname string, schemaname string, tablename string) 
external name shp.load;
 create procedure SHPLoad(fname string, tablename string) external name 
shp.load;
 update sys.functions set system = true where schema_id = 2000 and name in 
('shpload');
+
 Running database upgrade commands:
 drop function if exists sys.st_intersects(geometry, geometry) cascade;
 drop function if exists sys.st_dwithin(geometry, geometry, double) cascade;
@@ -1102,3 +1103,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
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
@@ -9,6 +9,7 @@ Running database upgrade commands:
 create procedure SHPLoad(fname string, schemaname string, tablename string) 
external name shp.load;
 create procedure SHPLoad(fname string, tablename string) external name 
shp.load;
 update sys.functions set system = true where schema_id = 2000 and name in 
('shpload');
+
 Running database upgrade commands:
 drop function if exists sys.st_intersects(geometry, geometry) cascade;
 drop function if exists sys.st_dwithin(geometry, geometry, double) cascade;
@@ -1090,3 +1091,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
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
@@ -78,6 +78,7 @@ Running database upgrade commands:
 create procedure SHPLoad(fname string, schemaname string, tablename string) 
external name shp.load;
 create procedure SHPLoad(fname string, tablename string) external name 
shp.load;
 update sys.functions set system = true where schema_id = 2000 and name in 
('shpload');
+
 Running database upgrade commands:
 drop function if exists sys.st_intersects(geometry, geometry) cascade;
 drop function if exists sys.st_dwithin(geometry, geometry, double) cascade;
@@ -1171,3 +1172,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
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
@@ -9,6 +9,7 @@ Running database upgrade commands:
 create procedure SHPLoad(fname string, schemaname string, tablename string) 
external name shp.load;
 create procedure SHPLoad(fname string, tablename string) external name 
shp.load;
 update sys.functions set system = true where schema_id = 2000 and name in 
('shpload');
+
 Running database upgrade commands:
 drop function if exists sys.st_intersects(geometry, geometry) cascade;
 drop function if exists sys.st_dwithin(geometry, geometry, double) cascade;
@@ -1102,3 +1103,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
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
@@ -9,6 +9,7 @@ Running database upgrade commands:
 create procedure SHPLoad(fname string, schemaname string, tablename string) 
external name shp.load;
 create procedure SHPLoad(fname string, tablename string) external name 
shp.load;
 update sys.functions set system = true where schema_id = 2000 and name in 
('shpload');
+
 Running database upgrade commands:
 drop function if exists sys.st_intersects(geometry, geometry) cascade;
 drop function if exists sys.st_dwithin(geometry, geometry, double) cascade;
@@ -1090,3 +1091,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
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
@@ -78,6 +78,7 @@ Running database upgrade commands:
 create procedure SHPLoad(fname string, schemaname string, tablename string) 
external name shp.load;
 create procedure SHPLoad(fname string, tablename string) external name 
shp.load;
 update sys.functions set system = true where schema_id = 2000 and name in 
('shpload');
+
 Running database upgrade commands:
 drop function if exists sys.st_intersects(geometry, geometry) cascade;
 drop function if exists sys.st_dwithin(geometry, geometry, double) cascade;
@@ -1171,3 +1172,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -492,3 +492,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
@@ -480,3 +480,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -561,3 +561,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
diff --git a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
@@ -492,3 +492,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out 
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
@@ -480,3 +480,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
@@ -561,3 +561,12 @@ UPDATE sys._tables SET system = true whe
  and schema_id = (select s.id from sys.schemas s where s.name = 
'information_schema')
  and name in ('check_constraints','table_constraints');
 
+Running database upgrade commands:
+create procedure sys.vacuum(sname string, tname string)
+external name sql.vacuum;
+create procedure sys.vacuum(sname string, tname string, interval int)
+external name sql.vacuum;
+create procedure sys.stop_vacuum(sname string, tname string)
+external name sql.stop_vacuum;
+update sys.functions set system = true where system <> true and schema_id = 
2000 and name in ('vacuum', 'stop_vacuum');
+
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
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to