Changeset: 499f338930e8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/499f338930e8
Modified Files:
sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.test
sql/scripts/39_analytics.sql
sql/scripts/39_analytics_hge.sql
sql/server/rel_select.c
sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
sql/test/Dependencies/Tests/dependency_owner_schema_3.test
sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.test
sql/test/sys-schema/Tests/check_Not_Nullable_columns.test
Branch: ordered-set-aggregates
Log Message:
approved output
handle order_required cases ie: select quantile( one , 0.5 ) FROM tempa WHERE
two > 2; and select quantile ( 0.5 order by one ) ; select quantile ( 0.5 )
within group (order by one);
diffs (truncated from 520 to 300 lines):
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.test
--- a/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.test
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.test
@@ -86,7 +86,7 @@ DROP LOADER myfunc2
statement ok
DROP LOADER myfunc3
-query ITTTIIIIIIII rowsort
+query ITTTIIIIIIIII rowsort
SELECT * FROM functions WHERE name='myfunc'
----
diff --git a/sql/scripts/39_analytics.sql b/sql/scripts/39_analytics.sql
--- a/sql/scripts/39_analytics.sql
+++ b/sql/scripts/39_analytics.sql
@@ -293,53 +293,53 @@ create aggregate median(val INTERVAL MON
GRANT EXECUTE ON AGGREGATE median(INTERVAL MONTH) TO PUBLIC;
-create aggregate quantile(val TINYINT, q DOUBLE) returns TINYINT
+create aggregate quantile(val TINYINT, q DOUBLE) returns TINYINT ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(TINYINT, DOUBLE) TO PUBLIC;
-create aggregate quantile(val SMALLINT, q DOUBLE) returns SMALLINT
+create aggregate quantile(val SMALLINT, q DOUBLE) returns SMALLINT ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(SMALLINT, DOUBLE) TO PUBLIC;
-create aggregate quantile(val INTEGER, q DOUBLE) returns INTEGER
+create aggregate quantile(val INTEGER, q DOUBLE) returns INTEGER ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(INTEGER, DOUBLE) TO PUBLIC;
-create aggregate quantile(val BIGINT, q DOUBLE) returns BIGINT
+create aggregate quantile(val BIGINT, q DOUBLE) returns BIGINT ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(BIGINT, DOUBLE) TO PUBLIC;
-create aggregate quantile(val DECIMAL(2), q DOUBLE) returns DECIMAL(2)
+create aggregate quantile(val DECIMAL(2), q DOUBLE) returns DECIMAL(2) ORDERED
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)
+create aggregate quantile(val DECIMAL(4), q DOUBLE) returns DECIMAL(4) ORDERED
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)
+create aggregate quantile(val DECIMAL(9), q DOUBLE) returns DECIMAL(9) ORDERED
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)
+create aggregate quantile(val DECIMAL(18), q DOUBLE) returns DECIMAL(18)
ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(DECIMAL(18), DOUBLE) TO PUBLIC;
-create aggregate quantile(val REAL, q DOUBLE) returns REAL
+create aggregate quantile(val REAL, q DOUBLE) returns REAL ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(REAL, DOUBLE) TO PUBLIC;
-create aggregate quantile(val DOUBLE, q DOUBLE) returns DOUBLE
+create aggregate quantile(val DOUBLE, q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(DOUBLE, DOUBLE) TO PUBLIC;
-create aggregate quantile(val DATE, q DOUBLE) returns DATE
+create aggregate quantile(val DATE, q DOUBLE) returns DATE ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(DATE, DOUBLE) TO PUBLIC;
-create aggregate quantile(val TIME, q DOUBLE) returns TIME
+create aggregate quantile(val TIME, q DOUBLE) returns TIME ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(TIME, DOUBLE) TO PUBLIC;
-create aggregate quantile(val TIMESTAMP, q DOUBLE) returns TIMESTAMP
+create aggregate quantile(val TIMESTAMP, q DOUBLE) returns TIMESTAMP ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(TIMESTAMP, DOUBLE) TO PUBLIC;
-create aggregate quantile(val INTERVAL SECOND, q DOUBLE) returns INTERVAL
SECOND
+create aggregate quantile(val INTERVAL SECOND, q DOUBLE) returns INTERVAL
SECOND ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(INTERVAL SECOND, DOUBLE) TO PUBLIC;
-create aggregate quantile(val INTERVAL DAY, q DOUBLE) returns INTERVAL DAY
+create aggregate quantile(val INTERVAL DAY, q DOUBLE) returns INTERVAL DAY
ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(INTERVAL DAY, DOUBLE) TO PUBLIC;
-create aggregate quantile(val INTERVAL MONTH, q DOUBLE) returns INTERVAL MONTH
+create aggregate quantile(val INTERVAL MONTH, q DOUBLE) returns INTERVAL MONTH
ORDERED
external name "aggr"."quantile";
GRANT EXECUTE ON AGGREGATE quantile(INTERVAL MONTH, DOUBLE) TO PUBLIC;
@@ -376,34 +376,34 @@ create aggregate median_avg(val DOUBLE)
GRANT EXECUTE ON AGGREGATE median_avg(DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val TINYINT, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val TINYINT, q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile_avg";
GRANT EXECUTE ON AGGREGATE quantile_avg(TINYINT, DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val SMALLINT, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val SMALLINT, q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile_avg";
GRANT EXECUTE ON AGGREGATE quantile_avg(SMALLINT, DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val INTEGER, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val INTEGER, q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile_avg";
GRANT EXECUTE ON AGGREGATE quantile_avg(INTEGER, DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val BIGINT, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val BIGINT, q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile_avg";
GRANT EXECUTE ON AGGREGATE quantile_avg(BIGINT, DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val DECIMAL(2), q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val DECIMAL(2), q DOUBLE) returns DOUBLE ORDERED
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
+create aggregate quantile_avg(val DECIMAL(4), q DOUBLE) returns DOUBLE ORDERED
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
+create aggregate quantile_avg(val DECIMAL(9), q DOUBLE) returns DOUBLE ORDERED
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
+create aggregate quantile_avg(val DECIMAL(18), q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile_avg";
GRANT EXECUTE ON AGGREGATE quantile_avg(DECIMAL(18), DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val REAL, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val REAL, q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile_avg";
GRANT EXECUTE ON AGGREGATE quantile_avg(REAL, DOUBLE) TO PUBLIC;
-create aggregate quantile_avg(val DOUBLE, q DOUBLE) returns DOUBLE
+create aggregate quantile_avg(val DOUBLE, q DOUBLE) returns DOUBLE ORDERED
external name "aggr"."quantile_avg";
GRANT EXECUTE ON AGGREGATE quantile_avg(DOUBLE, DOUBLE) TO PUBLIC;
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
@@ -58,31 +58,31 @@ create aggregate median(val DECIMAL(38))
external name "aggr"."median";
GRANT EXECUTE ON AGGREGATE median(DECIMAL(38)) 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 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 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 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_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 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 aggregate corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
+create aggregate corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE ORDERED
external name "aggr"."corr";
GRANT EXECUTE ON AGGREGATE corr(HUGEINT, HUGEINT) TO PUBLIC;
create window corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -3717,6 +3717,7 @@ static sql_exp *
return NULL;
list *obe = NULL;
+ bool handled_order = true;
if (args && args->data.sym && args->data.sym->token != SQL_ORDERBY)
return NULL;
if (args && args->data.sym) { /* handle order by */
@@ -3725,6 +3726,7 @@ static sql_exp *
obe = rel_order_by(query, &gl, args->data.sym, 0, f);
if (!obe)
return NULL;
+ handled_order = false;
}
if (all_freevar) {
@@ -3797,8 +3799,22 @@ static sql_exp *
#endif
);
a = sql_bind_func_result(sql, sname, aname, F_AGGR, true, tpe,
1, exp_subtype(exps->h->data));
- } else
+ } else {
a = sql_bind_func_(sql, sname, aname, exp_types(sql->sa, exps),
F_AGGR, false, false);
+ if (!a && obe && list_length(obe) == 1) { /* try to find
aggregation function with requires order by column */
+ list *nexps = append(sa_list(sql->sa), obe->h->data);
+ nexps = list_merge(nexps, exps, (fdup) NULL);
+ a = sql_bind_func_(sql, sname, aname,
exp_types(sql->sa, nexps), F_AGGR, false, false);
+ if (a && a->func->order_required) {
+ /* reset error */
+ handled_order = true;
+ sql->session->status = 0;
+ sql->errstr[0] = '\0';
+ exps = nexps;
+ obe = NULL;
+ }
+ }
+ }
if (a) {
found = true;
@@ -3812,7 +3828,7 @@ static sql_exp *
bool hasnil = have_nil(exps) || (strcmp(aname, "count") != 0 &&
(!groupby || list_empty(groupby->r))); /* for global case, the aggregate may
return NULL */
sql_exp *e = exp_aggr(sql->sa, exps, a, distinct, no_nil,
groupby?groupby->card:CARD_ATOM, hasnil);
- if (!obe && a->func->order_required) {
+ if (!obe && a->func->order_required && !handled_order) {
/* TODO preper error on missing order by */
return NULL;
}
diff --git
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
---
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
+++
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
@@ -27,5 +27,5 @@ WHERE columns.table_id = tables.id
'objects', 'keys', 'modules', 'sequences')
ORDER BY TABLE_SCHEM, TABLE_NAME, ORDINAL_POSITION
----
-1159 values hashing to 3c2bbe6a5854a6cce3e3b47236e91c82
+1178 values hashing to c15a1143f6d74788897aec600a462b9d
diff --git a/sql/test/Dependencies/Tests/dependency_owner_schema_3.test
b/sql/test/Dependencies/Tests/dependency_owner_schema_3.test
--- a/sql/test/Dependencies/Tests/dependency_owner_schema_3.test
+++ b/sql/test/Dependencies/Tests/dependency_owner_schema_3.test
@@ -886,7 +886,7 @@ DEP_FUNC
query TTT rowsort
SELECT distinct c.name, v.name, 'DEP_VIEW' from sys.columns as c, sys.tables
as v, sys.dependencies as dep where c.id = dep.id AND v.id = dep.depend_id AND
dep.depend_type = 5 AND v.type in (1, 11, 21, 31) order by c.name, v.name
----
-1845 values hashing to f9a2dad1816ec201e57ce394ef9b0abd
+1851 values hashing to 43c843369c24d9e12a0cc728ce11aa67
query TTT rowsort
SELECT c.name, k.name, 'DEP_KEY' from sys.columns as c, sys.objects as kc,
sys.keys as k where kc."name" = c.name AND kc.id = k.id AND k.table_id =
c.table_id AND k.rkey = -1 order by c.name, k.name
diff --git a/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
b/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
--- a/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
+++ b/sql/test/bugs/Tests/innerjoin_multiple-bug-sf-943661.test
@@ -11,7 +11,7 @@ select schemas.name, tables.name, column
'objects', 'keys', 'modules', 'sequences')
order by schemas.name, tables.name, columns.name
----
-435 values hashing to bb81bada51b1bbe50f43e6f3cc184250
+438 values hashing to 2bd7ef18b01fbee6f139b64003828536
query TTT rowsort
select s.name, t.name, c.name from
@@ -26,5 +26,5 @@ select s.name, t.name, c.name from
'objects', 'keys', 'modules', 'sequences')
order by s.name, t.name, c.name
----
-435 values hashing to bb81bada51b1bbe50f43e6f3cc184250
+438 values hashing to 2bd7ef18b01fbee6f139b64003828536
diff --git a/sql/test/emptydb/Tests/check.stable.out
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -1337,6 +1337,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "sys", "functions", "schema_id", "int", 31,
0, NULL, true, 9, NULL, NULL ]
[ "sys._columns", "sys", "functions", "system", "boolean",
1, 0, NULL, true, 10, NULL, NULL ]
[ "sys._columns", "sys", "functions", "semantics", "boolean",
1, 0, NULL, true, 11, NULL, NULL ]
+[ "sys._columns", "sys", "functions", "order_specification",
"tinyint", 1, 0, NULL, true, 12, NULL, NULL ]
[ "sys._columns", "sys", "geometry_columns", "f_table_catalog",
"varchar", 1, 0, NULL, true, 0, NULL, NULL ]
[ "sys._columns", "sys", "geometry_columns", "f_table_schema",
"varchar", 1024, 0, NULL, true, 1, NULL, NULL ]
[ "sys._columns", "sys", "geometry_columns", "f_table_name",
"varchar", 1024, 0, NULL, true, 2, NULL, NULL ]
@@ -2000,8 +2001,8 @@ select 'null in fkeys.delete_action', de
[ "sys.functions", "sys", "getroboturl", "SYSTEM", "create
function getroboturl(theurl url) returns string external name
url.\"getRobotURL\";", "url", "MAL", "Scalar function", false,
false, false, true, NULL, "result", "varchar", 0, 0,
"out", "theurl", "url", 0, 0, "in", NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
[ "sys.functions", "sys", "getuser", "SYSTEM", "create
function getuser(theurl url) returns string external name url.\"getUser\";",
"url", "MAL", "Scalar function", false, false, false, true, NULL,
"result", "varchar", 0, 0, "out", "theurl", "url",
0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL ]
[ "sys.functions", "sys", "greatest", "SYSTEM", "max_no_nil",
"calc", "Internal C", "Scalar function", false, false, false, true,
NULL, "res_0", "any", 0, 0, "out", "arg_1", "any",
0, 0, "in", "arg_2", "any", 0, 0, "in", NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL ]
-[ "sys.functions", "sys", "group_concat", "SYSTEM", "create
aggregate sys.group_concat(str string) returns string external name
\"aggr\".\"str_group_concat\";", "aggr", "MAL", "Aggregate function",
false, false, false, true, NULL, "result", "varchar", 0,
0, "out", "str", "varchar", 0, 0, "in", NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
-[ "sys.functions", "sys", "group_concat", "SYSTEM", "create
aggregate sys.group_concat(str string, sep string) returns string external name
\"aggr\".\"str_group_concat\";", "aggr", "MAL", "Aggregate function",
false, false, false, true, NULL, "result", "varchar", 0,
0, "out", "str", "varchar", 0, 0, "in", "sep",
"varchar", 0, 0, "in", NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
+[ "sys.functions", "sys", "group_concat", "SYSTEM", "create
aggregate sys.group_concat(str string) returns string with order external name
\"aggr\".\"str_group_concat\";", "aggr", "MAL", "Aggregate function", false,
false, false, true, NULL, "result", "varchar", 0, 0,
"out", "str", "varchar", 0, 0, "in", NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys.functions", "sys", "group_concat", "SYSTEM", "create
aggregate sys.group_concat(str string, sep string) returns string with order
external name \"aggr\".\"str_group_concat\";", "aggr", "MAL", "Aggregate
function", false, false, false, true, NULL, "result", "varchar",
0, 0, "out", "str", "varchar", 0, 0, "in",
"sep", "varchar", 0, 0, "in", NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
[ "sys.functions", "sys", "group_concat", "SYSTEM", "create window
sys.group_concat(str string) returns string external name
\"sql\".\"str_group_concat\";", "sql", "MAL", "Analytic function",
false, false, false, true, NULL, "result", "varchar", 0,
0, "out", "str", "varchar", 0, 0, "in", NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
[ "sys.functions", "sys", "group_concat", "SYSTEM", "create window
sys.group_concat(str string, sep string) returns string external name
\"sql\".\"str_group_concat\";", "sql", "MAL", "Analytic function",
false, false, false, true, NULL, "result", "varchar", 0,
0, "out", "str", "varchar", 0, 0, "in", "sep",
"varchar", 0, 0, "in", NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
]
[ "sys.functions", "sys", "has_m", "SYSTEM", "create
function has_m(info integer) returns integer external name geom.\"hasM\";",
"geom", "MAL", "Scalar function", false, false, false, true, NULL,
"result", "int", 31, 0, "out", "info", "int", 31, 0,
"in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL ]
@@ -3502,6 +3503,7 @@ select 'null in fkeys.delete_action', de
[ "column used by view", "sys", "functions", "language",
"information_schema", "parameters", "VIEW" ]
[ "column used by view", "sys", "functions", "mod",
"information_schema", "parameters", "VIEW" ]
[ "column used by view", "sys", "functions", "name",
"information_schema", "parameters", "VIEW" ]
+[ "column used by view", "sys", "functions", "order_specification",
"information_schema", "parameters", "VIEW" ]
[ "column used by view", "sys", "functions", "schema_id",
"information_schema", "parameters", "VIEW" ]
[ "column used by view", "sys", "functions", "semantics",
"information_schema", "parameters", "VIEW" ]
[ "column used by view", "sys", "functions", "side_effect",
"information_schema", "parameters", "VIEW" ]
@@ -4232,6 +4234,7 @@ select 'null in fkeys.delete_action', de
[ "column used by view", "sys", "functions", "language", "sys",
"fully_qualified_functions", "VIEW" ]
[ "column used by view", "sys", "functions", "mod", "sys",
"fully_qualified_functions", "VIEW" ]
[ "column used by view", "sys", "functions", "name", "sys",
"fully_qualified_functions", "VIEW" ]
+[ "column used by view", "sys", "functions", "order_specification",
"sys", "fully_qualified_functions", "VIEW" ]
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]