Changeset: 0f58d320e8d2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0f58d320e8d2
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: Aug2024
Log Message:
Fix database upgrade for Aug2024 database.
Especially, the non-hugeint to with-hugeint upgrade.
diffs (truncated from 997 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);
@@ -4892,11 +4906,6 @@ sql_update_aug2024(Client c, mvc *sql, s
"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"
@@ -4909,11 +4918,6 @@ sql_update_aug2024(Client c, mvc *sql, s
"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"
@@ -4926,11 +4930,6 @@ sql_update_aug2024(Client c, mvc *sql, s
"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"
@@ -4943,11 +4942,6 @@ sql_update_aug2024(Client c, mvc *sql, s
"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"
@@ -5266,6 +5260,35 @@ sql_update_aug2024(Client c, mvc *sql, s
printf("Running database upgrade commands:\n%s\n",
query1);
fflush(stdout);
err = SQLstatementIntern(c, query1, "update", true,
false, NULL);
+#ifdef HAVE_HGE
+ if (err == MAL_SUCCEED) {
+ sql_subtype tp;
+ sql_find_subtype(&tp, "decimal", 38, 0);
+ if (!sql_bind_func(sql, s->base.name, "median",
&tp, NULL, F_AGGR, true, true)) {
+ sql->session->status = 0;
+ sql->errstr[0] = '\0';
+ const char query0[] =
+ "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"
+ "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"
+ "update sys.functions set
system = true where system <> true and schema_id = 2000 and name in ('median',
'median_avg', 'quantile', 'quantile_avg');\n";
+ printf("Running database upgrade
commands:\n%s\n", query0);
+ fflush(stdout);
+ err = SQLstatementIntern(c, query0,
"update", true, false, NULL);
+ }
+ }
+#endif
if (err == MAL_SUCCEED) {
sql_subtype tp;
sql_find_subtype(&tp, "smallint", 0, 0);
@@ -5279,7 +5302,7 @@ sql_update_aug2024(Client c, mvc *sql, s
"create function
sys.generate_series(first smallint, \"limit\" smallint, stepsize smallint)\n"
"returns table (value
smallint)\n"
"external name
generator.series;\n"
- "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');\n";
+ "update sys.functions set
system = true where system <> true and name in ('generate_series') and
schema_id = 2000;\n";
printf("Running database upgrade
commands:\n%s\n", query);
fflush(stdout);
err = SQLstatementIntern(c, query,
"update", true, false, NULL);
@@ -5308,10 +5331,6 @@ sql_update_aug2024(Client c, mvc *sql, s
"grant execute on function
sys.generate_series(date, date, interval day) to public;\n"
"grant execute on function
sys.generate_series(timestamp, timestamp, interval second) to public;\n"
"grant execute on function
sys.generate_series(timestamp, timestamp, interval day) to public;\n"
-#ifdef HAVE_HGE
- "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"
-#endif
"update sys.functions set system = true
where system <> true and name = 'generate_series' and schema_id = 2000;\n";
sql->session->status = 0;
sql->errstr[0] = '\0';
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
@@ -29,9 +29,6 @@ GRANT EXECUTE ON AGGREGATE median(DECIMA
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;
@@ -44,9 +41,6 @@ GRANT EXECUTE ON AGGREGATE median_avg(DE
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;
@@ -59,9 +53,6 @@ GRANT EXECUTE ON AGGREGATE quantile(DECI
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;
@@ -74,9 +65,6 @@ GRANT EXECUTE ON AGGREGATE quantile_avg(
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
@@ -376,6 +364,23 @@ update sys.functions set system = true w
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_comments', 'dump_tables', 'dump_functions',
'dump_function_grants', 'describe_functions', 'describe_privileges',
'describe_comments', 'fully_qualified_functions', 'describe_tables');
Running database upgrade commands:
+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(38)) returns DOUBLE
+ 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)
+ 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
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), DOUBLE) TO PUBLIC;
+grant execute on function sys.generate_series(hugeint, hugeint) to public;
+grant execute on function sys.generate_series(hugeint, hugeint, hugeint) to
public;
+update sys.functions set system = true where system <> true and schema_id =
2000 and name in ('median', 'median_avg', 'quantile', 'quantile_avg');
+
+Running database upgrade commands:
create function sys.generate_series(first date, "limit" date, stepsize
interval month)
returns table (value date)
external name generator.series;
@@ -397,8 +402,6 @@ grant execute on function sys.generate_s
grant execute on function sys.generate_series(date, date, interval day) to
public;
grant execute on function sys.generate_series(timestamp, timestamp, interval
second) to public;
grant execute on function sys.generate_series(timestamp, timestamp, interval
day) to public;
-grant execute on function sys.generate_series(hugeint, hugeint) to public;
-grant execute on function sys.generate_series(hugeint, hugeint, hugeint) to
public;
update sys.functions set system = true where system <> true and name =
'generate_series' and schema_id = 2000;
Running database upgrade commands:
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
@@ -7,6 +7,8 @@ external name generator.series;
create function sys.generate_series(first hugeint, "limit" hugeint, stepsize
hugeint)
returns table (value hugeint)
external name generator.series;
+grant execute on function sys.generate_series(hugeint, hugeint) to public;
+grant execute on function sys.generate_series(hugeint, hugeint, hugeint) to
public;
create aggregate stddev_samp(val HUGEINT) returns DOUBLE
external name "aggr"."stdev";
GRANT EXECUTE ON AGGREGATE stddev_samp(HUGEINT) TO PUBLIC;
@@ -61,12 +63,24 @@ 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)
+ external name "aggr"."median";
+GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) 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(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(38), q DOUBLE) returns DOUBLE
+ external name "aggr"."quantile_avg";
+GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(38), DOUBLE) TO PUBLIC;
create function json.filter(js json, name hugeint)
returns json external name json.filter;
GRANT EXECUTE ON FUNCTION json.filter(json, hugeint) TO PUBLIC;
-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 = 5;
-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 = 3;
-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 = 6;
+update sys.functions set system = true where system <> true and name in
('generate_series') and schema_id = 2000 and type = 5;
+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 = 3;
+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 = 6;
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 = 1;
Running database upgrade commands:
@@ -98,9 +112,6 @@ GRANT EXECUTE ON AGGREGATE median(DECIMA
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;
@@ -113,9 +124,6 @@ GRANT EXECUTE ON AGGREGATE median_avg(DE
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;
@@ -128,9 +136,6 @@ GRANT EXECUTE ON AGGREGATE quantile(DECI
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;
@@ -143,9 +148,6 @@ GRANT EXECUTE ON AGGREGATE quantile_avg(
create aggregate quantile_avg(val DECIMAL(18), q DOUBLE) returns DOUBLE
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]