Changeset: 64aa8408ee4e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=64aa8408ee4e
Added Files:
gdk/gdk_analytic.h
gdk/gdk_analytic_bounds.c
gdk/gdk_analytic_func.c
monetdb5/modules/atoms/mtime_analytic.c
sql/backends/monet5/sql_rank.mal.sh
sql/backends/monet5/sql_rank_hge.mal
sql/backends/monet5/sql_rank_hge.mal.sh
sql/test/analytics/Tests/All
sql/test/analytics/Tests/analytics00.sql
sql/test/analytics/Tests/analytics00.stable.err
sql/test/analytics/Tests/analytics00.stable.out
sql/test/analytics/Tests/analytics01.sql
sql/test/analytics/Tests/analytics01.stable.err
sql/test/analytics/Tests/analytics01.stable.out
sql/test/analytics/Tests/analytics02.sql
sql/test/analytics/Tests/analytics02.stable.err
sql/test/analytics/Tests/analytics02.stable.out
sql/test/analytics/Tests/analytics03.sql
sql/test/analytics/Tests/analytics03.stable.err
sql/test/analytics/Tests/analytics03.stable.out
sql/test/analytics/Tests/analytics04.sql
sql/test/analytics/Tests/analytics04.stable.err
sql/test/analytics/Tests/analytics04.stable.out
sql/test/analytics/Tests/analytics05.sql
sql/test/analytics/Tests/analytics05.stable.err
sql/test/analytics/Tests/analytics05.stable.out
sql/test/analytics/Tests/analytics06.sql
sql/test/analytics/Tests/analytics06.stable.err
sql/test/analytics/Tests/analytics06.stable.out
sql/test/analytics/Tests/analytics07.sql
sql/test/analytics/Tests/analytics07.stable.err
sql/test/analytics/Tests/analytics07.stable.out
sql/test/analytics/Tests/analytics08.sql
sql/test/analytics/Tests/analytics08.stable.err
sql/test/analytics/Tests/analytics08.stable.out
sql/test/analytics/Tests/analytics09.sql
sql/test/analytics/Tests/analytics09.stable.err
sql/test/analytics/Tests/analytics09.stable.out
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/mhelp.c
clients/odbc/driver/SQLGetInfo.c
gdk/Makefile.ag
gdk/gdk_aggr.c
gdk/gdk_bbp.c
gdk/gdk_calc_private.h
monetdb5/modules/atoms/Makefile.ag
monetdb5/modules/atoms/mtime.c
monetdb5/modules/atoms/mtime.h
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
monetdb5/optimizer/opt_support.c
sql/backends/monet5/Makefile.ag
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_hge.mal
sql/backends/monet5/sql_rank.c
sql/backends/monet5/sql_rank.h
sql/backends/monet5/sql_rank.mal
sql/common/sql_types.c
sql/common/sql_types.h
sql/include/sql_catalog.h
sql/scripts/51_sys_schema_extension.sql
sql/server/rel_select.c
sql/server/rel_updates.c
sql/server/sql_atom.c
sql/server/sql_atom.h
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.h
sql/server/sql_parser.y
sql/server/sql_scan.c
sql/server/sql_symbol.c
sql/server/sql_symbol.h
sql/test/BugDay_2005-10-06_2.9.3/Tests/foreign_key_in_frontend_crashes_backend.SF-935578.sql
sql/test/BugTracker-2009/Tests/orderby_with_row_number.SF-2895791.stable.out
sql/test/BugTracker-2012/Tests/row_number_does_not_work_in_complex_query.Bug-2805.stable.out
sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.out
sql/test/BugTracker-2018/Tests/groupby_having_orderby_count.Bug-6624.stable.out
sql/test/Tests/rank.stable.out
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/systemfunctions.stable.out.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
Branch: default
Log Message:
Merged with analytics branch.
diffs (truncated from 19219 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -8377,6 +8377,14 @@ Ready.
[ "batrapi", "subeval_aggr", "pattern batrapi.subeval_aggr(fptr:ptr,
expr:str, arg:any...):any... ", "RAPIevalAggr;", "grouped aggregates
through R" ]
[ "batsql", "alpha", "command batsql.alpha(dec:bat[:dbl],
theta:dbl):bat[:dbl] ", "SQLbat_alpha_cst;", "BAT implementation of
astronomy alpha function" ]
[ "batsql", "alpha", "command batsql.alpha(dec:dbl,
theta:bat[:dbl]):bat[:dbl] ", "SQLcst_alpha_bat;", "BAT implementation of
astronomy alpha function" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:dbl], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "count", "pattern batsql.count(b:bat[:any_1],
ignils:bit, s:bat[:lng], e:bat[:lng]):bat[:lng] ", "SQLcount;", "return
count of groups" ]
+[ "batsql", "cume_dist", "pattern batsql.cume_dist(b:bat[:any_1],
p:any_2, o:any_3):bat[:dbl] ", "SQLcume_dist;", "return the accumulated
distribution of the number of rows per group to the total number of partition
rows" ]
[ "batsql", "dec_round", "command batsql.dec_round(v:bat[:bte],
r:bte):bat[:bte] ", "bte_bat_dec_round_wrap;", "round off the value v
to nearests multiple of r" ]
[ "batsql", "dec_round", "command batsql.dec_round(v:bat[:dbl],
r:dbl):bat[:dbl] ", "dbl_bat_dec_round_wrap;", "round off the value v
to nearests multiple of r" ]
[ "batsql", "dec_round", "command batsql.dec_round(v:bat[:flt],
r:flt):bat[:flt] ", "flt_bat_dec_round_wrap;", "round off the value v
to nearests multiple of r" ]
@@ -8386,8 +8394,38 @@ Ready.
[ "batsql", "dense_rank", "pattern batsql.dense_rank(b:bat[:any_1],
p:any_2, o:any_3):bat[:int] ", "SQLdense_rank;", "return the
densely ranked groups" ]
[ "batsql", "diff", "pattern batsql.diff(b:bat[:any_1]):bat[:bit] ",
"SQLdiff;", "return true if cur != prev row" ]
[ "batsql", "diff", "pattern batsql.diff(p:bat[:bit],
b:bat[:any_1]):bat[:bit] ", "SQLdiff;", "return true if cur != prev row"
]
+[ "batsql", "first_value", "pattern batsql.first_value(b:bat[:any_1],
s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLfirst_value;", "return
the first value of groups" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:any_2, d:any_1,
p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the
previous 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:any_2,
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the
value in the previous 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:any_2, p:any_3,
o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the previous
'l' row in the partition or NULL if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:bat[:any_2],
d:any_1, p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the value
in the previous 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:bat[:any_2],
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return
the value in the previous 'l' row in the partition or 'd' if non existent"
]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:bat[:any_2],
p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the
previous 'l' row in the partition or NULL if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], p:any_3,
o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the previous
row in the partition or NULL if non existent" ]
+[ "batsql", "last_value", "pattern batsql.last_value(b:bat[:any_1],
s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLlast_value;", "return
the last value of groups" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:any_2, d:any_1,
p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the next
'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:any_2,
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the
value in the next 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:any_2, p:any_3,
o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the next 'l' row
in the partition or NULL if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:bat[:any_2],
d:any_1, p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the value
in the next 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:bat[:any_2],
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return
the value in the next 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:bat[:any_2],
p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the
next 'l' row in the partition or NULL if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], p:any_3,
o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the next row in
the partition or NULL if non existent" ]
+[ "batsql", "max", "pattern batsql.max(b:bat[:any_1], s:bat[:lng],
e:bat[:lng]):bat[:any_1] ", "SQLmax;", "return the maximum of groups"
]
+[ "batsql", "min", "pattern batsql.min(b:bat[:any_1], s:bat[:lng],
e:bat[:lng]):bat[:any_1] ", "SQLmin;", "return the minimum of groups"
]
[ "batsql", "next_value", "pattern batsql.next_value(sname:bat[:str],
sequence:str):bat[:lng] ", "mvc_bat_next_value;", "return the next value of
the sequence" ]
+[ "batsql", "nth_value", "pattern batsql.nth_value(b:bat[:any_1],
n:any_2, s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLnth_value;",
"return the nth value of each group" ]
+[ "batsql", "nth_value", "pattern batsql.nth_value(b:bat[:any_1],
n:bat[:any_2], s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLnth_value;",
"return the nth value of each group" ]
+[ "batsql", "ntile", "pattern batsql.ntile(b:bat[:any_1], n:any_2,
p:any_3, o:any_4):bat[:any_2] ", "SQLntile;", "return the groups divided as
equally as possible" ]
+[ "batsql", "ntile", "pattern batsql.ntile(b:bat[:any_1],
n:bat[:any_2], p:any_3, o:any_4):bat[:any_2] ", "SQLntile;", "return the
groups divided as equally as possible" ]
[ "batsql", "password", "pattern
batsql.password(user:bat[:str]):bat[:str] ", "db_password_wrap;", "Return
password hash of user" ]
+[ "batsql", "percent_rank", "pattern batsql.percent_rank(b:bat[:any_1],
p:any_2, o:any_3):bat[:dbl] ", "SQLpercent_rank;", "return the
percentage into the total number of groups for each row" ]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:dbl], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:flt] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
[ "batsql", "rank", "pattern batsql.rank(b:bat[:any_1], p:any_2,
o:any_3):bat[:int] ", "SQLrank;", "return the ranked groups" ]
[ "batsql", "round", "command batsql.round(v:bat[:bte], d:int,
s:int, r:bte):bat[:bte] ", "bte_bat_round_wrap;", "round off the decimal
v(d,s) to r digits behind the dot (if r < 0, before the dot)" ]
[ "batsql", "round", "command batsql.round(v:bat[:dbl],
r:bte):bat[:dbl] ", "dbl_bat_round_wrap;", "round off the floating point v to
r digits behind the dot (if r < 0, before the dot)" ]
@@ -8396,6 +8434,37 @@ Ready.
[ "batsql", "round", "command batsql.round(v:bat[:lng], d:int,
s:int, r:bte):bat[:lng] ", "lng_bat_round_wrap;", "round off the decimal
v(d,s) to r digits behind the dot (if r < 0, before the dot)" ]
[ "batsql", "round", "command batsql.round(v:bat[:sht], d:int,
s:int, r:bte):bat[:sht] ", "sht_bat_round_wrap;", "round off the decimal
v(d,s) to r digits behind the dot (if r < 0, before the dot)" ]
[ "batsql", "row_number", "pattern batsql.row_number(b:bat[:any_1],
p:any_2, o:any_3):bat[:int] ", "SQLrow_number;", "return the
row_numer-ed groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:dbl], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:flt] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:bte]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:dbl]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:flt]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:int]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:lng]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:sht]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bte):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:dbl):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:flt):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:int):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:lng):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:sht):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:bte]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:dbl]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:flt]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:int]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:lng]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:sht]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bte):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:dbl):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:flt):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:int):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:lng):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:sht):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
[ "batstr", "endsWith", "command batstr.endsWith(s:bat[:str],
suffix:bat[:str]):bat[:bit] ", "STRbatSuffix;", "Suffix check." ]
[ "batstr", "endsWith", "command batstr.endsWith(s:bat[:str],
suffix:str):bat[:bit] ", "STRbatSuffixcst;", "Suffix check." ]
[ "batstr", "length", "command batstr.length(s:bat[:str]):bat[:int]
", "STRbatLength;", "Return the length of a string." ]
@@ -10915,6 +10984,12 @@ Ready.
[ "sql", "assert", "pattern sql.assert(b:bit, msg:str):void ",
"SQLassert;", "Generate an exception when b==true" ]
[ "sql", "assert", "pattern sql.assert(b:int, msg:str):void ",
"SQLassertInt;", "Generate an exception when b!=0" ]
[ "sql", "assert", "pattern sql.assert(b:lng, msg:str):void ",
"SQLassertLng;", "Generate an exception when b!=0" ]
+[ "sql", "avg", "pattern sql.avg(b:bte, s:lng, e:lng):dbl ",
"SQLavg;", "return the average of groups" ]
+[ "sql", "avg", "pattern sql.avg(b:dbl, s:lng, e:lng):dbl ",
"SQLavg;", "return the average of groups" ]
+[ "sql", "avg", "pattern sql.avg(b:flt, s:lng, e:lng):dbl ",
"SQLavg;", "return the average of groups" ]
+[ "sql", "avg", "pattern sql.avg(b:int, s:lng, e:lng):dbl ",
"SQLavg;", "return the average of groups" ]
+[ "sql", "avg", "pattern sql.avg(b:lng, s:lng, e:lng):dbl ",
"SQLavg;", "return the average of groups" ]
+[ "sql", "avg", "pattern sql.avg(b:sht, s:lng, e:lng):dbl ",
"SQLavg;", "return the average of groups" ]
[ "sql", "bind", "pattern sql.bind(mvc:int, schema:str, table:str,
column:str, access:int) (uid:bat[:oid], uval:bat[:any_1]) ", "mvc_bind_wrap;",
"Bind the 'schema.table.column' BAT with access kind:\n\t0 - base
table\n\t1 - inserts\n\t2 - updates" ]
[ "sql", "bind", "pattern sql.bind(mvc:int, schema:str, table:str,
column:str, access:int):bat[:any_1] ", "mvc_bind_wrap;", "Bind the
'schema.table.column' BAT with access kind:\n\t0 - base table\n\t1 -
inserts\n\t2 - updates" ]
[ "sql", "bind", "pattern sql.bind(mvc:int, schema:str, table:str,
column:str, access:int, part_nr:int, nr_parts:int) (uid:bat[:oid],
uval:bat[:any_1]) ", "mvc_bind_wrap;", "Bind the
'schema.table.column' BAT with access kind:\n\t0 - base table\n\t1 -
inserts\n\t2 - updates" ]
@@ -10928,7 +11003,9 @@ Ready.
[ "sql", "copy_from", "pattern sql.copy_from(t:ptr, sep:str,
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int,
best:int, fwf:str, onclient:int):bat[:any]... ", "mvc_import_table_wrap;",
"Import a table from bstream s with the \n\tgiven tuple and seperators
(sep/rsep)" ]
[ "sql", "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng],
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", "" ]
[ "sql", "copy_rejects_clear", "pattern sql.copy_rejects_clear():void
", "COPYrejects_clear;", "" ]
+[ "sql", "count", "pattern sql.count(b:any_1, ignils:bit, s:lng,
e:lng):lng ", "SQLcount;", "return count of groups" ]
[ "sql", "createorderindex", "pattern sql.createorderindex(sch:str,
tbl:str, col:str):void ", "sql_createorderindex;", "Instantiate
the order index on a column" ]
+[ "sql", "cume_dist", "pattern sql.cume_dist(b:any_1, p:bit,
o:bit):dbl ", "SQLcume_dist;", "return the accumulated distribution
of the number of rows per group to the total number of partition rows" ]
[ "sql", "current_time", "pattern sql.current_time():daytime ",
"SQLcurrent_daytime;", "Get the clients current daytime" ]
[ "sql", "current_timestamp", "pattern
sql.current_timestamp():timestamp ", "SQLcurrent_timestamp;", "Get the
clients current timestamp" ]
[ "sql", "db_users", "pattern sql.db_users():bat[:str] ",
"db_users_wrap;", "return table of users with sql scenario" ]
@@ -10968,6 +11045,7 @@ Ready.
[ "sql", "exportResult", "pattern sql.exportResult(s:streams,
res_id:int):void ", "mvc_export_result_wrap;", "Export a result (in
order) to stream s" ]
[ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str,
colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, tbl:bat[:str],
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int
", "mvc_export_row_wrap;", "Prepare a table result set for the COPY INTO
stream" ]
[ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str,
colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, tbl:bat[:str],
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int],
cols:bat[:any]...):int ", "mvc_export_table_wrap;", "Prepare a table
result set for the COPY INTO stream" ]
+[ "sql", "first_value", "pattern sql.first_value(b:any_1, s:lng,
e:lng):any_1 ", "SQLfirst_value;", "return the first value of
groups" ]
[ "sql", "flush_log", "command sql.flush_log():void ",
"SQLflush_log;", "flush the log now" ]
[ "sql", "getVariable", "pattern sql.getVariable(mvc:int,
varname:str):any_1 ", "getVariable;", "Get the value of a session variable" ]
[ "sql", "getVersion", "command sql.getVersion(clientid:int):lng ",
"mvc_getVersion;", "Return the database version identifier for a client."
]
@@ -10976,16 +11054,45 @@ Ready.
[ "sql", "importTable", "pattern sql.importTable(sname:str, tname:str,
onclient:int, fname:str...):bat[:any]... ", "mvc_bin_import_table_wrap;",
"Import a table from the files (fname)" ]
[ "sql", "include", "pattern sql.include(fname:str):void ",
"SQLinclude;", "Compile and execute a sql statements on the file" ]
[ "sql", "init", "pattern sql.init():void ", "SQLinitEnvironment;",
"Initialize the environment for MAL" ]
+[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:any_1, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row in
the partition or 'd' if non existent" ]
+[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:bat[:any_1],
p:any_3, o:any_4):any_1 ", "SQLlag;", "return the value in the previous
'l' row in the partition or 'd' if non existent" ]
+[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row
in the partition or NULL if non existent" ]
+[ "sql", "lag", "pattern sql.lag(b:any_1, l:bat[:any_2], d:any_1,
p:any_3, o:any_4):any_1 ", "SQLlag;", "return the value in the previous
'l' row in the partition or 'd' if non existent" ]
+[ "sql", "lag", "pattern sql.lag(b:any_1, l:bat[:any_2], d:bat[:any_1],
p:any_3, o:any_4):any_1 ", "SQLlag;", "return the value in the
previous 'l' row in the partition or 'd' if non existent" ]
+[ "sql", "lag", "pattern sql.lag(b:any_1, l:bat[:any_2], p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row
in the partition or NULL if non existent" ]
+[ "sql", "lag", "pattern sql.lag(b:any_1, p:any_3, o:any_4):any_1 ",
"SQLlag;", "return the value in the previous row in the partition or NULL
if non existent" ]
+[ "sql", "last_value", "pattern sql.last_value(b:any_1, s:lng,
e:lng):any_1 ", "SQLlast_value;", "return the last value of groups"
]
+[ "sql", "lead", "pattern sql.lead(b:any_1, l:any_2, d:any_1, p:any_3,
o:any_4):any_1 ", "SQLlead;", "return the value in the next 'l' row in the
partition or 'd' if non existent" ]
+[ "sql", "lead", "pattern sql.lead(b:any_1, l:any_2, d:bat[:any_1],
p:any_3, o:any_4):any_1 ", "SQLlead;", "return the value in the next 'l'
row in the partition or 'd' if non existent" ]
+[ "sql", "lead", "pattern sql.lead(b:any_1, l:any_2, p:any_3,
o:any_4):any_1 ", "SQLlead;", "return the value in the next 'l' row in the
partition or NULL if non existent" ]
+[ "sql", "lead", "pattern sql.lead(b:any_1, l:bat[:any_2], d:any_1,
p:any_3, o:any_4):any_1 ", "SQLlead;", "return the value in the next 'l'
row in the partition or 'd' if non existent" ]
+[ "sql", "lead", "pattern sql.lead(b:any_1, l:bat[:any_2],
d:bat[:any_1], p:any_3, o:any_4):any_1 ", "SQLlead;", "return the value
in the next 'l' row in the partition or 'd' if non existent" ]
+[ "sql", "lead", "pattern sql.lead(b:any_1, l:bat[:any_2], p:any_3,
o:any_4):any_1 ", "SQLlead;", "return the value in the next 'l' row in
the partition or NULL if non existent" ]
+[ "sql", "lead", "pattern sql.lead(b:any_1, p:any_3, o:any_4):any_1 ",
"SQLlead;", "return the value in the next row in the partition or NULL if
non existent" ]
[ "sql", "logfile", "pattern sql.logfile(filename:str):void ",
"mvc_logfile;", "Enable/disable saving the sql statement traces" ]
+[ "sql", "max", "pattern sql.max(b:any_1, s:lng, e:lng):any_1 ",
"SQLmax;", "return the maximum of groups" ]
+[ "sql", "min", "pattern sql.min(b:any_1, s:lng, e:lng):any_1 ",
"SQLmin;", "return the minimum of groups" ]
[ "sql", "ms_trunc", "command sql.ms_trunc(v:dbl, r:int):dbl ",
"dbl_trunc_wrap;", "truncate the floating point v to r digits behind the
dot (if r < 0, before the dot)" ]
[ "sql", "ms_trunc", "command sql.ms_trunc(v:flt, r:int):flt ",
"flt_trunc_wrap;", "truncate the floating point v to r digits behind the
dot (if r < 0, before the dot)" ]
[ "sql", "mvc", "pattern sql.mvc():int ", "SQLmvc;", "Get
the multiversion catalog context. \nNeeded for correct statement
dependencies\n(ie sql.update, should be after sql.bind in concurrent
execution)" ]
[ "sql", "next_value", "pattern sql.next_value(sname:str,
sequence:str):lng ", "mvc_next_value;", "return the next value of the
sequence" ]
[ "sql", "not_unique", "command sql.not_unique(b:bat[:oid]):bit ",
"not_unique;", "check if the tail sorted bat b doesn't have unique tail
values" ]
+[ "sql", "nth_value", "pattern sql.nth_value(b:any_1, n:any_2, s:lng,
e:lng):any_1 ", "SQLnth_value;", "return the nth value of each group"
]
+[ "sql", "nth_value", "pattern sql.nth_value(b:any_1, n:bat[:any_2],
s:lng, e:lng):any_1 ", "SQLnth_value;", "return the nth value of each
group" ]
+[ "sql", "ntile", "pattern sql.ntile(b:any_1, n:any_2, p:any_3,
o:any_4):any_2 ", "SQLntile;", "return the groups divided as equally as
possible" ]
+[ "sql", "ntile", "pattern sql.ntile(b:any_1, n:bat[:any_2],
p:any_3, o:any_4):any_2 ", "SQLntile;", "return the groups divided as
equally as possible" ]
[ "sql", "optimizer_updates", "pattern sql.optimizer_updates():void
", "SQLoptimizersUpdate;", "" ]
[ "sql", "optimizers", "command sql.optimizers() (X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str]) ", "getPipeCatalog;", "" ]
[ "sql", "password", "pattern sql.password(user:str):str ",
"db_password_wrap;", "Return password hash of user" ]
+[ "sql", "percent_rank", "pattern sql.percent_rank(b:any_1, p:bit,
o:bit):dbl ", "SQLpercent_rank;", "return the percentage into the total
number of groups for each row" ]
[ "sql", "prelude", "pattern sql.prelude():void ", "SQLprelude;",
"" ]
+[ "sql", "prod", "pattern sql.prod(b:bte, s:lng, e:lng):lng ",
"SQLprod;", "return the product of groups" ]
+[ "sql", "prod", "pattern sql.prod(b:dbl, s:lng, e:lng):dbl ",
"SQLprod;", "return the product of groups" ]
+[ "sql", "prod", "pattern sql.prod(b:flt, s:lng, e:lng):dbl ",
"SQLprod;", "return the product of groups" ]
+[ "sql", "prod", "pattern sql.prod(b:flt, s:lng, e:lng):flt ",
"SQLprod;", "return the product of groups" ]
+[ "sql", "prod", "pattern sql.prod(b:int, s:lng, e:lng):lng ",
"SQLprod;", "return the product of groups" ]
+[ "sql", "prod", "pattern sql.prod(b:lng, s:lng, e:lng):lng ",
"SQLprod;", "return the product of groups" ]
+[ "sql", "prod", "pattern sql.prod(b:sht, s:lng, e:lng):lng ",
"SQLprod;", "return the product of groups" ]
[ "sql", "project", "command sql.project(col:bat[:oid],
l:bat[:oid], r:bat[:oid]):bat[:oid] ", "BATleftproject;", "Last step
of a left outer join, ie project the inner join (l,r) over the left input side
(col)" ]
[ "sql", "projectdelta", "command sql.projectdelta(select:bat[:oid],
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",
"DELTAproject2;", "Return column bat with delta's applied." ]
[ "sql", "projectdelta", "command sql.projectdelta(select:bat[:oid],
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3]
", "DELTAproject;", "Return column bat with delta's applied." ]
@@ -11031,6 +11138,13 @@ Ready.
[ "sql", "subdelta", "command sql.subdelta(col:bat[:oid],
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid]):bat[:oid] ",
"DELTAsub2;", "Return a single bat of selected delta." ]
[ "sql", "subdelta", "command sql.subdelta(col:bat[:oid],
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid], ins:bat[:oid]):bat[:oid] ",
"DELTAsub;", "Return a single bat of selected delta." ]
[ "sql", "subzero_or_one", "inline function
sql.subzero_or_one(b:bat[:any_1], gp:bat[:oid], gpe:bat[:oid],
no_nil:bit):bat[:any_1];", "", "" ]
+[ "sql", "sum", "pattern sql.sum(b:bte, s:lng, e:lng):lng ",
"SQLsum;", "return the sum of groups" ]
+[ "sql", "sum", "pattern sql.sum(b:dbl, s:lng, e:lng):dbl ",
"SQLsum;", "return the sum of groups" ]
+[ "sql", "sum", "pattern sql.sum(b:flt, s:lng, e:lng):dbl ",
"SQLsum;", "return the sum of groups" ]
+[ "sql", "sum", "pattern sql.sum(b:flt, s:lng, e:lng):flt ",
"SQLsum;", "return the sum of groups" ]
+[ "sql", "sum", "pattern sql.sum(b:int, s:lng, e:lng):lng ",
"SQLsum;", "return the sum of groups" ]
+[ "sql", "sum", "pattern sql.sum(b:lng, s:lng, e:lng):lng ",
"SQLsum;", "return the sum of groups" ]
+[ "sql", "sum", "pattern sql.sum(b:sht, s:lng, e:lng):lng ",
"SQLsum;", "return the sum of groups" ]
[ "sql", "sysmon_pause", "pattern sql.sysmon_pause(tag:int):void ",
"SYSMONpause;", "" ]
[ "sql", "sysmon_pause", "pattern sql.sysmon_pause(tag:lng):void ",
"SYSMONpause;", "" ]
[ "sql", "sysmon_pause", "pattern sql.sysmon_pause(tag:sht):void ",
"SYSMONpause;", "" ]
@@ -11053,6 +11167,18 @@ Ready.
[ "sql", "update_schemas", "pattern sql.update_schemas():void ",
"SYSupdate_schemas;", "Procedure triggered on update of the sys.schemas
table" ]
[ "sql", "update_tables", "pattern sql.update_tables():void ",
"SYSupdate_tables;", "Procedure triggered on update of the sys._tables
table" ]
[ "sql", "vacuum", "pattern sql.vacuum(sch:str, tbl:str):void ",
"SQLvacuum;", "Choose an approach to consolidate the deletions" ]
+[ "sql", "window_bound", "pattern sql.window_bound(b:any_1, unit:int,
bound:int, excl:int, limit:bte):lng ", "SQLwindow_bound;", "computes
window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(b:any_1, unit:int,
bound:int, excl:int, limit:dbl):lng ", "SQLwindow_bound;", "computes
window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(b:any_1, unit:int,
bound:int, excl:int, limit:flt):lng ", "SQLwindow_bound;", "computes
window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(b:any_1, unit:int,
bound:int, excl:int, limit:int):lng ", "SQLwindow_bound;", "computes
window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(b:any_1, unit:int,
bound:int, excl:int, limit:lng):lng ", "SQLwindow_bound;", "computes
window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(b:any_1, unit:int,
bound:int, excl:int, limit:sht):lng ", "SQLwindow_bound;", "computes
window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(p:bit, b:any_1,
unit:int, bound:int, excl:int, limit:bte):lng ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(p:bit, b:any_1,
unit:int, bound:int, excl:int, limit:dbl):lng ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(p:bit, b:any_1,
unit:int, bound:int, excl:int, limit:flt):lng ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(p:bit, b:any_1,
unit:int, bound:int, excl:int, limit:int):lng ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(p:bit, b:any_1,
unit:int, bound:int, excl:int, limit:lng):lng ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "sql", "window_bound", "pattern sql.window_bound(p:bit, b:any_1,
unit:int, bound:int, excl:int, limit:sht):lng ", "SQLwindow_bound;",
"computes window ranges for each row" ]
[ "sql", "zero_or_one", "command sql.zero_or_one(col:bat[:any_1]):any_1
", "zero_or_one;", "if col contains exactly one value return this. Incase
of more raise an exception else return nil" ]
[ "sqlblob", "#fromstr", "command sqlblob.#fromstr():void ",
"SQLBLOBfromstr;", "" ]
[ "sqlblob", "#tostr", "command sqlblob.#tostr():void ",
"SQLBLOBtostr;", "" ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -11949,6 +11949,15 @@ Ready.
[ "batrapi", "subeval_aggr", "pattern batrapi.subeval_aggr(fptr:ptr,
expr:str, arg:any...):any... ", "RAPIevalAggr;", "grouped aggregates
through R" ]
[ "batsql", "alpha", "command batsql.alpha(dec:bat[:dbl],
theta:dbl):bat[:dbl] ", "SQLbat_alpha_cst;", "BAT implementation of
astronomy alpha function" ]
[ "batsql", "alpha", "command batsql.alpha(dec:dbl,
theta:bat[:dbl]):bat[:dbl] ", "SQLcst_alpha_bat;", "BAT implementation of
astronomy alpha function" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:dbl], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:hge], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "avg", "pattern batsql.avg(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLavg;", "return the average of groups" ]
+[ "batsql", "count", "pattern batsql.count(b:bat[:any_1],
ignils:bit, s:bat[:lng], e:bat[:lng]):bat[:lng] ", "SQLcount;", "return
count of groups" ]
+[ "batsql", "cume_dist", "pattern batsql.cume_dist(b:bat[:any_1],
p:any_2, o:any_3):bat[:dbl] ", "SQLcume_dist;", "return the accumulated
distribution of the number of rows per group to the total number of partition
rows" ]
[ "batsql", "dec_round", "command batsql.dec_round(v:bat[:bte],
r:bte):bat[:bte] ", "bte_bat_dec_round_wrap;", "round off the value v
to nearests multiple of r" ]
[ "batsql", "dec_round", "command batsql.dec_round(v:bat[:dbl],
r:dbl):bat[:dbl] ", "dbl_bat_dec_round_wrap;", "round off the value v
to nearests multiple of r" ]
[ "batsql", "dec_round", "command batsql.dec_round(v:bat[:flt],
r:flt):bat[:flt] ", "flt_bat_dec_round_wrap;", "round off the value v
to nearests multiple of r" ]
@@ -11959,8 +11968,43 @@ Ready.
[ "batsql", "dense_rank", "pattern batsql.dense_rank(b:bat[:any_1],
p:any_2, o:any_3):bat[:int] ", "SQLdense_rank;", "return the
densely ranked groups" ]
[ "batsql", "diff", "pattern batsql.diff(b:bat[:any_1]):bat[:bit] ",
"SQLdiff;", "return true if cur != prev row" ]
[ "batsql", "diff", "pattern batsql.diff(p:bat[:bit],
b:bat[:any_1]):bat[:bit] ", "SQLdiff;", "return true if cur != prev row"
]
+[ "batsql", "first_value", "pattern batsql.first_value(b:bat[:any_1],
s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLfirst_value;", "return
the first value of groups" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:any_2, d:any_1,
p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the
previous 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:any_2,
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the
value in the previous 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:any_2, p:any_3,
o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the previous
'l' row in the partition or NULL if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:bat[:any_2],
d:any_1, p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the value
in the previous 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:bat[:any_2],
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return
the value in the previous 'l' row in the partition or 'd' if non existent"
]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], l:bat[:any_2],
p:any_3, o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the
previous 'l' row in the partition or NULL if non existent" ]
+[ "batsql", "lag", "pattern batsql.lag(b:bat[:any_1], p:any_3,
o:any_4):bat[:any_1] ", "SQLlag;", "return the value in the previous
row in the partition or NULL if non existent" ]
+[ "batsql", "last_value", "pattern batsql.last_value(b:bat[:any_1],
s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLlast_value;", "return
the last value of groups" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:any_2, d:any_1,
p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the next
'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:any_2,
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the
value in the next 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:any_2, p:any_3,
o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the next 'l' row
in the partition or NULL if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:bat[:any_2],
d:any_1, p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the value
in the next 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:bat[:any_2],
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return
the value in the next 'l' row in the partition or 'd' if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], l:bat[:any_2],
p:any_3, o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the
next 'l' row in the partition or NULL if non existent" ]
+[ "batsql", "lead", "pattern batsql.lead(b:bat[:any_1], p:any_3,
o:any_4):bat[:any_1] ", "SQLlead;", "return the value in the next row in
the partition or NULL if non existent" ]
+[ "batsql", "max", "pattern batsql.max(b:bat[:any_1], s:bat[:lng],
e:bat[:lng]):bat[:any_1] ", "SQLmax;", "return the maximum of groups"
]
+[ "batsql", "min", "pattern batsql.min(b:bat[:any_1], s:bat[:lng],
e:bat[:lng]):bat[:any_1] ", "SQLmin;", "return the minimum of groups"
]
[ "batsql", "next_value", "pattern batsql.next_value(sname:bat[:str],
sequence:str):bat[:lng] ", "mvc_bat_next_value;", "return the next value of
the sequence" ]
+[ "batsql", "nth_value", "pattern batsql.nth_value(b:bat[:any_1],
n:any_2, s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLnth_value;",
"return the nth value of each group" ]
+[ "batsql", "nth_value", "pattern batsql.nth_value(b:bat[:any_1],
n:bat[:any_2], s:bat[:lng], e:bat[:lng]):bat[:any_1] ", "SQLnth_value;",
"return the nth value of each group" ]
+[ "batsql", "ntile", "pattern batsql.ntile(b:bat[:any_1], n:any_2,
p:any_3, o:any_4):bat[:any_2] ", "SQLntile;", "return the groups divided as
equally as possible" ]
+[ "batsql", "ntile", "pattern batsql.ntile(b:bat[:any_1],
n:bat[:any_2], p:any_3, o:any_4):bat[:any_2] ", "SQLntile;", "return the
groups divided as equally as possible" ]
[ "batsql", "password", "pattern
batsql.password(user:bat[:str]):bat[:str] ", "db_password_wrap;", "Return
password hash of user" ]
+[ "batsql", "percent_rank", "pattern batsql.percent_rank(b:bat[:any_1],
p:any_2, o:any_3):bat[:dbl] ", "SQLpercent_rank;", "return the
percentage into the total number of groups for each row" ]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:dbl], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:flt] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:hge], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLprod;", "return the product of groups"
]
+[ "batsql", "prod", "pattern batsql.prod(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLprod;", "return the product of groups"
]
[ "batsql", "rank", "pattern batsql.rank(b:bat[:any_1], p:any_2,
o:any_3):bat[:int] ", "SQLrank;", "return the ranked groups" ]
[ "batsql", "round", "command batsql.round(v:bat[:bte], d:int,
s:int, r:bte):bat[:bte] ", "bte_bat_round_wrap;", "round off the decimal
v(d,s) to r digits behind the dot (if r < 0, before the dot)" ]
[ "batsql", "round", "command batsql.round(v:bat[:dbl],
r:bte):bat[:dbl] ", "dbl_bat_round_wrap;", "round off the floating point v to
r digits behind the dot (if r < 0, before the dot)" ]
@@ -11970,6 +12014,46 @@ Ready.
[ "batsql", "round", "command batsql.round(v:bat[:lng], d:int,
s:int, r:bte):bat[:lng] ", "lng_bat_round_wrap;", "round off the decimal
v(d,s) to r digits behind the dot (if r < 0, before the dot)" ]
[ "batsql", "round", "command batsql.round(v:bat[:sht], d:int,
s:int, r:bte):bat[:sht] ", "sht_bat_round_wrap;", "round off the decimal
v(d,s) to r digits behind the dot (if r < 0, before the dot)" ]
[ "batsql", "row_number", "pattern batsql.row_number(b:bat[:any_1],
p:any_2, o:any_3):bat[:int] ", "SQLrow_number;", "return the
row_numer-ed groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:bte], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:dbl], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:dbl] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:flt], s:bat[:lng],
e:bat[:lng]):bat[:flt] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:hge], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:int], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:lng], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:hge] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "sum", "pattern batsql.sum(b:bat[:sht], s:bat[:lng],
e:bat[:lng]):bat[:lng] ", "SQLsum;", "return the sum of groups" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:bte]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:dbl]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:flt]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:int]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:lng]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bat[:sht]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:bte):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:dbl):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:flt):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:int):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:lng):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, limit:sht):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, start:bat[:hge]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(b:bat[:any_1],
unit:int, bound:int, excl:int, start:hge):bat[:lng] ", "SQLwindow_bound;",
"computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:bte]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
+[ "batsql", "window_bound", "pattern batsql.window_bound(p:bat[:bit],
b:bat[:any_1], unit:int, bound:int, excl:int, limit:bat[:dbl]):bat[:lng] ",
"SQLwindow_bound;", "computes window ranges for each row" ]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list