Changeset: 22ae75c7ff07 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/22ae75c7ff07
Modified Files:
        sql/backends/monet5/sql_upgrades.c
        sql/scripts/39_analytics_hge.sql
        
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/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.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:

Implemented upgrade code, approved tests, fixed typo for decimal 
median/quantile.


diffs (truncated from 2170 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
@@ -6625,6 +6625,78 @@ sql_update_default(Client c, mvc *sql, s
                                "update sys.args set type_digits = 63 where 
type = 'bigint' and type_digits <> 63;\n"
                                "update sys.args set type_digits = 127 where 
type = 'hugeint' and type_digits <> 127;\n"
                                "update sys.args set type = 'varchar' where 
type in ('clob', 'char');\n"
+                               "drop aggregate median(decimal);\n"
+                               "drop aggregate median_avg(decimal);\n"
+                               "drop aggregate quantile(decimal, double);\n"
+                               "drop aggregate quantile_avg(decimal, 
double);\n"
+                               "create aggregate median(val DECIMAL(2)) 
returns DECIMAL(2)\n"
+                               " external name \"aggr\".\"median\";\n"
+                               "GRANT EXECUTE ON AGGREGATE median(DECIMAL(2)) 
TO PUBLIC;\n"
+                               "create aggregate median(val DECIMAL(4)) 
returns DECIMAL(4)\n"
+                               " external name \"aggr\".\"median\";\n"
+                               "GRANT EXECUTE ON AGGREGATE median(DECIMAL(4)) 
TO PUBLIC;\n"
+                               "create aggregate median(val DECIMAL(9)) 
returns DECIMAL(9)\n"
+                               " external name \"aggr\".\"median\";\n"
+                               "GRANT EXECUTE ON AGGREGATE median(DECIMAL(9)) 
TO PUBLIC;\n"
+                               "create aggregate median(val DECIMAL(18)) 
returns DECIMAL(18)\n"
+                               " external name \"aggr\".\"median\";\n"
+                               "GRANT EXECUTE ON AGGREGATE median(DECIMAL(18)) 
TO PUBLIC;\n"
+#ifdef HAVE_HGE
+                               "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"
+#endif
+                               "create aggregate median_avg(val DECIMAL(2)) 
returns DOUBLE\n"
+                               " external name \"aggr\".\"median_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
median_avg(DECIMAL(2)) TO PUBLIC;\n"
+                               "create aggregate median_avg(val DECIMAL(4)) 
returns DOUBLE\n"
+                               " external name \"aggr\".\"median_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
median_avg(DECIMAL(4)) TO PUBLIC;\n"
+                               "create aggregate median_avg(val DECIMAL(9)) 
returns DOUBLE\n"
+                               " external name \"aggr\".\"median_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
median_avg(DECIMAL(9)) TO PUBLIC;\n"
+                               "create aggregate median_avg(val DECIMAL(18)) 
returns DOUBLE\n"
+                               " external name \"aggr\".\"median_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
median_avg(DECIMAL(18)) TO PUBLIC;\n"
+#ifdef HAVE_HGE
+                               "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"
+#endif
+                               "create aggregate quantile(val DECIMAL(2), q 
DOUBLE) returns DECIMAL(2)\n"
+                               " external name \"aggr\".\"quantile\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile(DECIMAL(2), DOUBLE) TO PUBLIC;\n"
+                               "create aggregate quantile(val DECIMAL(4), q 
DOUBLE) returns DECIMAL(4)\n"
+                               " external name \"aggr\".\"quantile\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile(DECIMAL(4), DOUBLE) TO PUBLIC;\n"
+                               "create aggregate quantile(val DECIMAL(9), q 
DOUBLE) returns DECIMAL(9)\n"
+                               " external name \"aggr\".\"quantile\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile(DECIMAL(9), DOUBLE) TO PUBLIC;\n"
+                               "create aggregate quantile(val DECIMAL(18), q 
DOUBLE) returns DECIMAL(18)\n"
+                               " external name \"aggr\".\"quantile\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile(DECIMAL(18), DOUBLE) TO PUBLIC;\n"
+#ifdef HAVE_HGE
+                               "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"
+#endif
+                               "create aggregate quantile_avg(val DECIMAL(2), 
q DOUBLE) returns DOUBLE\n"
+                               " external name \"aggr\".\"quantile_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile_avg(DECIMAL(2), DOUBLE) TO PUBLIC;\n"
+                               "create aggregate quantile_avg(val DECIMAL(4), 
q DOUBLE) returns DOUBLE\n"
+                               " external name \"aggr\".\"quantile_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile_avg(DECIMAL(4), DOUBLE) TO PUBLIC;\n"
+                               "create aggregate quantile_avg(val DECIMAL(9), 
q DOUBLE) returns DOUBLE\n"
+                               " external name \"aggr\".\"quantile_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile_avg(DECIMAL(9), DOUBLE) TO PUBLIC;\n"
+                               "create aggregate quantile_avg(val DECIMAL(18), 
q DOUBLE) returns DOUBLE\n"
+                               " external name \"aggr\".\"quantile_avg\";\n"
+                               "GRANT EXECUTE ON AGGREGATE 
quantile_avg(DECIMAL(18), DOUBLE) TO PUBLIC;\n"
+#ifdef HAVE_HGE
+                               "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"
+#endif
                                "drop function if exists sys.time_to_str(time 
with time zone, string) cascade;\n"
                                "drop function if exists 
sys.timestamp_to_str(timestamp with time zone, string) cascade;\n"
                                "create function time_to_str(d time, format 
string) returns string\n"
@@ -6636,7 +6708,7 @@ sql_update_default(Client c, mvc *sql, s
                                "grant execute on function time_to_str(time, 
string) to public;\n"
                                "grant execute on function time_to_str(time 
with time zone, string) to public;\n"
                                "grant execute on function 
timestamp_to_str(timestamp with time zone, string) to public;\n"
-                               "update sys.functions set system = true where 
not system and schema_id = 2000 and name in ('time_to_str', 
'timestamp_to_str');\n"
+                               "update sys.functions set system = true where 
not system and schema_id = 2000 and name in ('time_to_str', 'timestamp_to_str', 
'median', 'median_avg', 'quantile', 'quantile_avg');\n"
                                "drop function if exists 
sys.dump_database(boolean) cascade;\n"
                                "drop view sys.dump_comments;\n"
                                "drop view sys.dump_tables;\n"
diff --git a/sql/scripts/39_analytics_hge.sql b/sql/scripts/39_analytics_hge.sql
--- a/sql/scripts/39_analytics_hge.sql
+++ b/sql/scripts/39_analytics_hge.sql
@@ -54,7 +54,7 @@ create aggregate median(val HUGEINT) ret
        external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO PUBLIC;
 
-create aggregate median(val DECIMAL(38)) returns HUGEINT
+create aggregate median(val DECIMAL(38)) returns DECIMAL(38)
        external name "aggr"."median";
 GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) TO PUBLIC;
 
@@ -62,7 +62,7 @@ create aggregate quantile(val HUGEINT, q
        external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(HUGEINT, DOUBLE) TO PUBLIC;
 
-create aggregate quantile(val DECIMAL(38), q DOUBLE) returns HUGEINT
+create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38)
        external name "aggr"."quantile";
 GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(38), DOUBLE) TO PUBLIC;
 
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
@@ -623,6 +623,70 @@ update sys.args set type_digits = 31 whe
 update sys.args set type_digits = 63 where type = 'bigint' and type_digits <> 
63;
 update sys.args set type_digits = 127 where type = 'hugeint' and type_digits 
<> 127;
 update sys.args set type = 'varchar' where type in ('clob', 'char');
+drop aggregate median(decimal);
+drop aggregate median_avg(decimal);
+drop aggregate quantile(decimal, double);
+drop aggregate quantile_avg(decimal, double);
+create aggregate median(val DECIMAL(2)) returns DECIMAL(2)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(2)) TO PUBLIC;
+create aggregate median(val DECIMAL(4)) returns DECIMAL(4)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(4)) TO PUBLIC;
+create aggregate median(val DECIMAL(9)) returns DECIMAL(9)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(9)) TO PUBLIC;
+create aggregate median(val DECIMAL(18)) returns DECIMAL(18)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(18)) TO PUBLIC;
+create aggregate median(val DECIMAL(38)) returns DECIMAL(38)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(2)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(2)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(4)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(4)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(9)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(9)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(18)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(18)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(38)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(38)) TO PUBLIC;
+create aggregate quantile(val DECIMAL(2), q DOUBLE) returns DECIMAL(2)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(2), DOUBLE) TO PUBLIC;
+create aggregate quantile(val DECIMAL(4), q DOUBLE) returns DECIMAL(4)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(4), DOUBLE) TO PUBLIC;
+create aggregate quantile(val DECIMAL(9), q DOUBLE) returns DECIMAL(9)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(9), DOUBLE) TO PUBLIC;
+create aggregate quantile(val DECIMAL(18), q DOUBLE) returns DECIMAL(18)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(18), DOUBLE) TO PUBLIC;
+create aggregate quantile(val DECIMAL(38), q DOUBLE) returns DECIMAL(38)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(38), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(2), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(2), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(4), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(4), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(9), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(9), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(18), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(18), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(38), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), DOUBLE) TO PUBLIC;
 drop function if exists sys.time_to_str(time with time zone, string) cascade;
 drop function if exists sys.timestamp_to_str(timestamp with time zone, string) 
cascade;
 create function time_to_str(d time, format string) returns string
@@ -634,7 +698,7 @@ create function timestamp_to_str(d times
 grant execute on function time_to_str(time, string) to public;
 grant execute on function time_to_str(time with time zone, string) to public;
 grant execute on function timestamp_to_str(timestamp with time zone, string) 
to public;
-update sys.functions set system = true where not system and schema_id = 2000 
and name in ('time_to_str', 'timestamp_to_str');
+update sys.functions set system = true where not system and schema_id = 2000 
and name in ('time_to_str', 'timestamp_to_str', 'median', 'median_avg', 
'quantile', 'quantile_avg');
 drop function if exists sys.dump_database(boolean) cascade;
 drop view sys.dump_comments;
 drop view sys.dump_tables;
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
@@ -623,6 +623,58 @@ update sys.args set type_digits = 31 whe
 update sys.args set type_digits = 63 where type = 'bigint' and type_digits <> 
63;
 update sys.args set type_digits = 127 where type = 'hugeint' and type_digits 
<> 127;
 update sys.args set type = 'varchar' where type in ('clob', 'char');
+drop aggregate median(decimal);
+drop aggregate median_avg(decimal);
+drop aggregate quantile(decimal, double);
+drop aggregate quantile_avg(decimal, double);
+create aggregate median(val DECIMAL(2)) returns DECIMAL(2)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(2)) TO PUBLIC;
+create aggregate median(val DECIMAL(4)) returns DECIMAL(4)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(4)) TO PUBLIC;
+create aggregate median(val DECIMAL(9)) returns DECIMAL(9)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(9)) TO PUBLIC;
+create aggregate median(val DECIMAL(18)) returns DECIMAL(18)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(18)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(2)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(2)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(4)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(4)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(9)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(9)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(18)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(18)) TO PUBLIC;
+create aggregate quantile(val DECIMAL(2), q DOUBLE) returns DECIMAL(2)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(2), DOUBLE) TO PUBLIC;
+create aggregate quantile(val DECIMAL(4), q DOUBLE) returns DECIMAL(4)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(4), DOUBLE) TO PUBLIC;
+create aggregate quantile(val DECIMAL(9), q DOUBLE) returns DECIMAL(9)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(9), DOUBLE) TO PUBLIC;
+create aggregate quantile(val DECIMAL(18), q DOUBLE) returns DECIMAL(18)
+ external name "aggr"."quantile";
+GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(18), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(2), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(2), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(4), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(4), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(9), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(9), DOUBLE) TO PUBLIC;
+create aggregate quantile_avg(val DECIMAL(18), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(18), DOUBLE) TO PUBLIC;
 drop function if exists sys.time_to_str(time with time zone, string) cascade;
 drop function if exists sys.timestamp_to_str(timestamp with time zone, string) 
cascade;
 create function time_to_str(d time, format string) returns string
@@ -634,7 +686,7 @@ create function timestamp_to_str(d times
 grant execute on function time_to_str(time, string) to public;
 grant execute on function time_to_str(time with time zone, string) to public;
 grant execute on function timestamp_to_str(timestamp with time zone, string) 
to public;
-update sys.functions set system = true where not system and schema_id = 2000 
and name in ('time_to_str', 'timestamp_to_str');
+update sys.functions set system = true where not system and schema_id = 2000 
and name in ('time_to_str', 'timestamp_to_str', 'median', 'median_avg', 
'quantile', 'quantile_avg');
 drop function if exists sys.dump_database(boolean) cascade;
 drop view sys.dump_comments;
 drop view sys.dump_tables;
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
@@ -692,6 +692,70 @@ update sys.args set type_digits = 31 whe
 update sys.args set type_digits = 63 where type = 'bigint' and type_digits <> 
63;
 update sys.args set type_digits = 127 where type = 'hugeint' and type_digits 
<> 127;
 update sys.args set type = 'varchar' where type in ('clob', 'char');
+drop aggregate median(decimal);
+drop aggregate median_avg(decimal);
+drop aggregate quantile(decimal, double);
+drop aggregate quantile_avg(decimal, double);
+create aggregate median(val DECIMAL(2)) returns DECIMAL(2)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(2)) TO PUBLIC;
+create aggregate median(val DECIMAL(4)) returns DECIMAL(4)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(4)) TO PUBLIC;
+create aggregate median(val DECIMAL(9)) returns DECIMAL(9)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(9)) TO PUBLIC;
+create aggregate median(val DECIMAL(18)) returns DECIMAL(18)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(18)) TO PUBLIC;
+create aggregate median(val DECIMAL(38)) returns DECIMAL(38)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(2)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(2)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(4)) returns DOUBLE
+ external name "aggr"."median_avg";
+GRANT EXECUTE ON AGGREGATE median_avg(DECIMAL(4)) TO PUBLIC;
+create aggregate median_avg(val DECIMAL(9)) returns DOUBLE
+ external name "aggr"."median_avg";
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to