Changeset: 97a3997f3ec6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/97a3997f3ec6
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/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
        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: Mar2025
Log Message:

Fix upgrade code.
This fix is for a failing upgrade of a Mar2025 database without hugeint
support to one with.


diffs (truncated from 607 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
@@ -283,16 +283,16 @@ sql_update_hugeint(Client c, mvc *sql)
                        "create window covar_pop(e1 HUGEINT, e2 HUGEINT) 
returns DOUBLE\n"
                        " external name \"sql\".\"covariancep\";\n"
                        "GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO 
PUBLIC;\n"
-                       "create aggregate median(val HUGEINT) returns HUGEINT\n"
+                       "create aggregate median(val HUGEINT) returns HUGEINT 
ORDERED\n"
                        " external name \"aggr\".\"median\";\n"
                        "GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO 
PUBLIC;\n"
-                       "create aggregate quantile(val HUGEINT, q DOUBLE) 
returns HUGEINT\n"
+                       "create aggregate quantile(val HUGEINT, q DOUBLE) 
returns HUGEINT ORDERED\n"
                        " external name \"aggr\".\"quantile\";\n"
                        "GRANT EXECUTE ON AGGREGATE quantile(HUGEINT, DOUBLE) 
TO PUBLIC;\n"
-                       "create aggregate median_avg(val HUGEINT) returns 
DOUBLE\n"
+                       "create aggregate median_avg(val HUGEINT) returns 
DOUBLE ORDERED\n"
                        " external name \"aggr\".\"median_avg\";\n"
                        "GRANT EXECUTE ON AGGREGATE median_avg(HUGEINT) TO 
PUBLIC;\n"
-                       "create aggregate quantile_avg(val HUGEINT, q DOUBLE) 
returns DOUBLE\n"
+                       "create aggregate quantile_avg(val HUGEINT, q DOUBLE) 
returns DOUBLE ORDERED\n"
                        " external name \"aggr\".\"quantile_avg\";\n"
                        "GRANT EXECUTE ON AGGREGATE quantile_avg(HUGEINT, 
DOUBLE) TO PUBLIC;\n"
                        "create aggregate corr(e1 HUGEINT, e2 HUGEINT) returns 
DOUBLE\n"
@@ -301,16 +301,16 @@ sql_update_hugeint(Client c, mvc *sql)
                        "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"
-                       "create aggregate median(val DECIMAL(38)) returns 
DECIMAL(38)\n"
+                       "create aggregate median(val DECIMAL(38)) returns 
DECIMAL(38) ORDERED\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"
+                       "create aggregate median_avg(val DECIMAL(38)) returns 
DOUBLE ORDERED\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"
+                       "create aggregate quantile(val DECIMAL(38), q DOUBLE) 
returns DECIMAL(38) ORDERED\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"
+                       "create aggregate quantile_avg(val DECIMAL(38), q 
DOUBLE) returns DOUBLE ORDERED\n"
                        " external name \"aggr\".\"quantile_avg\";\n"
                        "GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), 
DOUBLE) TO PUBLIC;\n");
 
@@ -4478,7 +4478,7 @@ sql_update_mar2025(Client c, mvc *sql, s
 
        if ((err = SQLstatementIntern(c, "select id from sys.functions where 
name = 'quantile' and schema_id = 2000 and contains(func, 'ordered');\n", 
"update", true, false, &output)) == MAL_SUCCEED) {
                BAT *b;
-               if ((b = BBPquickdesc(output->cols[0].b)) && BATcount(b) == 0) {
+               if ((b = BBPquickdesc(output->cols[0].b)) && BATcount(b) <= 2) {
                        sql_table *t;
                        t = mvc_bind_table(sql, s, "describe_comments");
                        t->system = 0;
@@ -4495,9 +4495,9 @@ sql_update_mar2025(Client c, mvc *sql, s
                        sql_schema *is = mvc_bind_schema(sql, 
"information_schema");
                        t = mvc_bind_table(sql, is, "parameters");
                        t->system = 0;
-                       char query[] = "update sys.functions set func = 
replace(func, E'\\n external', E' ordered\\n external') where name in 
('quantile','quantile_avg','median','median_avg') and schema_id = 2000 and 
language = (select language_id from sys.function_languages where language_name 
= 'MAL') and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');\n"
-                               "update sys.functions set func = replace(func, 
E'\\n\\texternal', E' ordered\\n external') where name in 
('quantile','quantile_avg','median','median_avg') and schema_id = 2000 and 
language = (select language_id from sys.function_languages where language_name 
= 'MAL') and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');\n"
-                               "update sys.functions set func = replace(func, 
E'\\nexternal', E' ordered\\n external') where name in 
('quantile','quantile_avg','median','median_avg') and schema_id = 2000 and 
language = (select language_id from sys.function_languages where language_name 
= 'MAL') and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');\n"
+                       char query[] = "update sys.functions set func = 
replace(func, E'\\n external', E' ordered\\n external') where name in 
('quantile','quantile_avg','median','median_avg') and schema_id = 2000 and 
language = (select language_id from sys.function_languages where language_name 
= 'MAL') and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE') and not contains(func, 'ordered');\n"
+                               "update sys.functions set func = replace(func, 
E'\\n\\texternal', E' ordered\\n external') where name in 
('quantile','quantile_avg','median','median_avg') and schema_id = 2000 and 
language = (select language_id from sys.function_languages where language_name 
= 'MAL') and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE') and not contains(func, 'ordered');\n"
+                               "update sys.functions set func = replace(func, 
E'\\nexternal', E' ordered\\n external') where name in 
('quantile','quantile_avg','median','median_avg') and schema_id = 2000 and 
language = (select language_id from sys.function_languages where language_name 
= 'MAL') and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE') and not contains(func, 'ordered');\n"
                                "update sys.functions set func = replace(func, 
E' external', E' with order\\n external') where name = 'group_concat' and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');\n"
                                "drop function sys.dump_database(boolean) 
cascade;\n"
                                "drop view sys.dump_functions cascade;\n"
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
@@ -49,9 +49,9 @@ GRANT SELECT ON sys.dependencies_vw TO P
 update sys._tables set system = true where system <> true and schema_id = 2000 
and name in ('ids', 'dependencies_vw');
 
 Running database upgrade commands:
-update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
+update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
 update sys.functions set func = replace(func, E' external', E' with order\n 
external') where name = 'group_concat' and schema_id = 2000 and language = 
(select language_id from sys.function_languages where language_name = 'MAL') 
and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');
 drop function sys.dump_database(boolean) cascade;
 drop view sys.dump_functions cascade;
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
@@ -49,9 +49,9 @@ GRANT SELECT ON sys.dependencies_vw TO P
 update sys._tables set system = true where system <> true and schema_id = 2000 
and name in ('ids', 'dependencies_vw');
 
 Running database upgrade commands:
-update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
+update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
 update sys.functions set func = replace(func, E' external', E' with order\n 
external') where name = 'group_concat' and schema_id = 2000 and language = 
(select language_id from sys.function_languages where language_name = 'MAL') 
and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');
 drop function sys.dump_database(boolean) cascade;
 drop view sys.dump_functions cascade;
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
@@ -45,16 +45,16 @@ GRANT EXECUTE ON AGGREGATE covar_pop(HUG
 create window covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
  external name "sql"."covariancep";
 GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val HUGEINT) returns HUGEINT
+create aggregate median(val HUGEINT) returns HUGEINT ORDERED
  external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO PUBLIC;
-create aggregate quantile(val HUGEINT, q DOUBLE) returns HUGEINT
+create aggregate quantile(val HUGEINT, q DOUBLE) returns HUGEINT ORDERED
  external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(HUGEINT, DOUBLE) TO PUBLIC;
-create aggregate median_avg(val HUGEINT) returns DOUBLE
+create aggregate median_avg(val HUGEINT) returns DOUBLE ORDERED
  external name "aggr"."median_avg";
 GRANT EXECUTE ON AGGREGATE median_avg(HUGEINT) TO PUBLIC;
-create aggregate quantile_avg(val HUGEINT, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val HUGEINT, q DOUBLE) returns DOUBLE ORDERED
  external name "aggr"."quantile_avg";
 GRANT EXECUTE ON AGGREGATE quantile_avg(HUGEINT, DOUBLE) TO PUBLIC;
 create aggregate corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
@@ -63,16 +63,16 @@ GRANT EXECUTE ON AGGREGATE corr(HUGEINT,
 create window corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
  external name "sql"."corr";
 GRANT EXECUTE ON WINDOW corr(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val DECIMAL(38)) returns DECIMAL(38)
+create aggregate median(val DECIMAL(38)) returns DECIMAL(38) ORDERED
  external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) TO PUBLIC;
-create aggregate median_avg(val DECIMAL(38)) returns DOUBLE
+create aggregate median_avg(val DECIMAL(38)) returns DOUBLE ORDERED
  external name "aggr"."median_avg";
 GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(38)) TO PUBLIC;
-create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38)
+create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38) 
ORDERED
  external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(38), DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val DECIMAL(38), q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val DECIMAL(38), q DOUBLE) returns DOUBLE ORDERED
  external name "aggr"."quantile_avg";
 GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), DOUBLE) TO PUBLIC;
 create function json.filter(js json, name hugeint)
@@ -132,9 +132,9 @@ GRANT SELECT ON sys.dependencies_vw TO P
 update sys._tables set system = true where system <> true and schema_id = 2000 
and name in ('ids', 'dependencies_vw');
 
 Running database upgrade commands:
-update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
+update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
 update sys.functions set func = replace(func, E' external', E' with order\n 
external') where name = 'group_concat' and schema_id = 2000 and language = 
(select language_id from sys.function_languages where language_name = 'MAL') 
and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');
 drop function sys.dump_database(boolean) cascade;
 drop view sys.dump_functions cascade;
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
@@ -49,9 +49,9 @@ GRANT SELECT ON sys.dependencies_vw TO P
 update sys._tables set system = true where system <> true and schema_id = 2000 
and name in ('ids', 'dependencies_vw');
 
 Running database upgrade commands:
-update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
+update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
 update sys.functions set func = replace(func, E' external', E' with order\n 
external') where name = 'group_concat' and schema_id = 2000 and language = 
(select language_id from sys.function_languages where language_name = 'MAL') 
and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');
 drop function sys.dump_database(boolean) cascade;
 drop view sys.dump_functions cascade;
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
@@ -49,9 +49,9 @@ GRANT SELECT ON sys.dependencies_vw TO P
 update sys._tables set system = true where system <> true and schema_id = 2000 
and name in ('ids', 'dependencies_vw');
 
 Running database upgrade commands:
-update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
+update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
 update sys.functions set func = replace(func, E' external', E' with order\n 
external') where name = 'group_concat' and schema_id = 2000 and language = 
(select language_id from sys.function_languages where language_name = 'MAL') 
and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');
 drop function sys.dump_database(boolean) cascade;
 drop view sys.dump_functions cascade;
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
@@ -45,16 +45,16 @@ GRANT EXECUTE ON AGGREGATE covar_pop(HUG
 create window covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
  external name "sql"."covariancep";
 GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val HUGEINT) returns HUGEINT
+create aggregate median(val HUGEINT) returns HUGEINT ORDERED
  external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO PUBLIC;
-create aggregate quantile(val HUGEINT, q DOUBLE) returns HUGEINT
+create aggregate quantile(val HUGEINT, q DOUBLE) returns HUGEINT ORDERED
  external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(HUGEINT, DOUBLE) TO PUBLIC;
-create aggregate median_avg(val HUGEINT) returns DOUBLE
+create aggregate median_avg(val HUGEINT) returns DOUBLE ORDERED
  external name "aggr"."median_avg";
 GRANT EXECUTE ON AGGREGATE median_avg(HUGEINT) TO PUBLIC;
-create aggregate quantile_avg(val HUGEINT, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val HUGEINT, q DOUBLE) returns DOUBLE ORDERED
  external name "aggr"."quantile_avg";
 GRANT EXECUTE ON AGGREGATE quantile_avg(HUGEINT, DOUBLE) TO PUBLIC;
 create aggregate corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
@@ -63,16 +63,16 @@ GRANT EXECUTE ON AGGREGATE corr(HUGEINT,
 create window corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
  external name "sql"."corr";
 GRANT EXECUTE ON WINDOW corr(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val DECIMAL(38)) returns DECIMAL(38)
+create aggregate median(val DECIMAL(38)) returns DECIMAL(38) ORDERED
  external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) TO PUBLIC;
-create aggregate median_avg(val DECIMAL(38)) returns DOUBLE
+create aggregate median_avg(val DECIMAL(38)) returns DOUBLE ORDERED
  external name "aggr"."median_avg";
 GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(38)) TO PUBLIC;
-create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38)
+create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38) 
ORDERED
  external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(38), DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val DECIMAL(38), q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val DECIMAL(38), q DOUBLE) returns DOUBLE ORDERED
  external name "aggr"."quantile_avg";
 GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), DOUBLE) TO PUBLIC;
 create function json.filter(js json, name hugeint)
@@ -132,9 +132,9 @@ GRANT SELECT ON sys.dependencies_vw TO P
 update sys._tables set system = true where system <> true and schema_id = 2000 
and name in ('ids', 'dependencies_vw');
 
 Running database upgrade commands:
-update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
-update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE');
+update sys.functions set func = replace(func, E'\n external', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\n\texternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
+update sys.functions set func = replace(func, E'\nexternal', E' ordered\n 
external') where name in ('quantile','quantile_avg','median','median_avg') and 
schema_id = 2000 and language = (select language_id from sys.function_languages 
where language_name = 'MAL') and type = (select function_type_id from 
sys.function_types where function_type_keyword = 'AGGREGATE') and not 
contains(func, 'ordered');
 update sys.functions set func = replace(func, E' external', E' with order\n 
external') where name = 'group_concat' and schema_id = 2000 and language = 
(select language_id from sys.function_languages where language_name = 'MAL') 
and type = (select function_type_id from sys.function_types where 
function_type_keyword = 'AGGREGATE');
 drop function sys.dump_database(boolean) cascade;
 drop view sys.dump_functions cascade;
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
@@ -45,16 +45,16 @@ GRANT EXECUTE ON AGGREGATE covar_pop(HUG
 create window covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
  external name "sql"."covariancep";
 GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val HUGEINT) returns HUGEINT
+create aggregate median(val HUGEINT) returns HUGEINT ORDERED
  external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO PUBLIC;
-create aggregate quantile(val HUGEINT, q DOUBLE) returns HUGEINT
+create aggregate quantile(val HUGEINT, q DOUBLE) returns HUGEINT ORDERED
  external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(HUGEINT, DOUBLE) TO PUBLIC;
-create aggregate median_avg(val HUGEINT) returns DOUBLE
+create aggregate median_avg(val HUGEINT) returns DOUBLE ORDERED
  external name "aggr"."median_avg";
 GRANT EXECUTE ON AGGREGATE median_avg(HUGEINT) TO PUBLIC;
-create aggregate quantile_avg(val HUGEINT, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val HUGEINT, q DOUBLE) returns DOUBLE ORDERED
  external name "aggr"."quantile_avg";
 GRANT EXECUTE ON AGGREGATE quantile_avg(HUGEINT, DOUBLE) TO PUBLIC;
 create aggregate corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
@@ -63,16 +63,16 @@ GRANT EXECUTE ON AGGREGATE corr(HUGEINT,
 create window corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
  external name "sql"."corr";
 GRANT EXECUTE ON WINDOW corr(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val DECIMAL(38)) returns DECIMAL(38)
+create aggregate median(val DECIMAL(38)) returns DECIMAL(38) ORDERED
  external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) TO PUBLIC;
-create aggregate median_avg(val DECIMAL(38)) returns DOUBLE
+create aggregate median_avg(val DECIMAL(38)) returns DOUBLE ORDERED
  external name "aggr"."median_avg";
 GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(38)) TO PUBLIC;
-create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38)
+create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38) 
ORDERED
  external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(38), DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val DECIMAL(38), q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val DECIMAL(38), q DOUBLE) returns DOUBLE ORDERED
  external name "aggr"."quantile_avg";
 GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), DOUBLE) TO PUBLIC;
 create function json.filter(js json, name hugeint)
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
@@ -45,16 +45,16 @@ GRANT EXECUTE ON AGGREGATE covar_pop(HUG
 create window covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
  external name "sql"."covariancep";
 GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val HUGEINT) returns HUGEINT
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to