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