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

Merge with Aug2024 branch.


diffs (truncated from 2982 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
@@ -240,7 +240,9 @@ sql_update_hugeint(Client c, mvc *sql)
                        "external name generator.series;\n"
                        "create function sys.generate_series(first hugeint, 
\"limit\" hugeint, stepsize hugeint)\n"
                        "returns table (value hugeint)\n"
-                       "external name generator.series;\n");
+                       "external name generator.series;\n"
+                       "grant execute on function sys.generate_series(hugeint, 
hugeint) to public;\n"
+                       "grant execute on function sys.generate_series(hugeint, 
hugeint, hugeint) to public;\n");
 
        /* 39_analytics_hge.sql */
        pos += snprintf(buf + pos, bufsize - pos,
@@ -297,7 +299,19 @@ sql_update_hugeint(Client c, mvc *sql)
                        "GRANT EXECUTE ON AGGREGATE corr(HUGEINT, HUGEINT) TO 
PUBLIC;\n"
                        "create window corr(e1 HUGEINT, e2 HUGEINT) returns 
DOUBLE\n"
                        " external name \"sql\".\"corr\";\n"
-                       "GRANT EXECUTE ON WINDOW corr(HUGEINT, HUGEINT) TO 
PUBLIC;\n");
+                       "GRANT EXECUTE ON WINDOW corr(HUGEINT, HUGEINT) TO 
PUBLIC;\n"
+                       "create aggregate median(val DECIMAL(38)) returns 
DECIMAL(38)\n"
+                       " external name \"aggr\".\"median\";\n"
+                       "GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) TO 
PUBLIC;\n"
+                       "create aggregate median_avg(val DECIMAL(38)) returns 
DOUBLE\n"
+                       " external name \"aggr\".\"median_avg\";\n"
+                       "GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(38)) TO 
PUBLIC;\n"
+                       "create aggregate quantile(val DECIMAL(38), q DOUBLE) 
returns DECIMAL(38)\n"
+                       " external name \"aggr\".\"quantile\";\n"
+                       "GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(38), 
DOUBLE) TO PUBLIC;\n"
+                       "create aggregate quantile_avg(val DECIMAL(38), q 
DOUBLE) returns DOUBLE\n"
+                       " external name \"aggr\".\"quantile_avg\";\n"
+                       "GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), 
DOUBLE) TO PUBLIC;\n");
 
        /* 40_json_hge.sql */
        pos += snprintf(buf + pos, bufsize - pos,
@@ -306,9 +320,9 @@ sql_update_hugeint(Client c, mvc *sql)
                        "GRANT EXECUTE ON FUNCTION json.filter(json, hugeint) 
TO PUBLIC;\n");
 
        pos += snprintf(buf + pos, bufsize - pos,
-                       "update sys.functions set system = true where system <> 
true and name in ('generate_series') and schema_id = (select id from 
sys.schemas where name = 'sys') and type = %d;\n"
-                       "update sys.functions set system = true where system <> 
true and name in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp', 
'var_pop', 'covar_pop', 'median', 'median_avg', 'quantile', 'quantile_avg', 
'corr') and schema_id = (select id from sys.schemas where name = 'sys') and 
type = %d;\n"
-                       "update sys.functions set system = true where system <> 
true and name in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp', 
'var_pop', 'covar_pop', 'corr') and schema_id = (select id from sys.schemas 
where name = 'sys') and type = %d;\n"
+                       "update sys.functions set system = true where system <> 
true and name in ('generate_series') and schema_id = 2000 and type = %d;\n"
+                       "update sys.functions set system = true where system <> 
true and name in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp', 
'var_pop', 'covar_pop', 'median', 'median_avg', 'quantile', 'quantile_avg', 
'corr') and schema_id = 2000 and type = %d;\n"
+                       "update sys.functions set system = true where system <> 
true and name in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp', 
'var_pop', 'covar_pop', 'corr') and schema_id = 2000 and type = %d;\n"
                        "update sys.functions set system = true where system <> 
true and name = 'filter' and schema_id = (select id from sys.schemas where name 
= 'json') and type = %d;\n",
                        (int) F_UNION, (int) F_AGGR, (int) F_ANALYTIC, (int) 
F_FUNC);
 
@@ -349,1803 +363,6 @@ sql_drop_shp(Client c)
 }
 
 static str
-sql_update_generator(Client c)
-{
-       const char query[] = "update sys.args set name = 'limit' where name = 
'last' and func_id in (select id from sys.functions where schema_id = 2000 and 
name = 'generate_series' and func like '% last %');\n"
-               "update sys.functions set func = replace(func, ' last ', ' 
\"limit\" ') where schema_id = 2000 and name = 'generate_series' and func like 
'% last %';\n";
-       return SQLstatementIntern(c, query, "update", true, false, NULL);
-}
-
-static str
-sql_drop_functions_dependencies_Xs_on_Ys(Client c)
-{
-       size_t bufsize = 1600, pos = 0;
-       char *err = NULL, *buf = GDKmalloc(bufsize);
-
-       if (buf == NULL)
-               throw(SQL, __func__, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-
-       /* remove functions which were created in 
sql/scripts/21_dependency_functions.sql */
-       pos += snprintf(buf + pos, bufsize - pos,
-                       "DROP FUNCTION dependencies_schemas_on_users() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_owners_on_schemas() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_tables_on_views() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_tables_on_indexes() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_tables_on_triggers() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_tables_on_foreignKeys() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_tables_on_functions() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_columns_on_views() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_columns_on_keys() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_columns_on_indexes() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_columns_on_functions() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_columns_on_triggers() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_views_on_functions() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_views_on_triggers() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_functions_on_functions() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_functions_on_triggers() 
CASCADE;\n"
-                       "DROP FUNCTION dependencies_keys_on_foreignKeys() 
CASCADE;\n");
-
-       assert(pos < bufsize);
-
-       printf("Running database upgrade commands:\n%s\n", buf);
-       fflush(stdout);
-       err = SQLstatementIntern(c, buf, "update", true, false, NULL);
-       GDKfree(buf);
-       return err;             /* usually MAL_SUCCEED */
-}
-
-static str
-sql_update_storagemodel(Client c, mvc *sql, bool oct2020_upgrade)
-{
-       size_t bufsize = 20000, pos = 0;
-       char *buf, *err;
-       sql_schema *s = mvc_bind_schema(sql, "sys");
-       sql_table *t;
-       char *day_interval_str = oct2020_upgrade ? " 'day_interval'," : "";
-
-       if ((buf = GDKmalloc(bufsize)) == NULL)
-               throw(SQL, __func__, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-
-       /* set views and tables internally to non-system to allow drop commands 
to succeed without error */
-       if ((t = mvc_bind_table(sql, s, "storage")) != NULL)
-               t->system = 0;
-       if ((t = mvc_bind_table(sql, s, "storagemodel")) != NULL)
-               t->system = 0;
-       if ((t = mvc_bind_table(sql, s, "storagemodelinput")) != NULL)
-               t->system = 0;
-       if ((t = mvc_bind_table(sql, s, "tablestoragemodel")) != NULL)
-               t->system = 0;
-
-       /* new 75_storagemodel.sql */
-       pos += snprintf(buf + pos, bufsize - pos,
-               /* drop objects in reverse order of original creation of old 
75_storagemodel.sql */
-               "drop view if exists sys.tablestoragemodel cascade;\n"
-               "drop view if exists sys.storagemodel cascade;\n"
-               "drop function if exists sys.storagemodel() cascade;\n");
-
-       if (oct2020_upgrade) {
-               pos += snprintf(buf + pos, bufsize - pos,
-                       "drop function if exists sys.imprintsize(varchar(1024), 
bigint) cascade;\n");
-       } else {
-               pos += snprintf(buf + pos, bufsize - pos,
-                       "drop function if exists sys.imprintsize(bigint, clob) 
cascade;\n");
-       }
-
-       pos += snprintf(buf + pos, bufsize - pos,
-               "drop function if exists sys.hashsize(boolean, bigint) 
cascade;\n");
-
-       if (oct2020_upgrade) {
-               pos += snprintf(buf + pos, bufsize - pos,
-                       "drop function if exists sys.columnsize(varchar(1024), 
bigint) cascade;\n"
-                       "drop function if exists sys.heapsize(varchar(1024), 
bigint, bigint, int) cascade;\n");
-       } else {
-               pos += snprintf(buf + pos, bufsize - pos,
-                       "drop function if exists sys.columnsize(clob, bigint, 
bigint) cascade;\n"
-                       "drop function if exists sys.heapsize(clob, bigint, 
int) cascade;\n");
-       }
-
-       pos += snprintf(buf + pos, bufsize - pos,
-               "drop procedure if exists sys.storagemodelinit() cascade;\n"
-               "drop table if exists sys.storagemodelinput cascade;\n"
-               "drop view if exists sys.\"storage\" cascade;\n");
-
-       if (oct2020_upgrade) {
-               pos += snprintf(buf + pos, bufsize - pos,
-                       "drop function if exists sys.\"storage\"(varchar(1024), 
varchar(1024), varchar(1024)) cascade;\n"
-                       "drop function if exists sys.\"storage\"(varchar(1024), 
varchar(1024)) cascade;\n"
-                       "drop function if exists sys.\"storage\"(varchar(1024)) 
cascade;\n");
-       } else {
-               pos += snprintf(buf + pos, bufsize - pos,
-                       "drop function if exists sys.\"storage\"(clob, clob, 
clob) cascade;\n"
-                       "drop function if exists sys.\"storage\"(clob, clob) 
cascade;\n"
-                       "drop function if exists sys.\"storage\"(clob) 
cascade;\n");
-       }
-
-       /* new 75_storagemodel.sql */
-       pos += snprintf(buf + pos, bufsize - pos,
-               "drop function if exists sys.\"storage\"() cascade;\n"
-               "create function sys.\"storage\"()\n"
-               "returns table (\n"
-               "       \"schema\" varchar(1024),\n"
-               "       \"table\" varchar(1024),\n"
-               "       \"column\" varchar(1024),\n"
-               "       \"type\" varchar(1024),\n"
-               "       \"mode\" varchar(15),\n"
-               "       location varchar(1024),\n"
-               "       \"count\" bigint,\n"
-               "       typewidth int,\n"
-               "       columnsize bigint,\n"
-               "       heapsize bigint,\n"
-               "       hashes bigint,\n"
-               "       phash boolean,\n"
-               "       \"imprints\" bigint,\n"
-               "       sorted boolean,\n"
-               "       revsorted boolean,\n"
-               "       \"unique\" boolean,\n"
-               "       orderidx bigint\n"
-               ")\n"
-               "external name sql.\"storage\";\n"
-               "create view sys.\"storage\" as\n"
-               "select * from sys.\"storage\"()\n"
-               " where (\"schema\", \"table\") in (\n"
-               "       SELECT sch.\"name\", tbl.\"name\"\n"
-               "         FROM sys.\"tables\" AS tbl JOIN sys.\"schemas\" AS 
sch ON tbl.schema_id = sch.id\n"
-               "        WHERE tbl.\"system\" = FALSE)\n"
-               "order by \"schema\", \"table\", \"column\";\n"
-               "create view sys.\"tablestorage\" as\n"
-               "select \"schema\", \"table\",\n"
-               "       max(\"count\") as \"rowcount\",\n"
-               "       count(*) as \"storages\",\n"
-               "       sum(columnsize) as columnsize,\n"
-               "       sum(heapsize) as heapsize,\n"
-               "       sum(hashes) as hashsize,\n"
-               "       sum(\"imprints\") as imprintsize,\n"
-               "       sum(orderidx) as orderidxsize\n"
-               " from sys.\"storage\"\n"
-               "group by \"schema\", \"table\"\n"
-               "order by \"schema\", \"table\";\n"
-               "create view sys.\"schemastorage\" as\n"
-               "select \"schema\",\n"
-               "       count(*) as \"storages\",\n"
-               "       sum(columnsize) as columnsize,\n"
-               "       sum(heapsize) as heapsize,\n"
-               "       sum(hashes) as hashsize,\n"
-               "       sum(\"imprints\") as imprintsize,\n"
-               "       sum(orderidx) as orderidxsize\n"
-               " from sys.\"storage\"\n"
-               "group by \"schema\"\n"
-               "order by \"schema\";\n"
-               "create function sys.\"storage\"(sname varchar(1024))\n"
-               "returns table (\n"
-               "       \"schema\" varchar(1024),\n"
-               "       \"table\" varchar(1024),\n"
-               "       \"column\" varchar(1024),\n"
-               "       \"type\" varchar(1024),\n"
-               "       \"mode\" varchar(15),\n"
-               "       location varchar(1024),\n"
-               "       \"count\" bigint,\n"
-               "       typewidth int,\n"
-               "       columnsize bigint,\n"
-               "       heapsize bigint,\n"
-               "       hashes bigint,\n"
-               "       phash boolean,\n"
-               "       \"imprints\" bigint,\n"
-               "       sorted boolean,\n"
-               "       revsorted boolean,\n"
-               "       \"unique\" boolean,\n"
-               "       orderidx bigint\n"
-               ")\n"
-               "external name sql.\"storage\";\n"
-               "create function sys.\"storage\"(sname varchar(1024), tname 
varchar(1024))\n"
-               "returns table (\n"
-               "       \"schema\" varchar(1024),\n"
-               "       \"table\" varchar(1024),\n"
-               "       \"column\" varchar(1024),\n"
-               "       \"type\" varchar(1024),\n"
-               "       \"mode\" varchar(15),\n"
-               "       location varchar(1024),\n"
-               "       \"count\" bigint,\n"
-               "       typewidth int,\n"
-               "       columnsize bigint,\n"
-               "       heapsize bigint,\n"
-               "       hashes bigint,\n"
-               "       phash boolean,\n"
-               "       \"imprints\" bigint,\n"
-               "       sorted boolean,\n"
-               "       revsorted boolean,\n"
-               "       \"unique\" boolean,\n"
-               "       orderidx bigint\n"
-               ")\n"
-               "external name sql.\"storage\";\n"
-               "create function sys.\"storage\"(sname varchar(1024), tname 
varchar(1024), cname varchar(1024))\n"
-               "returns table (\n"
-               "       \"schema\" varchar(1024),\n"
-               "       \"table\" varchar(1024),\n"
-               "       \"column\" varchar(1024),\n"
-               "       \"type\" varchar(1024),\n"
-               "       \"mode\" varchar(15),\n"
-               "       location varchar(1024),\n"
-               "       \"count\" bigint,\n"
-               "       typewidth int,\n"
-               "       columnsize bigint,\n"
-               "       heapsize bigint,\n"
-               "       hashes bigint,\n"
-               "       phash boolean,\n"
-               "       \"imprints\" bigint,\n"
-               "       sorted boolean,\n"
-               "       revsorted boolean,\n"
-               "       \"unique\" boolean,\n"
-               "       orderidx bigint\n"
-               ")\n"
-               "external name sql.\"storage\";\n"
-               "create table sys.storagemodelinput(\n"
-               "       \"schema\" varchar(1024) NOT NULL,\n"
-               "       \"table\" varchar(1024) NOT NULL,\n"
-               "       \"column\" varchar(1024) NOT NULL,\n"
-               "       \"type\" varchar(1024) NOT NULL,\n"
-               "       typewidth int NOT NULL,\n"
-               "       \"count\" bigint NOT NULL,\n"
-               "       \"distinct\" bigint NOT NULL,\n"
-               "       atomwidth int NOT NULL,\n"
-               "       reference boolean NOT NULL DEFAULT FALSE,\n"
-               "       sorted boolean,\n"
-               "       \"unique\" boolean,\n"
-               "       isacolumn boolean NOT NULL DEFAULT TRUE\n"
-               ");\n"
-               "create procedure sys.storagemodelinit()\n"
-               "begin\n"
-               "       delete from sys.storagemodelinput;\n"
-               "       insert into sys.storagemodelinput\n"
-               "       select \"schema\", \"table\", \"column\", \"type\", 
typewidth, \"count\",\n"
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to