Changeset: c8828137676c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c8828137676c Modified Files: gdk/gdk_batop.c gdk/gdk_calc_convert.c monetdb5/modules/kernel/algebra.c Branch: default Log Message:
Merge with Dec2023 branch. diffs (truncated from 893 to 300 lines): diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c +++ b/gdk/gdk_batop.c @@ -1828,16 +1828,13 @@ BATslice(BAT *b, BUN l, BUN h) BATcheck(b, NULL); BATiter bi = bat_iterator(b); + if (l > bi.count) + l = bi.count; if (h > bi.count) h = bi.count; if (h < l) h = l; - if (l > BUN_MAX || h > BUN_MAX) { - GDKerror("boundary out of range\n"); - goto doreturn; - } - if (complex_cand(b)) { /* slicing a candidate list with exceptions */ struct canditer ci; diff --git a/gdk/gdk_calc_convert.c b/gdk/gdk_calc_convert.c --- a/gdk/gdk_calc_convert.c +++ b/gdk/gdk_calc_convert.c @@ -994,8 +994,8 @@ convert_typeswitchloop(const void *src, oid candoff, bool *reduce, uint8_t scale1, uint8_t scale2, uint8_t precision) { - assert(scale1 < (uint8_t) (sizeof(scales) / sizeof(scales[0]))); - assert(scale2 < (uint8_t) (sizeof(scales) / sizeof(scales[0]))); + assert(stp == TYPE_flt || stp == TYPE_dbl || scale1 < (uint8_t) (sizeof(scales) / sizeof(scales[0]))); + assert(dtp == TYPE_flt || dtp == TYPE_dbl || scale2 < (uint8_t) (sizeof(scales) / sizeof(scales[0]))); switch (ATOMbasetype(stp)) { case TYPE_msk: switch (ATOMbasetype(dtp)) { diff --git a/gdk/gdk_heap.c b/gdk/gdk_heap.c --- a/gdk/gdk_heap.c +++ b/gdk/gdk_heap.c @@ -75,9 +75,6 @@ HEAPcreatefile(int farmid, size_t *maxsz return base; } -static gdk_return HEAPload_intern(Heap *h, const char *nme, const char *ext, const char *suffix, bool trunc); -static gdk_return HEAPsave_intern(Heap *h, const char *nme, const char *ext, const char *suffix, bool dosync, BUN free, MT_Lock *lock); - static char * decompose_filename(str nme) { diff --git a/monetdb5/modules/kernel/algebra.c b/monetdb5/modules/kernel/algebra.c --- a/monetdb5/modules/kernel/algebra.c +++ b/monetdb5/modules/kernel/algebra.c @@ -120,10 +120,6 @@ slice(BAT **retval, BAT *b, lng start, l } if (is_lng_nil(end)) end = BATcount(b); - if (start > (lng) BUN_MAX || end >= (lng) BUN_MAX) { - GDKerror("argument out of range\n"); - return GDK_FAIL; - } return (*retval = BATslice(b, (BUN) start, (BUN) end + 1)) ? GDK_SUCCEED : GDK_FAIL; } @@ -971,8 +967,10 @@ ALGfirstn(Client cntxt, MalBlkPtr mb, Ma assert(pci->argc - pci->retc >= 5 && pci->argc - pci->retc <= 7); n = *getArgReference_lng(stk, pci, pci->argc - 4); - if (n < 0 || (lng) n >= (lng) BUN_MAX) + if (n < 0) throw(MAL, "algebra.firstn", ILLEGAL_ARGUMENT); + if (n > (lng) BUN_MAX) + n = BUN_MAX; ret1 = getArgReference_bat(stk, pci, 0); if (pci->retc == 2) ret2 = getArgReference_bat(stk, pci, 1); @@ -1433,8 +1431,7 @@ ALGsubslice_lng(bat *ret, const bat *bid BAT *b, *bn; BUN s, e; - if (*start < 0 || *start > (lng) BUN_MAX || - (*end < 0 && !is_lng_nil(*end)) || *end >= (lng) BUN_MAX) + if (*start < 0 || (*end < 0 && !is_lng_nil(*end))) throw(MAL, "algebra.subslice", ILLEGAL_ARGUMENT); if ((b = BBPquickdesc(*bid)) == NULL) throw(MAL, "algebra.subslice", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); diff --git a/sql/benchmarks/tpcds/Tests/All b/sql/benchmarks/tpcds/Tests/All --- a/sql/benchmarks/tpcds/Tests/All +++ b/sql/benchmarks/tpcds/Tests/All @@ -1,1 +1,1 @@ -HAVE_DATA_PATH&!ARCH_BITS32?one +HAVE_DATA_PATH?one diff --git a/sql/benchmarks/tpcds/Tests/one.test.in b/sql/benchmarks/tpcds/Tests/one.test.in --- a/sql/benchmarks/tpcds/Tests/one.test.in +++ b/sql/benchmarks/tpcds/Tests/one.test.in @@ -5973,6 +5973,7 @@ limit 100 ---- 600 values hashing to f1cce2608f5e93697e23da9b25217519 +skipif bits=32bit query ITRRRR rowsort -- query 51a WITH web_tv as ( diff --git a/sql/server/rel_statistics.h b/sql/server/rel_statistics.h --- a/sql/server/rel_statistics.h +++ b/sql/server/rel_statistics.h @@ -70,6 +70,9 @@ statistics_atom_min(mvc *sql, atom *v1, static inline void set_minmax_property(mvc *sql, sql_exp *e, rel_prop kind, atom *val) { + if (val == NULL) + return; + sql_subtype *tpe = exp_subtype(e); prop *found = find_prop(e->p, kind); diff --git a/sql/test/BugTracker-2010/Tests/All b/sql/test/BugTracker-2010/Tests/All --- a/sql/test/BugTracker-2010/Tests/All +++ b/sql/test/BugTracker-2010/Tests/All @@ -3,7 +3,6 @@ slow-query.Bug-2671 corrupted_values_after_updates.SF-2938065 tableDataLimit.SF-2944504 order_by_on_single_row_view.SF-2950453 -offset_limited_32bit.SF-2950579 correlated_update_type_mismatch.SF-2947841 heap_combine_crash.SF-2947763 rank-over-crash.SF-2926454 diff --git a/sql/test/BugTracker-2010/Tests/offset_limited_32bit.SF-2950579.py b/sql/test/BugTracker-2010/Tests/offset_limited_32bit.SF-2950579.py deleted file mode 100644 --- a/sql/test/BugTracker-2010/Tests/offset_limited_32bit.SF-2950579.py +++ /dev/null @@ -1,32 +0,0 @@ -import sys, os, pymonetdb, platform - -db = os.getenv("TSTDB") -port = int(os.getenv("MAPIPORT")) - -conn1 = pymonetdb.connect(database=db, port=port, autocommit=True, username='monetdb', password='monetdb') -cur1 = conn1.cursor() -try: - cur1.execute('select cast(1 as hugeint)') - has_huge = True -except pymonetdb.DatabaseError as e: - has_huge = False - -architecture = platform.architecture()[0] - -try: - cur1.execute('SELECT * from tables OFFSET 2147483647;') - if architecture == '32bit': - sys.stderr.write("Exception expected") -except pymonetdb.DatabaseError as e: - if architecture == '32bit': - if "Illegal argument" not in str(e): - sys.stderr.write('Wrong error %s, expected Illegal argument' % (str(e))) - else: - raise e - -cur1.execute('SELECT * from tables OFFSET 2147483646;') -if cur1.fetchall() != []: - sys.stderr.write("An empty result set expected") - -cur1.close() -conn1.close() diff --git a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test --- a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test +++ b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test @@ -434,7 +434,7 @@ DROP TABLE v0 -- DROP TABLE v0 -- 31.sql -statement error 22003!overflow in conversion of -7179133497070583808000000000000 (approx. value) to sht. +statement error 22003!overflow ... SELECT ALL ( SELECT - - - - - - - - - - - 1 - - - - - - 16 FROM ( SELECT NULL - - - - - - - - - - - - - - - - 1 FROM ( SELECT - - - - 1 * - - - - - - 2147483648 * - - - 43 * 77745222.000000 ) AS v1 ( v1 ) GROUP BY GROUPING SETS ( GROUPING SETS ( CUBE ( v1 ) ) ) ORDER BY v1 , - - - 86 + - - 93 ^ v1 , v1 LIMIT 21 ) AS v1 UNION SELECT - - - - - - - - - - - - 93 WHERE - v1 < - 63226945.000000 - - - - - - - - - - 68 ) FROM ( VALUES ( - - - - - - - - - 40 / - ( SELECT - - - - - - - - 0 WHERE - - - - - - - 40 = - - - - - 0 ) ) , ( - - 88 ) ) v1 ( v1 ) -- 32.sql @@ -476,17 +476,17 @@ statement ok DROP TABLE v0 -- 35.sql --- statement ok --- CREATE TABLE v0(v1 FLOAT (41, 29) DEFAULT 745433.000000) +statement ok +CREATE TABLE v0(v1 FLOAT (41, 29) DEFAULT 745433.000000) --- statement ok --- INSERT INTO v0 VALUES (0), (93), (NULL), (-128), (0), (59), (24) +statement ok +INSERT INTO v0 VALUES (0), (93), (NULL), (-128), (0), (59), (24) --- statement ok --- SELECT AVG(v1) OVER (PARTITION BY -1) AS VALUE FROM v0 v0 NATURAL JOIN v0 VARIABLES +statement ok +SELECT AVG(v1) OVER (PARTITION BY -1) AS VALUE FROM v0 v0 NATURAL JOIN v0 VARIABLES --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 -- 36.sql statement ok diff --git a/sql/test/BugTracker-2024/Tests/exp-bin-crash-7434.test b/sql/test/BugTracker-2024/Tests/exp-bin-crash-7434.test --- a/sql/test/BugTracker-2024/Tests/exp-bin-crash-7434.test +++ b/sql/test/BugTracker-2024/Tests/exp-bin-crash-7434.test @@ -1,7 +1,7 @@ statement ok CREATE TABLE v0 ( v1 REAL ) -statement error conversion of string '<js>null</js>' to type hge failed. +statement error conversion of string '<js>null</js>' to type ... SELECT ( NULL IN ( ( SELECT median ( 1 ) ) , ntile ( '<js>null</js>' ) OVER ( ) ) ) AS new_column FROM v0 statement ok diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit b/sql/test/emptydb/Tests/check.stable.out.32bit --- a/sql/test/emptydb/Tests/check.stable.out.32bit +++ b/sql/test/emptydb/Tests/check.stable.out.32bit @@ -533,6 +533,7 @@ select 'null in fkeys.delete_action', de [ "sys._tables", "sys", "function_languages", NULL, "TABLE", true, "COMMIT", "READONLY", NULL ] [ "sys._tables", "sys", "function_types", NULL, "TABLE", true, "COMMIT", "READONLY", NULL ] [ "sys._tables", "sys", "functions", NULL, "TABLE", true, "COMMIT", "WRITABLE", NULL ] +[ "sys._tables", "sys", "geometry_columns", "create view sys.geometry_columns as select cast(null as varchar(1)) as f_table_catalog, s.name as f_table_schema, t.name as f_table_name, c.name as f_geometry_column, cast(has_z(c.type_digits) + has_m(c.type_digits) +2 as integer) as coord_dimension, c.type_scale as srid, get_type(c.type_digits, 0) as geometry_type from sys.columns c, sys.tables t, sys.schemas s where c.table_id = t.id and t.schema_id = s.id and c.type in (select sqlname from sys.types where systemname in ('wkb', 'wkba'));", "VIEW", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "ids", "create view sys.ids (id, name, schema_id, table_id, table_name, obj_type, sys_table, system) as select id, name, cast(null as int) as schema_id, cast(null as int) as table_id, cast(null as varchar(124)) as table_name, 'author' as obj_type, 'sys.auths' as sys_table, (name in ('public','sysadmin','monetdb','.snapshot')) as system from sys.auths union all select id, name, cast(null as int) as schema_id, cast(null as int) as table_id, cast(null as varchar(124)) as table_name, ifthenelse(system, 'system schema', 'schema'), 'sys.schemas', system from sys.schemas union all select t.id, name, t.schema_id, t.id as table_id, t.name as table_name, cast(lower(tt.table_type_name) as varchar(40)), 'sys.tables', t.system from sys.tables t left outer join sys.table_types tt on t.type = tt.table_type_id union all select c.id, c.name, t.schema_id, c.table_id, t.name as table_name, ifthenelse(t.system, 'system column', 'column'), 'sys._columns', t.system from sys._colum ns c join sys._tables t on c.table_id = t.id union all select c.id, c.name, t.schema_id, c.table_id, t.name as table_name, 'column', 'tmp._columns', t.system from tmp._columns c join tmp._tables t on c.table_id = t.id union all select k.id, k.name, t.schema_id, k.table_id, t.name as table_name, ifthenelse(t.system, 'system key', 'key'), 'sys.keys', t.system from sys.keys k join sys._tables t on k.table_id = t.id union all select k.id, k.name, t.schema_id, k.table_id, t.name as table_name, 'key', 'tmp.keys', t.system from tmp.keys k join tmp._tables t on k.table_id = t.id union all select i.id, i.name, t.schema_id, i.table_id, t.name as table_name, ifthenelse(t.system, 'system index', 'index'), 'sys.idxs', t.system from sys.idxs i join sys._tables t on i.table_id = t.id union all select i.id, i.name, t.schema_id, i.table_id, t.name as table_name, 'index' , 'tmp.idxs', t.system from tmp.idxs i join tmp._tables t on i.table_id = t.id union all select g.id, g.name, t.schema_id, g.table_ id, t.name as table_name, ifthenelse(t.system, 'system trigger', 'trigger'), 'sys.triggers', t.system from sys.triggers g join sys._tables t on g.table_id = t.id union all select g.id, g.name, t.schema_id, g.table_id, t.name as table_name, 'trigger', 'tmp.triggers', t.system from tmp.triggers g join tmp._tables t on g.table_id = t.id union all select f.id, f.name, f.schema_id, cast(null as int) as table_id, cast(null as varchar(124)) as table_name, cast(ifthenelse(f.system, 'system ', '') || lower(ft.function_type_keyword) as varchar(40)), 'sys.functions', f.system from sys.functions f left outer join sys.function_types ft on f.type = ft.function_type_id union all select a.id, a.name, f.schema_id, a.func_id as table_id, f.name as table_name, cast(ifthenelse(f.system, 'system ', '') || lower(ft.function_type_keyword) || ' arg' as varchar(44)), 'sys.args', f.system from sys.args a join sys.functions f on a.func_id = f.id left outer join sys.function_types ft on f.type = ft.function_ty pe_id union all select id, name, schema_id, cast(null as int) as table_id, cast(null as varchar(124)) as table_name, 'sequence', 'sys.sequences', false from sys.sequences union all select o.id, o.name, pt.schema_id, pt.id, pt.name, 'partition of merge table', 'sys.objects', false from sys.objects o join sys._tables pt on o.sub = pt.id join sys._tables mt on o.nr = mt.id where mt.type = 3 union all select id, sqlname, schema_id, cast(null as int) as table_id, cast(null as varchar(124)) as table_name, 'type', 'sys.types', (sqlname in ('inet','json','url','uuid')) from sys.types where id > 2000 order by id;", "VIEW", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "idxs", NULL, "TABLE", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "index_types", NULL, "TABLE", true, "COMMIT", "READONLY", NULL ] @@ -563,6 +564,7 @@ select 'null in fkeys.delete_action', de [ "sys._tables", "sys", "schemastorage", "create view sys.\"schemastorage\" as select \"schema\", count(*) as \"storages\", sum(columnsize) as columnsize, sum(heapsize) as heapsize, sum(hashes) as hashsize, sum(\"imprints\") as imprintsize, sum(orderidx) as orderidxsize from sys.\"storage\" group by \"schema\" order by \"schema\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "sequences", NULL, "TABLE", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "sessions", "create view sys.sessions as select * from sys.sessions();", "VIEW", true, "COMMIT", "WRITABLE", NULL ] +[ "sys._tables", "sys", "spatial_ref_sys", NULL, "TABLE", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "statistics", "create view sys.\"statistics\" as select * from sys.\"statistics\"() where (\"schema\", \"table\") in (select sch.\"name\", tbl.\"name\" from sys.\"tables\" as tbl join sys.\"schemas\" as sch on tbl.schema_id = sch.id where tbl.\"system\" = false) order by \"schema\", \"table\", \"column\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "storage", "create view sys.\"storage\" as select * from sys.\"storage\"() where (\"schema\", \"table\") in (select sch.\"name\", tbl.\"name\" from sys.\"tables\" as tbl join sys.\"schemas\" as sch on tbl.schema_id = sch.id where tbl.\"system\" = false) order by \"schema\", \"table\", \"column\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "storagemodel", "create view sys.storagemodel as select \"schema\", \"table\", \"column\", \"type\", \"count\", sys.columnsize(\"type\", \"count\") as columnsize, sys.heapsize(\"type\", \"count\", \"distinct\", \"atomwidth\") as heapsize, sys.hashsize(\"reference\", \"count\") as hashsize, case when isacolumn then sys.imprintsize(\"type\", \"count\") else 0 end as imprintsize, case when (isacolumn and not sorted) then cast(8 * \"count\" as bigint) else 0 end as orderidxsize, sorted, \"unique\", isacolumn from sys.storagemodelinput order by \"schema\", \"table\", \"column\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ] @@ -1328,6 +1330,13 @@ select 'null in fkeys.delete_action', de [ "sys._columns", "sys", "functions", "schema_id", "int", 32, 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", "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 ] +[ "sys._columns", "sys", "geometry_columns", "f_geometry_column", "varchar", 1024, 0, NULL, true, 3, NULL, NULL ] +[ "sys._columns", "sys", "geometry_columns", "coord_dimension", "int", 32, 0, NULL, true, 4, NULL, NULL ] +[ "sys._columns", "sys", "geometry_columns", "srid", "int", 32, 0, NULL, true, 5, NULL, NULL ] +[ "sys._columns", "sys", "geometry_columns", "geometry_type", "clob", 0, 0, NULL, true, 6, NULL, NULL ] [ "sys._columns", "sys", "ids", "id", "int", 32, 0, NULL, true, 0, NULL, NULL ] [ "sys._columns", "sys", "ids", "name", "varchar", 1024, 0, NULL, true, 1, NULL, NULL ] [ "sys._columns", "sys", "ids", "schema_id", "int", 32, 0, NULL, true, 2, NULL, NULL ] @@ -1493,6 +1502,11 @@ select 'null in fkeys.delete_action', de [ "sys._columns", "sys", "sessions", "querytimeout", "int", 32, 0, NULL, true, 6, NULL, NULL ] [ "sys._columns", "sys", "sessions", "workerlimit", "int", 32, 0, NULL, true, 7, NULL, NULL ] [ "sys._columns", "sys", "sessions", "memorylimit", "int", 32, 0, NULL, true, 8, NULL, NULL ] +[ "sys._columns", "sys", "spatial_ref_sys", "srid", "int", 32, 0, NULL, false, 0, NULL, NULL ] +[ "sys._columns", "sys", "spatial_ref_sys", "auth_name", "varchar", 256, 0, NULL, true, 1, NULL, NULL ] +[ "sys._columns", "sys", "spatial_ref_sys", "auth_srid", "int", 32, 0, NULL, true, 2, NULL, NULL ] +[ "sys._columns", "sys", "spatial_ref_sys", "srtext", "varchar", 2048, 0, NULL, true, 3, NULL, NULL ] +[ "sys._columns", "sys", "spatial_ref_sys", "proj4text", "varchar", 2048, 0, NULL, true, 4, NULL, NULL ] [ "sys._columns", "sys", "statistics", "column_id", "int", 32, 0, NULL, true, 0, NULL, NULL ] [ "sys._columns", "sys", "statistics", "schema", "varchar", 1024, 0, NULL, true, 1, NULL, NULL ] [ "sys._columns", "sys", "statistics", "table", "varchar", 1024, 0, NULL, true, 2, NULL, NULL ] @@ -1679,7 +1693,7 @@ select 'null in fkeys.delete_action', de % .%1, .s, .f, ., ., .f, .fl, ., .f, .f, .f, .f, ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., ., . # table_name % %1, name, name, system, query, mod, language_name, func_type, side_effect, varres, vararg, semantics, comment, name0, type0, type_digits0, type_scale0, inout0, name1, type1, type_digits1, type_scale1, inout1, name2, type2, type_digits2, type_scale2, inout2, name3, type3, type_digits3, type_scale3, inout3, name4, type4, type_digits4, type_scale4, inout4, name5, type5, type_digits5, type_scale5, inout5, name6, type6, type_digits6, type_scale6, inout6, name7, type7, type_digits7, type_scale7, inout7, name8, type8, type_digits8, type_scale8, inout8, name9, type9, type_digits9, type_scale9, inout9, name10, type10, type_digits10, type_scale10, inout10, name11, type11, type_digits11, type_scale11, inout11, name12, type12, type_digits12, type_scale12, inout12, name13, type13, type_digits13, type_scale13, inout13, name14, type14, type_digits14, type_scale14, inout14, name15, type15, type_digits15, type_scale15, inout15 # name % char, varchar, varchar, char, clob, varchar, varchar, varchar, boolean, boolean, boolean, boolean, varchar, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char, varchar, varchar, int, int, char # type -% 13, 8, 37, 6, 3806, 9, 10, 26, 5, 5, 5, 5, 0, 11, 14, 4, 1, 3, 10, 14, 4, 1, 3, 11, 14, 4, 1, 3, 10, 12, 4, 1, 3, 9, 9, 4, 1, 3, 14, 7, 4, 1, 3, 12, 9, 2, 1, 3, 11, 7, 2, 1, 3, 11, 7, 2, 1, 3, 10, 6, 2, 1, 3, 9, 6, 2, 1, 3, 6, 7, 1, 1, 3, 9, 7, 2, 1, 3, 6, 7, 4, 1, 3, 9, 7, 4, 1, 3, 6, 7, 4, 1, 3 # length +% 13, 8, 37, 6, 3806, 9, 10, 26, 5, 5, 5, 5, 0, 11, 14, 4, 1, 3, 16, 14, 4, 1, 3, 16, 14, 4, 1, 3, 27, 12, 4, 1, 3, 9, 9, 4, 1, 3, 14, 7, 4, 1, 3, 12, 9, 2, 1, 3, 11, 7, 2, 1, 3, 11, 7, 2, 1, 3, 10, 6, 2, 1, 3, 9, 6, 2, 1, 3, 6, 7, 1, 1, 3, 9, 7, 2, 1, 3, 6, 7, 4, 1, 3, 9, 7, 4, 1, 3, 6, 7, 4, 1, 3 # length [ "sys.functions", "json", "filter", "SYSTEM", "create function json.filter(js json, name bigint) returns json external name json.filter;", "json", "MAL", "Scalar function", false, false, false, true, NULL, "result", "json", 0, 0, "out", "js", "json", 0, 0, "in", "name", "bigint", 64, 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", "json", "filter", "SYSTEM", "create function json.filter(js json, name integer) returns json external name json.filter;", "json", "MAL", "Scalar function", false, false, false, true, NULL, "result", "json", 0, 0, "out", "js", "json", 0, 0, "in", "name", "int", 32, 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", "json", "filter", "SYSTEM", "create function json.filter(js json, name tinyint) returns json external name json.filter;", "json", "MAL", "Scalar function", false, false, false, true, NULL, "result", "json", 0, 0, "out", "js", "json", 0, 0, "in", "name", "tinyint", 8, 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 ] @@ -1836,6 +1850,7 @@ select 'null in fkeys.delete_action', de [ "sys.functions", "sys", "concat", "SYSTEM", "+", "calc", "Internal C", "Scalar function", false, false, false, false, NULL, "res_0", "varchar", 0, 0, "out", "arg_1", "varchar", 0, 0, "in", "arg_2", "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", "contains", "SYSTEM", "create filter function sys.contains(x string, y string) external name str.contains;", "str", "MAL", "Filter function", false, false, false, true, NULL, "x", "clob", 0, 0, "in", "y", "clob", 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", "contains", "SYSTEM", "create filter function sys.contains(x string, y string, icase boolean) external name str.contains;", "str", "MAL", "Filter function", false, false, false, true, NULL, "x", "clob", 0, 0, "in", "y", "clob", 0, 0, "in", "icase", "boolean", 1, 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", "contains", "SYSTEM", "create function contains(a geometry, x double, y double) returns boolean external name geom.\"Contains\";", "geom", "MAL", "Scalar function", false, false, false, true, NULL, "result", "boolean", 1, 0, "out", "a", "geometry", 0, 0, "in", "x", "double", 53, 0, "in", "y", "double", 53, 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 ] [ "sys.functions", "sys", "contains", "SYSTEM", "create function sys.contains(x string, y string) returns boolean external name str.contains;", "str", "MAL", "Scalar function", false, false, false, true, NULL, "result", "boolean", 1, 0, "out", "x", "clob", 0, 0, "in", "y", "clob", 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", "contains", "SYSTEM", "create function sys.contains(x string, y string, icase boolean) returns boolean external name str.contains;", "str", "MAL", "Scalar function", false, false, false, true, NULL, "result", "boolean", 1, 0, "out", "x", "clob", 0, 0, "in", "y", "clob", 0, 0, "in", "icase", "boolean", 1, 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 ] [ "sys.functions", "sys", "corr", "SYSTEM", "create aggregate corr(e1 bigint, e2 bigint) returns double external name \"aggr\".\"corr\";", "aggr", "MAL", "Aggregate function", false, false, false, true, NULL, "result", "double", 53, 0, "out", "e1", "bigint", 64, 0, "in", "e2", "bigint", 64, 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 ] @@ -1970,8 +1985,10 @@ select 'null in fkeys.delete_action', de [ "sys.functions", "sys", "generate_series", "SYSTEM", "create function sys.generate_series(first timestamp, \"limit\" timestamp, stepsize interval second) returns table (value timestamp) external name generator.series;", "generator", "MAL", "Function returning a table", false, false, false, true, NULL, "value", "timestamp", 7, 0, "out", "first", "timestamp", 7, 0, "in", "limit", "timestamp", 7, 0, "in", "stepsize", "sec_interval", 13, 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 ] [ "sys.functions", "sys", "generate_series", "SYSTEM", "create function sys.generate_series(first tinyint, \"limit\" tinyint) returns table (value tinyint) external name generator.series;", "generator", "MAL", "Function returning a table", false, false, false, true, NULL, "value", "tinyint", 8, 0, "out", "first", "tinyint", 8, 0, "in", "limit", "tinyint", 8, 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", "generate_series", "SYSTEM", "create function sys.generate_series(first tinyint, \"limit\" tinyint, stepsize tinyint) returns table (value tinyint) external name generator.series;", "generator", "MAL", "Function returning a table", false, false, false, true, NULL, "value", "tinyint", 8, 0, "out", "first", "tinyint", 8, 0, "in", "limit", "tinyint", 8, 0, "in", "stepsize", "tinyint", 8, 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 ] +[ "sys.functions", "sys", "geometrytype", "SYSTEM", "create function geometrytype(geom geometry) returns string external name geom.\"GeometryType1\";", "geom", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "geom", "geometry", 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", "get_merge_table_partition_expressions", "SYSTEM", "create function sys.get_merge_table_partition_expressions(tid int) returns string begin return select case when tp.table_id is not null then ' PARTITION BY ' || ifthenelse(bit_and(tp.type, 2) = 2, 'VALUES ', 'RANGE ') || case when bit_and(tp.type, 4) = 4 then 'ON ' || '(' || (select sys.dq(c.name) || ')' from sys.columns c where c.id = tp.column_id) else 'USING ' || '(' || tp.expression || ')' end else '' end from (values (tid)) t(id) left join sys.table_partitions tp on t.id = tp.table_id; end;", "sql", "SQL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "tid", "int", 32, 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", "get_remote_table_expressions", "SYSTEM", "create function sys.get_remote_table_expressions(s string, t string) returns string begin return select ' ON ' || sys.sq(tt.query) || ' WITH USER ' || sys.sq(username) || ' ENCRYPTED PASSWORD ' || sys.sq(sys.decypher(\"password\")) from sys.remote_user_info r, sys._tables tt, sys.schemas ss where tt.name = t and ss.name = s and tt.schema_id = ss.id and r.table_id = tt.id; end;", "sql", "SQL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "s", "clob", 0, 0, "in", "t", "clob", 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", "get_type", "SYSTEM", "create function get_type(info integer, format integer) returns string external name geom.\"getType\";", "geom", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "info", "int", 32, 0, "in", "format", "int", 32, 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", "get_value_for", "SYSTEM", "get_value", "sql", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "bigint", 64, 0, "out", "arg_1", "char", 0, 0, "in", "arg_2", "char", 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", "get_value_for", "SYSTEM", "get_value", "sql", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "bigint", 64, 0, "out", "arg_1", "clob", 0, 0, "in", "arg_2", "clob", 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", "get_value_for", "SYSTEM", "get_value", "sql", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "bigint", 64, 0, "out", "arg_1", "varchar", 0, 0, "in", "arg_2", "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 ] @@ -1983,6 +2000,7 @@ select 'null in fkeys.delete_action', de [ "sys.functions", "sys", "getfile", "SYSTEM", "create function getfile(theurl url) returns string external name url.\"getFile\";", "url", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 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", "gethost", "SYSTEM", "create function gethost(theurl url) returns string external name url.\"getHost\";", "url", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 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", "getport", "SYSTEM", "create function getport(theurl url) returns string external name url.\"getPort\";", "url", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 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", "getproj4", "SYSTEM", "create function getproj4(srid_in integer) returns string begin return select proj4text from spatial_ref_sys where srid=srid_in; end;", "sql", "SQL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "srid_in", "int", 32, 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", "getprotocol", "SYSTEM", "create function getprotocol(theurl url) returns string external name url.\"getProtocol\";", "url", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 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", "getquery", "SYSTEM", "create function getquery(theurl url) returns string external name url.\"getQuery\";", "url", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 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", "getroboturl", "SYSTEM", "create function getroboturl(theurl url) returns string external name url.\"getRobotURL\";", "url", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 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 ] @@ -1992,6 +2010,8 @@ select 'null in fkeys.delete_action', de [ "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", "clob", 0, 0, "out", "str", "clob", 0, 0, "in", "sep", "clob", 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", "clob", 0, 0, "out", "str", "clob", 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", "clob", 0, 0, "out", "str", "clob", 0, 0, "in", "sep", "clob", 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", 32, 0, "out", "info", "int", 32, 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", "has_z", "SYSTEM", "create function has_z(info integer) returns integer external name geom.\"hasZ\";", "geom", "MAL", "Scalar function", false, false, false, true, NULL, "result", "int", 32, 0, "out", "info", "int", 32, 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 ] _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org