Changeset: 908d8b85a640 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=908d8b85a640 Added Files: monetdb5/optimizer/Tests/commonTerms.stable.err monetdb5/optimizer/Tests/commonTerms.stable.out sql/include/sql_querytype.h sql/server/rel_unnest.c sql/server/rel_unnest.h sql/server/sql_query.c sql/server/sql_query.h sql/test/BugTracker-2018/Tests/lateral-join-crash.Bug-6613.stable.err sql/test/BugTracker-2018/Tests/lateral-join-crash.Bug-6613.stable.out sql/test/BugTracker-2019/Tests/subselect.Bug-6700.sql sql/test/BugTracker-2019/Tests/subselect.Bug-6700.stable.err sql/test/BugTracker-2019/Tests/subselect.Bug-6700.stable.out sql/test/rename/Tests/rename09.sql sql/test/rename/Tests/rename09.stable.err sql/test/rename/Tests/rename09.stable.out sql/test/subquery/Tests/All sql/test/subquery/Tests/all.stable.err sql/test/subquery/Tests/all.stable.out sql/test/subquery/Tests/any.stable.err sql/test/subquery/Tests/any.stable.out sql/test/subquery/Tests/any_all.stable.err sql/test/subquery/Tests/any_all.stable.out sql/test/subquery/Tests/correlated.sql sql/test/subquery/Tests/correlated.stable.err sql/test/subquery/Tests/correlated.stable.out sql/test/subquery/Tests/scalar.stable.err sql/test/subquery/Tests/scalar.stable.out sql/test/subquery/Tests/subquery.sql sql/test/subquery/Tests/subquery.stable.err sql/test/subquery/Tests/subquery.stable.out sql/test/subquery/Tests/subquery2.sql sql/test/subquery/Tests/subquery2.stable.err sql/test/subquery/Tests/subquery2.stable.out Removed Files: sql/include/sql_query.h Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_batop.c gdk/gdk_calc.h gdk/gdk_join.c gdk/gdk_logger.c monetdb5/mal/mal_authorize.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/algebra.h monetdb5/modules/kernel/algebra.mal monetdb5/modules/mal/wlc.mal monetdb5/optimizer/Tests/commonTerms.malC monetdb5/optimizer/opt_mergetable.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql.mal sql/backends/monet5/sql_bat2time.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_rank.mal sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_statement.h sql/backends/monet5/sqlcatalog.mal sql/backends/monet5/vaults/bam/Tests/query2.1.stable.out sql/backends/monet5/vaults/bam/Tests/query2.10.stable.out sql/backends/monet5/vaults/bam/Tests/query2.2.stable.out sql/backends/monet5/vaults/bam/Tests/query2.2.stable.out.int128 sql/backends/monet5/wlr.mal sql/benchmarks/tpcds/Tests/09.stable.out sql/common/sql_changeset.c sql/common/sql_stack.c sql/common/sql_types.c sql/include/Makefile.ag sql/include/sql_catalog.h sql/include/sql_relation.h sql/include/sql_stack.h sql/odbc/samples/Tests/testgetinfo.stable.err sql/rel.txt sql/server/CMakeLists.txt sql/server/Makefile.ag sql/server/rel_distribute.c sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_exp.h sql/server/rel_optimizer.c sql/server/rel_partition.c sql/server/rel_propagate.c sql/server/rel_propagate.h sql/server/rel_psm.c sql/server/rel_psm.h sql/server/rel_rel.c sql/server/rel_rel.h sql/server/rel_schema.c sql/server/rel_schema.h sql/server/rel_select.c sql/server/rel_select.h sql/server/rel_semantic.c sql/server/rel_semantic.h sql/server/rel_sequence.c sql/server/rel_sequence.h sql/server/rel_trans.c sql/server/rel_trans.h sql/server/rel_updates.c sql/server/rel_updates.h sql/server/rel_xml.c sql/server/rel_xml.h sql/server/sql_mvc.c sql/server/sql_mvc.h sql/server/sql_parser.y sql/server/sql_partition.c sql/server/sql_semantic.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_table.c sql/storage/sql_storage.h sql/storage/store.c sql/test/BugTracker-2009/Tests/correlated-selection-bug.stable.out sql/test/BugTracker-2009/Tests/count_bug.SF-2604583.stable.out.int128 sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out sql/test/BugTracker-2010/Tests/ORDER_BY_over_UNION_EXCEPT_INTERSECT.Bug-2606.stable.out sql/test/BugTracker-2011/Tests/aggregate-in-subquery.Bug-2739.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.stable.out sql/test/BugTracker-2012/Tests/scalar_subquery_with_alias.Bug-3093.stable.out sql/test/BugTracker-2013/Tests/correlated_select.Bug-3250.stable.out sql/test/BugTracker-2013/Tests/correlated_subquery.Bug-3317.stable.out sql/test/BugTracker-2013/Tests/pivot.Bug-3339.stable.err sql/test/BugTracker-2013/Tests/syntaxerror.Bug-3399.stable.err sql/test/BugTracker-2013/Tests/syntaxerror.Bug-3399.stable.out sql/test/BugTracker-2014/Tests/in_incorrect_multi.Bug-3462.stable.err sql/test/BugTracker-2014/Tests/order_by_incorrect_error.Bug-3630.stable.err sql/test/BugTracker-2014/Tests/order_by_incorrect_error.Bug-3630.stable.out sql/test/BugTracker-2014/Tests/orderby_count.Bug-3526.stable.out sql/test/BugTracker-2015/Tests/ambiguous.Bug-3803.stable.out.int128 sql/test/BugTracker-2015/Tests/apply_merge_distinct.Bug-3760.stable.out sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out sql/test/BugTracker-2016/Tests/DISTINCT_with_correlated_scalar_subquery_crashes_mserver.Bug-3920.stable.out sql/test/BugTracker-2016/Tests/LEFT-JOIN_with_OR_conditions_triggers_assertion.Bug-3908.stable.out sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.stable.out sql/test/BugTracker-2016/Tests/nested-subquery-in-select.Bug-6125.stable.out sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.stable.out sql/test/BugTracker-2016/Tests/trigger_bulk.Bug-4045.stable.err sql/test/BugTracker-2017/Tests/aggr_udf_with_more_than_2params.Bug-6385.stable.err sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_not_in_select.Bug-6290.stable.out sql/test/BugTracker-2017/Tests/exist-bigint-missing.Bug-6315.stable.out sql/test/BugTracker-2017/Tests/exists.Bug-6392.stable.out sql/test/BugTracker-2017/Tests/groupby_assertion.Bug-6338.stable.out sql/test/BugTracker-2017/Tests/lateral.Bug-6310.sql sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.err sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.out sql/test/BugTracker-2017/Tests/limit.Bug-6322.stable.out sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.stable.out sql/test/BugTracker-2017/Tests/sqlsmith.Bug-6477.stable.err sql/test/BugTracker-2017/Tests/sqlsmith.Bug-6477.stable.out sql/test/BugTracker-2017/Tests/udf_crash_subquery_scalar_paramters.Bug-6399.stable.err sql/test/BugTracker-2017/Tests/wrong_aggregation_count.Bug-6257.stable.out sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.stable.out sql/test/BugTracker-2018/Tests/local_replica_table_not_detected.Bug-6620.stable.out sql/test/BugTracker-2019/Tests/All sql/test/BugTracker-2019/Tests/alter_table_set_schema.Bug-6701.stable.out sql/test/BugTracker-2019/Tests/subselect-count.Bug-6686.stable.out sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-0join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-1join-view.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-query.stable.out sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-plan-2join-view.stable.out sql/test/SQLite_regress/sqllogictest/Tests/select1.test.stable.out sql/test/SQLite_regress/sqllogictest/Tests/select1.test.stable.out.int128 sql/test/SQLite_regress/sqllogictest/Tests/select2.test.stable.out sql/test/SQLite_regress/sqllogictest/Tests/select2.test.stable.out.int128 sql/test/SQLite_regress/sqllogictest/Tests/select3.test.stable.out sql/test/SQLite_regress/sqllogictest/Tests/select3.test.stable.out.int128 sql/test/Tests/marcin1.stable.out sql/test/Tests/order_by_complex_exp.stable.out sql/test/Tests/outerref_in_selection.stable.out sql/test/Tests/outerref_in_selection.stable.out.int128 sql/test/Tests/systemfunctions.stable.out sql/test/Tests/systemfunctions.stable.out.int128 sql/test/VOC/Tests/VOC.stable.out sql/test/analytics/Tests/analytics09.stable.err sql/test/analytics/Tests/analytics09.stable.out sql/test/bugs/Tests/in_or_bug.stable.out sql/test/bugs/Tests/selectlist_subquery-sf-1208599.stable.out sql/test/bugs/Tests/zero_or_one_bug.stable.out sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 sql/test/in-value-list/Tests/various-in-value-list-queries.stable.out sql/test/lateral/Tests/lateral.stable.out sql/test/mergetables/Tests/part-elim.stable.out sql/test/mergetables/Tests/sqlsmith.Bug-6459.stable.out sql/test/mergetables/Tests/sqlsmith.Bug-6459.stable.out.int128 sql/test/miscellaneous/Tests/groupby_expressions.stable.err sql/test/null/Tests/coalesce.stable.out sql/test/null/Tests/coalesce3.stable.out sql/test/pg_regress/Tests/vacuum.stable.out sql/test/rename/Tests/All sql/test/sql_xml/Tests/xml.stable.out sql/test/sys-schema/Tests/bam_tables_checks.stable.out sql/test/sys-schema/Tests/check_MaxStrLength_violations.stable.out tools/mserver/mserver5.1.in Branch: cmake-fun Log Message:
Merge with default. diffs (truncated from 73399 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 @@ -66,6 +66,8 @@ stdout of test 'MAL-signatures` in direc % module, function, signature, address, comment # name % clob, clob, clob, clob, clob # type % 11, 28, 364, 44, 874 # length +[ "aggr", "allnotequal", "command aggr.allnotequal(l:bat[:any_1], r:bat[:any_1]):bit ", "SQLallnotequal;", "if all values in r are not equal to l return true, else if r has nil nil else false" ] +[ "aggr", "anyequal", "command aggr.anyequal(l:bat[:any_1], r:bat[:any_1]):bit ", "SQLanyequal;", "if any value in r is equal to l return true, else if r has nil nil else false" ] [ "aggr", "avg", "command aggr.avg(b:bat[:bte], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRavg13_dbl;", "Grouped tail average on bte" ] [ "aggr", "avg", "command aggr.avg(b:bat[:dbl], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRavg13_dbl;", "Grouped tail average on dbl" ] [ "aggr", "avg", "command aggr.avg(b:bat[:flt], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRavg13_dbl;", "Grouped tail average on flt" ] @@ -121,9 +123,11 @@ stdout of test 'MAL-signatures` in direc [ "aggr", "jsonaggr", "command aggr.jsonaggr(val:bat[:str]):str ", "JSONgroupStr;", "Aggregate the string values to array." ] [ "aggr", "max", "command aggr.max(b:bat[:any_1], g:bat[:oid], e:bat[:any_2]):bat[:any_1] ", "AGGRmax3;", "" ] [ "aggr", "max", "command aggr.max(b:bat[:any_2]):any_2 ", "ALGmaxany;", "Return the highest tail value or nil." ] +[ "aggr", "max", "command aggr.max(b:bat[:any_2], skipnil:bit):any_2 ", "ALGmaxany_skipnil;", "Return the highest tail value or nil." ] [ "aggr", "median", "command aggr.median(b:bat[:any_1]):any_1 ", "AGGRmedian;", "Median aggregate" ] [ "aggr", "min", "command aggr.min(b:bat[:any_1], g:bat[:oid], e:bat[:any_2]):bat[:any_1] ", "AGGRmin3;", "" ] [ "aggr", "min", "command aggr.min(b:bat[:any_2]):any_2 ", "ALGminany;", "Return the lowest tail value or nil." ] +[ "aggr", "min", "command aggr.min(b:bat[:any_2], skipnil:bit):any_2 ", "ALGminany_skipnil;", "Return the lowest tail value or nil." ] [ "aggr", "prod", "command aggr.prod(b:bat[:bte], g:bat[:oid], e:bat[:any_1]):bat[:bte] ", "AGGRprod3_bte;", "Grouped tail product on bte" ] [ "aggr", "prod", "command aggr.prod(b:bat[:dbl], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "Grouped tail product on dbl" ] [ "aggr", "prod", "command aggr.prod(b:bat[:flt], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "Grouped tail product on flt" ] @@ -230,6 +234,10 @@ stdout of test 'MAL-signatures` in direc [ "aggr", "str_group_concat", "pattern aggr.str_group_concat(b:bat[:str], sep:bat[:str], nil_if_empty:bit):str ", "CMDBATstr_group_concat;", "Calculate aggregate string concatenate of B with separator SEP." ] [ "aggr", "str_group_concat", "pattern aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:oid]):str ", "CMDBATstr_group_concat;", "Calculate aggregate string concatenate of B with candidate list and separator SEP." ] [ "aggr", "str_group_concat", "pattern aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:oid], nil_if_empty:bit):str ", "CMDBATstr_group_concat;", "Calculate aggregate string concatenate of B with candidate list and separator SEP." ] +[ "aggr", "suballnotequal", "command aggr.suballnotequal(l:bat[:any_1], r:bat[:any_1], rid:bat[:oid], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLallnotequal_grp2;", "if all values in r are not equal to l return true, else if r has nil nil else false, except if rid is nil (ie empty) then true" ] +[ "aggr", "suballnotequal", "command aggr.suballnotequal(l:bat[:any_1], r:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLallnotequal_grp;", "if all values in r are not equal to l return true, else if r has nil nil else false" ] +[ "aggr", "subanyequal", "command aggr.subanyequal(l:bat[:any_1], r:bat[:any_1], rid:bat[:oid], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLanyequal_grp2;", "if any value in r is equal to l return true, else if r has nil nil else false, except if rid is nil (ie empty) then false" ] +[ "aggr", "subanyequal", "command aggr.subanyequal(l:bat[:any_1], r:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLanyequal_grp;", "if any value in r is equal to l return true, else if r has nil nil else false" ] [ "aggr", "subavg", "command aggr.subavg(b:bat[:bte], g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", "AGGRsubavg1_dbl;", "Grouped average aggregate" ] [ "aggr", "subavg", "command aggr.subavg(b:bat[:dbl], g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", "AGGRsubavg1_dbl;", "Grouped average aggregate" ] [ "aggr", "subavg", "command aggr.subavg(b:bat[:flt], g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", "AGGRsubavg1_dbl;", "Grouped average aggregate" ] @@ -292,6 +300,7 @@ stdout of test 'MAL-signatures` in direc [ "aggr", "subcovar", "function aggr.subcovar(e1:bat[:int], e2:bat[:int], g:bat[:oid], e:bat[:any_2], f:bit):bat[:dbl];", "", "" ] [ "aggr", "subcovar", "function aggr.subcovar(e1:bat[:lng], e2:bat[:lng], g:bat[:oid], e:bat[:any_2], f:bit):bat[:dbl];", "", "" ] [ "aggr", "subcovar", "function aggr.subcovar(e1:bat[:sht], e2:bat[:sht], g:bat[:oid], e:bat[:any_2], f:bit):bat[:dbl];", "", "" ] +[ "aggr", "subexist", "command aggr.subexist(b:bat[:any_2], g:bat[:oid], e:bat[:oid], no_nil:bit):bat[:bit] ", "SQLsubexist;", "" ] [ "aggr", "subjsonaggr", "command aggr.subjsonaggr(val:bat[:dbl], g:bat[:oid], e:bat[:any_1], skip_nils:bit):bat[:str] ", "JSONsubjson;", "Grouped aggregation of values." ] [ "aggr", "subjsonaggr", "command aggr.subjsonaggr(val:bat[:str], g:bat[:oid], e:bat[:any_1], skip_nils:bit):bat[:str] ", "JSONsubjson;", "Grouped aggregation of values." ] [ "aggr", "subjsonaggr", "command aggr.subjsonaggr(val:bat[:dbl], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit):bat[:str] ", "JSONsubjsoncand;", "Grouped aggregation of values with candidates list." ] @@ -520,7 +529,7 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "bandjoin", "command algebra.bandjoin(l:bat[:any_1], r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], c1:any_1, c2:any_1, li:bit, hi:bit, estimate:lng) (X_0:bat[:oid], X_1:bat[:oid]) ", "ALGbandjoin;", "Band join: values in l and r match if r - c1 <[=] l <[=] r + c2" ] [ "algebra", "copy", "command algebra.copy(b:bat[:any_1]):bat[:any_1] ", "ALGcopy;", "Returns physical copy of a BAT." ] [ "algebra", "crossproduct", "command algebra.crossproduct(left:bat[:any_1], right:bat[:any_2]) (l:bat[:oid], r:bat[:oid]) ", "ALGcrossproduct2;", "Returns 2 columns with all BUNs, consisting of the head-oids\n\t from 'left' and 'right' for which there are BUNs in 'left'\n\t and 'right' with equal tails" ] -[ "algebra", "difference", "command algebra.difference(l:bat[:any_1], r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], nil_matches:bit, estimate:lng):bat[:oid] ", "ALGdifference;", "Difference of l and r with candidate lists" ] +[ "algebra", "difference", "command algebra.difference(l:bat[:any_1], r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], nil_matches:bit, nil_clears:bit, estimate:lng):bat[:oid] ", "ALGdifference;", "Difference of l and r with candidate lists" ] [ "algebra", "exist", "command algebra.exist(b:bat[:any_1], val:any_1):bit ", "ALGexist;", "Returns whether 'val' occurs in b." ] [ "algebra", "fetch", "command algebra.fetch(b:bat[:any_1], x:oid):any_1 ", "ALGfetchoid;", "Returns the value of the BUN at x-th position with 0 <= x < b.count" ] [ "algebra", "find", "command algebra.find(b:bat[:any_1], t:any_1):oid ", "ALGfind;", "Returns the index position of a value. If no such BUN exists return OID-nil." ] @@ -11630,12 +11639,14 @@ stdout of test 'MAL-signatures` in direc [ "sql", "abort", "pattern sql.abort():void ", "SQLabort;", "Trigger the abort operation for a MAL block" ] [ "sql", "affectedRows", "unsafe pattern sql.affectedRows(mvc:int, nr:lng):int ", "mvc_affected_rows_wrap;", "export the number of affected rows by the current query" ] [ "sql", "all", "inline function sql.all(b:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:any_1];", "", "" ] -[ "sql", "all", "command sql.all(col:bat[:any_1]):any_1 ", "SQLall;", "if col contains exactly one value return this. Incase of more raise an exception else return nil" ] +[ "sql", "all", "command sql.all(col:bat[:any_1]):any_1 ", "SQLall;", "if all values in col are equal return this, else nil" ] +[ "sql", "all", "command sql.all(cmp:bit, nl:bit, nr:bit):bit ", "SQLall_cmp;", "if !cmp then false, (nl or nr) then nil, else true" ] [ "sql", "alpha", "command sql.alpha(dec:dbl, theta:dbl):dbl ", "SQLcst_alpha_cst;", "Implementation of astronomy alpha function: expands the radius theta depending on the declination" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str, col:str):void ", "sql_analyze;", "Update the database statistics table" ] +[ "sql", "any", "command sql.any(cmp:bit, nl:bit, nr:bit):bit ", "SQLany_cmp;", "if cmp then true, (nl or nr) nil then nil, else false" ] [ "sql", "append", "pattern sql.append(mvc:int, sname:str, tname:str, cname:str, ins:any):int ", "mvc_append_wrap;", "Append to the column tname.cname (possibly optimized to replace the insert bat of tname.cname. Returns sequence number for order dependence." ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "Glue together the calling sequence" ] [ "sql", "argRecord", "pattern sql.argRecord(a:any...):str ", "SQLargRecord;", "Glue together the calling sequence" ] @@ -11741,6 +11752,7 @@ stdout of test 'MAL-signatures` in direc [ "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", "null", "command sql.null(b:bat[:any_1]):bit ", "SQLnil;", "if b has a nil return true, else false" ] [ "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" ] @@ -11840,6 +11852,8 @@ stdout of test 'MAL-signatures` in direc [ "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" ] +[ "sql", "zero_or_one", "command sql.zero_or_one(col:bat[:any_1], err:bit):any_1 ", "zero_or_one_error;", "if col contains exactly one value return this. Incase of more raise an exception if err is true else return nil" ] +[ "sql", "zero_or_one", "command sql.zero_or_one(col:bat[:any_1], err:bat[:bit]):any_1 ", "zero_or_one_error_bat;", "if col contains exactly one value return this. Incase of more raise an exception if err is true else return nil" ] [ "sqlcatalog", "alter_add_range_partition", "pattern sqlcatalog.alter_add_range_partition(sname:str, mtnme:str, psnme:str, ptnme:str, min:any_1, max:any_1, nills:int, update:int):void ", "SQLalter_add_range_partition;", "Catalog operation alter_add_range_partition" ] [ "sqlcatalog", "alter_add_table", "pattern sqlcatalog.alter_add_table(sname:str, mtnme:str, psnme:str, ptnme:str, action:int):void ", "SQLalter_add_table;", "Catalog operation alter_add_table" ] [ "sqlcatalog", "alter_add_value_partition", "pattern sqlcatalog.alter_add_value_partition(sname:str, mtnme:str, psnme:str, ptnme:str, nills:int, update:int):void ", "SQLalter_add_value_partition;", "Catalog operation alter_add_value_partition" ] @@ -11877,7 +11891,7 @@ stdout of test 'MAL-signatures` in direc [ "sqlcatalog", "grant_roles", "pattern sqlcatalog.grant_roles(sname:str, auth:str, grantor:int, admin:int):void ", "SQLgrant_roles;", "Catalog operation grant_roles" ] [ "sqlcatalog", "rename_column", "pattern sqlcatalog.rename_column(sname:str, tname:str, cname:str, newnme:str):void ", "SQLrename_column;", "Catalog operation rename_column" ] [ "sqlcatalog", "rename_schema", "pattern sqlcatalog.rename_schema(sname:str, newnme:str):void ", "SQLrename_schema;", "Catalog operation rename_schema" ] -[ "sqlcatalog", "rename_table", "pattern sqlcatalog.rename_table(sname:str, tname:str, newnme:str):void ", "SQLrename_table;", "Catalog operation rename_table" ] +[ "sqlcatalog", "rename_table", "pattern sqlcatalog.rename_table(osname:str, nsname:str, otname:str, ntname:str):void ", "SQLrename_table;", "Catalog operation rename_table" ] [ "sqlcatalog", "rename_user", "pattern sqlcatalog.rename_user(sname:str, newnme:str, action:int):void ", "SQLrename_user;", "Catalog operation rename_user" ] [ "sqlcatalog", "revoke", "pattern sqlcatalog.revoke(sname:str, tbl:str, grantee:str, privs:int, cname:str, grant:int, grantor:int):void ", "SQLrevoke;", "Catalog operation revoke" ] [ "sqlcatalog", "revoke_function", "pattern sqlcatalog.revoke_function(sname:str, fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ", "SQLrevoke_function;", "Catalog operation revoke_function" ] @@ -12114,7 +12128,7 @@ stdout of test 'MAL-signatures` in direc [ "wlc", "query", "pattern wlc.query(q:str):void ", "WLCquery;", "Keep the queries for replay." ] [ "wlc", "rename_column", "pattern wlc.rename_column(sname:str, tname:str, cname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation rename_column" ] [ "wlc", "rename_schema", "pattern wlc.rename_schema(sname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation rename_schema" ] -[ "wlc", "rename_table", "pattern wlc.rename_table(sname:str, tname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation rename_table" ] +[ "wlc", "rename_table", "pattern wlc.rename_table(osname:str, nsname:str, otname:str, ntname:str):void ", "WLCgeneric;", "Catalog operation rename_table" ] [ "wlc", "rename_user", "pattern wlc.rename_user(sname:str, newnme:str, action:int):void ", "WLCgeneric;", "Catalog operation rename_user" ] [ "wlc", "revoke", "pattern wlc.revoke(sname:str, tbl:str, grantee:str, privs:int, cname:str, grant:int, grantor:int):void ", "WLCgeneric;", "Catalog operation revoke" ] [ "wlc", "revoke_function", "pattern wlc.revoke_function(sname:str, fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ", "WLCgeneric;", "Catalog operation revoke_function" ] @@ -12174,7 +12188,7 @@ stdout of test 'MAL-signatures` in direc [ "wlr", "grant_roles", "pattern wlr.grant_roles(sname:str, auth:str, grantor:int, admin:int):void ", "WLRgeneric;", "Catalog operation grant_roles" ] [ "wlr", "rename_column", "pattern wlr.rename_column(sname:str, tname:str, cname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation rename_column" ] [ "wlr", "rename_schema", "pattern wlr.rename_schema(sname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation rename_schema" ] -[ "wlr", "rename_table", "pattern wlr.rename_table(sname:str, tname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation rename_table" ] +[ "wlr", "rename_table", "pattern wlr.rename_table(osname:str, nsname:str, otname:str, ntname:str):void ", "WLRgeneric;", "Catalog operation rename_table" ] [ "wlr", "rename_user", "pattern wlr.rename_user(sname:str, newnme:str, action:int):void ", "WLRgeneric;", "Catalog operation rename_user" ] [ "wlr", "replicate", "pattern wlr.replicate():void ", "WLRreplicate;", "Roll the snapshot forward to an up-to-date clone" ] [ "wlr", "replicate", "pattern wlr.replicate(dbname:str):void ", "WLRreplicate;", "Roll the snapshot forward to an up-to-date clone" ] 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 @@ -70,6 +70,8 @@ stdout of test 'MAL-signatures` in direc % module, function, signature, address, comment # name % clob, clob, clob, clob, clob # type % 11, 28, 364, 44, 874 # length +[ "aggr", "allnotequal", "command aggr.allnotequal(l:bat[:any_1], r:bat[:any_1]):bit ", "SQLallnotequal;", "if all values in r are not equal to l return true, else if r has nil nil else false" ] +[ "aggr", "anyequal", "command aggr.anyequal(l:bat[:any_1], r:bat[:any_1]):bit ", "SQLanyequal;", "if any value in r is equal to l return true, else if r has nil nil else false" ] [ "aggr", "avg", "command aggr.avg(b:bat[:bte], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRavg13_dbl;", "Grouped tail average on bte" ] [ "aggr", "avg", "command aggr.avg(b:bat[:dbl], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRavg13_dbl;", "Grouped tail average on dbl" ] [ "aggr", "avg", "command aggr.avg(b:bat[:flt], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRavg13_dbl;", "Grouped tail average on flt" ] @@ -129,9 +131,11 @@ stdout of test 'MAL-signatures` in direc [ "aggr", "jsonaggr", "command aggr.jsonaggr(val:bat[:str]):str ", "JSONgroupStr;", "Aggregate the string values to array." ] [ "aggr", "max", "command aggr.max(b:bat[:any_1], g:bat[:oid], e:bat[:any_2]):bat[:any_1] ", "AGGRmax3;", "" ] [ "aggr", "max", "command aggr.max(b:bat[:any_2]):any_2 ", "ALGmaxany;", "Return the highest tail value or nil." ] +[ "aggr", "max", "command aggr.max(b:bat[:any_2], skipnil:bit):any_2 ", "ALGmaxany_skipnil;", "Return the highest tail value or nil." ] [ "aggr", "median", "command aggr.median(b:bat[:any_1]):any_1 ", "AGGRmedian;", "Median aggregate" ] [ "aggr", "min", "command aggr.min(b:bat[:any_1], g:bat[:oid], e:bat[:any_2]):bat[:any_1] ", "AGGRmin3;", "" ] [ "aggr", "min", "command aggr.min(b:bat[:any_2]):any_2 ", "ALGminany;", "Return the lowest tail value or nil." ] +[ "aggr", "min", "command aggr.min(b:bat[:any_2], skipnil:bit):any_2 ", "ALGminany_skipnil;", "Return the lowest tail value or nil." ] [ "aggr", "prod", "command aggr.prod(b:bat[:bte], g:bat[:oid], e:bat[:any_1]):bat[:bte] ", "AGGRprod3_bte;", "Grouped tail product on bte" ] [ "aggr", "prod", "command aggr.prod(b:bat[:dbl], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "Grouped tail product on dbl" ] [ "aggr", "prod", "command aggr.prod(b:bat[:flt], g:bat[:oid], e:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "Grouped tail product on flt" ] @@ -269,6 +273,10 @@ stdout of test 'MAL-signatures` in direc [ "aggr", "str_group_concat", "pattern aggr.str_group_concat(b:bat[:str], sep:bat[:str], nil_if_empty:bit):str ", "CMDBATstr_group_concat;", "Calculate aggregate string concatenate of B with separator SEP." ] [ "aggr", "str_group_concat", "pattern aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:oid]):str ", "CMDBATstr_group_concat;", "Calculate aggregate string concatenate of B with candidate list and separator SEP." ] [ "aggr", "str_group_concat", "pattern aggr.str_group_concat(b:bat[:str], sep:bat[:str], s:bat[:oid], nil_if_empty:bit):str ", "CMDBATstr_group_concat;", "Calculate aggregate string concatenate of B with candidate list and separator SEP." ] +[ "aggr", "suballnotequal", "command aggr.suballnotequal(l:bat[:any_1], r:bat[:any_1], rid:bat[:oid], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLallnotequal_grp2;", "if all values in r are not equal to l return true, else if r has nil nil else false, except if rid is nil (ie empty) then true" ] +[ "aggr", "suballnotequal", "command aggr.suballnotequal(l:bat[:any_1], r:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLallnotequal_grp;", "if all values in r are not equal to l return true, else if r has nil nil else false" ] +[ "aggr", "subanyequal", "command aggr.subanyequal(l:bat[:any_1], r:bat[:any_1], rid:bat[:oid], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLanyequal_grp2;", "if any value in r is equal to l return true, else if r has nil nil else false, except if rid is nil (ie empty) then false" ] +[ "aggr", "subanyequal", "command aggr.subanyequal(l:bat[:any_1], r:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ", "SQLanyequal_grp;", "if any value in r is equal to l return true, else if r has nil nil else false" ] [ "aggr", "subavg", "command aggr.subavg(b:bat[:bte], g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", "AGGRsubavg1_dbl;", "Grouped average aggregate" ] [ "aggr", "subavg", "command aggr.subavg(b:bat[:dbl], g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", "AGGRsubavg1_dbl;", "Grouped average aggregate" ] [ "aggr", "subavg", "command aggr.subavg(b:bat[:flt], g:bat[:oid], e:bat[:any_1], skip_nils:bit, abort_on_error:bit):bat[:dbl] ", "AGGRsubavg1_dbl;", "Grouped average aggregate" ] @@ -337,6 +345,7 @@ stdout of test 'MAL-signatures` in direc [ "aggr", "subcovar", "function aggr.subcovar(e1:bat[:int], e2:bat[:int], g:bat[:oid], e:bat[:any_2], f:bit):bat[:dbl];", "", "" ] [ "aggr", "subcovar", "function aggr.subcovar(e1:bat[:lng], e2:bat[:lng], g:bat[:oid], e:bat[:any_2], f:bit):bat[:dbl];", "", "" ] [ "aggr", "subcovar", "function aggr.subcovar(e1:bat[:sht], e2:bat[:sht], g:bat[:oid], e:bat[:any_2], f:bit):bat[:dbl];", "", "" ] +[ "aggr", "subexist", "command aggr.subexist(b:bat[:any_2], g:bat[:oid], e:bat[:oid], no_nil:bit):bat[:bit] ", "SQLsubexist;", "" ] [ "aggr", "subjsonaggr", "command aggr.subjsonaggr(val:bat[:dbl], g:bat[:oid], e:bat[:any_1], skip_nils:bit):bat[:str] ", "JSONsubjson;", "Grouped aggregation of values." ] [ "aggr", "subjsonaggr", "command aggr.subjsonaggr(val:bat[:str], g:bat[:oid], e:bat[:any_1], skip_nils:bit):bat[:str] ", "JSONsubjson;", "Grouped aggregation of values." ] [ "aggr", "subjsonaggr", "command aggr.subjsonaggr(val:bat[:dbl], g:bat[:oid], e:bat[:any_1], s:bat[:oid], skip_nils:bit):bat[:str] ", "JSONsubjsoncand;", "Grouped aggregation of values with candidates list." ] @@ -624,7 +633,7 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "bandjoin", "command algebra.bandjoin(l:bat[:any_1], r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], c1:any_1, c2:any_1, li:bit, hi:bit, estimate:lng) (X_0:bat[:oid], X_1:bat[:oid]) ", "ALGbandjoin;", "Band join: values in l and r match if r - c1 <[=] l <[=] r + c2" ] [ "algebra", "copy", "command algebra.copy(b:bat[:any_1]):bat[:any_1] ", "ALGcopy;", "Returns physical copy of a BAT." ] [ "algebra", "crossproduct", "command algebra.crossproduct(left:bat[:any_1], right:bat[:any_2]) (l:bat[:oid], r:bat[:oid]) ", "ALGcrossproduct2;", "Returns 2 columns with all BUNs, consisting of the head-oids\n\t from 'left' and 'right' for which there are BUNs in 'left'\n\t and 'right' with equal tails" ] -[ "algebra", "difference", "command algebra.difference(l:bat[:any_1], r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], nil_matches:bit, estimate:lng):bat[:oid] ", "ALGdifference;", "Difference of l and r with candidate lists" ] +[ "algebra", "difference", "command algebra.difference(l:bat[:any_1], r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], nil_matches:bit, nil_clears:bit, estimate:lng):bat[:oid] ", "ALGdifference;", "Difference of l and r with candidate lists" ] [ "algebra", "exist", "command algebra.exist(b:bat[:any_1], val:any_1):bit ", "ALGexist;", "Returns whether 'val' occurs in b." ] [ "algebra", "fetch", "command algebra.fetch(b:bat[:any_1], x:oid):any_1 ", "ALGfetchoid;", "Returns the value of the BUN at x-th position with 0 <= x < b.count" ] [ "algebra", "find", "command algebra.find(b:bat[:any_1], t:any_1):oid ", "ALGfind;", "Returns the index position of a value. If no such BUN exists return OID-nil." ] @@ -16042,12 +16051,14 @@ stdout of test 'MAL-signatures` in direc [ "sql", "abort", "pattern sql.abort():void ", "SQLabort;", "Trigger the abort operation for a MAL block" ] [ "sql", "affectedRows", "unsafe pattern sql.affectedRows(mvc:int, nr:lng):int ", "mvc_affected_rows_wrap;", "export the number of affected rows by the current query" ] [ "sql", "all", "inline function sql.all(b:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:any_1];", "", "" ] -[ "sql", "all", "command sql.all(col:bat[:any_1]):any_1 ", "SQLall;", "if col contains exactly one value return this. Incase of more raise an exception else return nil" ] +[ "sql", "all", "command sql.all(col:bat[:any_1]):any_1 ", "SQLall;", "if all values in col are equal return this, else nil" ] +[ "sql", "all", "command sql.all(cmp:bit, nl:bit, nr:bit):bit ", "SQLall_cmp;", "if !cmp then false, (nl or nr) then nil, else true" ] [ "sql", "alpha", "command sql.alpha(dec:dbl, theta:dbl):dbl ", "SQLcst_alpha_cst;", "Implementation of astronomy alpha function: expands the radius theta depending on the declination" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str):void ", "sql_analyze;", "" ] [ "sql", "analyze", "pattern sql.analyze(minmax:int, sample:lng, sch:str, tbl:str, col:str):void ", "sql_analyze;", "Update the database statistics table" ] +[ "sql", "any", "command sql.any(cmp:bit, nl:bit, nr:bit):bit ", "SQLany_cmp;", "if cmp then true, (nl or nr) nil then nil, else false" ] [ "sql", "append", "pattern sql.append(mvc:int, sname:str, tname:str, cname:str, ins:any):int ", "mvc_append_wrap;", "Append to the column tname.cname (possibly optimized to replace the insert bat of tname.cname. Returns sequence number for order dependence." ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "Glue together the calling sequence" ] [ "sql", "argRecord", "pattern sql.argRecord(a:any...):str ", "SQLargRecord;", "Glue together the calling sequence" ] @@ -16155,6 +16166,7 @@ stdout of test 'MAL-signatures` in direc [ "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", "null", "command sql.null(b:bat[:any_1]):bit ", "SQLnil;", "if b has a nil return true, else false" ] [ "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" ] @@ -16267,6 +16279,8 @@ stdout of test 'MAL-signatures` in direc [ "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", "window_bound", "pattern sql.window_bound(p:bit, b:any_1, unit:int, bound:int, excl:int, start:hge):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" ] +[ "sql", "zero_or_one", "command sql.zero_or_one(col:bat[:any_1], err:bit):any_1 ", "zero_or_one_error;", "if col contains exactly one value return this. Incase of more raise an exception if err is true else return nil" ] +[ "sql", "zero_or_one", "command sql.zero_or_one(col:bat[:any_1], err:bat[:bit]):any_1 ", "zero_or_one_error_bat;", "if col contains exactly one value return this. Incase of more raise an exception if err is true else return nil" ] [ "sqlcatalog", "alter_add_range_partition", "pattern sqlcatalog.alter_add_range_partition(sname:str, mtnme:str, psnme:str, ptnme:str, min:any_1, max:any_1, nills:int, update:int):void ", "SQLalter_add_range_partition;", "Catalog operation alter_add_range_partition" ] [ "sqlcatalog", "alter_add_table", "pattern sqlcatalog.alter_add_table(sname:str, mtnme:str, psnme:str, ptnme:str, action:int):void ", "SQLalter_add_table;", "Catalog operation alter_add_table" ] [ "sqlcatalog", "alter_add_value_partition", "pattern sqlcatalog.alter_add_value_partition(sname:str, mtnme:str, psnme:str, ptnme:str, nills:int, update:int):void ", "SQLalter_add_value_partition;", "Catalog operation alter_add_value_partition" ] @@ -16304,7 +16318,7 @@ stdout of test 'MAL-signatures` in direc [ "sqlcatalog", "grant_roles", "pattern sqlcatalog.grant_roles(sname:str, auth:str, grantor:int, admin:int):void ", "SQLgrant_roles;", "Catalog operation grant_roles" ] [ "sqlcatalog", "rename_column", "pattern sqlcatalog.rename_column(sname:str, tname:str, cname:str, newnme:str):void ", "SQLrename_column;", "Catalog operation rename_column" ] [ "sqlcatalog", "rename_schema", "pattern sqlcatalog.rename_schema(sname:str, newnme:str):void ", "SQLrename_schema;", "Catalog operation rename_schema" ] -[ "sqlcatalog", "rename_table", "pattern sqlcatalog.rename_table(sname:str, tname:str, newnme:str):void ", "SQLrename_table;", "Catalog operation rename_table" ] +[ "sqlcatalog", "rename_table", "pattern sqlcatalog.rename_table(osname:str, nsname:str, otname:str, ntname:str):void ", "SQLrename_table;", "Catalog operation rename_table" ] [ "sqlcatalog", "rename_user", "pattern sqlcatalog.rename_user(sname:str, newnme:str, action:int):void ", "SQLrename_user;", "Catalog operation rename_user" ] [ "sqlcatalog", "revoke", "pattern sqlcatalog.revoke(sname:str, tbl:str, grantee:str, privs:int, cname:str, grant:int, grantor:int):void ", "SQLrevoke;", "Catalog operation revoke" ] [ "sqlcatalog", "revoke_function", "pattern sqlcatalog.revoke_function(sname:str, fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ", "SQLrevoke_function;", "Catalog operation revoke_function" ] @@ -16542,7 +16556,7 @@ stdout of test 'MAL-signatures` in direc [ "wlc", "query", "pattern wlc.query(q:str):void ", "WLCquery;", "Keep the queries for replay." ] [ "wlc", "rename_column", "pattern wlc.rename_column(sname:str, tname:str, cname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation rename_column" ] [ "wlc", "rename_schema", "pattern wlc.rename_schema(sname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation rename_schema" ] -[ "wlc", "rename_table", "pattern wlc.rename_table(sname:str, tname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation rename_table" ] +[ "wlc", "rename_table", "pattern wlc.rename_table(osname:str, nsname:str, otname:str, ntname:str):void ", "WLCgeneric;", "Catalog operation rename_table" ] [ "wlc", "rename_user", "pattern wlc.rename_user(sname:str, newnme:str, action:int):void ", "WLCgeneric;", "Catalog operation rename_user" ] [ "wlc", "revoke", "pattern wlc.revoke(sname:str, tbl:str, grantee:str, privs:int, cname:str, grant:int, grantor:int):void ", "WLCgeneric;", "Catalog operation revoke" ] [ "wlc", "revoke_function", "pattern wlc.revoke_function(sname:str, fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ", "WLCgeneric;", "Catalog operation revoke_function" ] @@ -16602,7 +16616,7 @@ stdout of test 'MAL-signatures` in direc [ "wlr", "grant_roles", "pattern wlr.grant_roles(sname:str, auth:str, grantor:int, admin:int):void ", "WLRgeneric;", "Catalog operation grant_roles" ] [ "wlr", "rename_column", "pattern wlr.rename_column(sname:str, tname:str, cname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation rename_column" ] [ "wlr", "rename_schema", "pattern wlr.rename_schema(sname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation rename_schema" ] -[ "wlr", "rename_table", "pattern wlr.rename_table(sname:str, tname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation rename_table" ] +[ "wlr", "rename_table", "pattern wlr.rename_table(osname:str, nsname:str, otname:str, ntname:str):void ", "WLRgeneric;", "Catalog operation rename_table" ] [ "wlr", "rename_user", "pattern wlr.rename_user(sname:str, newnme:str, action:int):void ", "WLRgeneric;", "Catalog operation rename_user" ] [ "wlr", "replicate", "pattern wlr.replicate():void ", "WLRreplicate;", "Roll the snapshot forward to an up-to-date clone" ] [ "wlr", "replicate", "pattern wlr.replicate(dbname:str):void ", "WLRreplicate;", "Roll the snapshot forward to an up-to-date clone" ] diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -113,7 +113,7 @@ BAT *BATconvert(BAT *b, BAT *s, int tp, BUN BATcount_no_nil(BAT *b); gdk_return BATdel(BAT *b, BAT *d) __attribute__((__warn_unused_result__)); BAT *BATdense(oid hseq, oid tseq, BUN cnt) __attribute__((__warn_unused_result__)); -BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, BUN estimate); +BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool not_in, BUN estimate); gdk_return BATextend(BAT *b, BUN newcap) __attribute__((__warn_unused_result__)); void BATfakeCommit(BAT *b); gdk_return BATfirstn(BAT **topn, BAT **gids, BAT *b, BAT *cands, BAT *grps, BUN n, bool asc, bool nilslast, bool distinct) __attribute__((__warn_unused_result__)); @@ -146,8 +146,10 @@ gdk_return BATkey(BAT *b, bool onoff); bool BATkeyed(BAT *b); gdk_return BATleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__)); void *BATmax(BAT *b, void *aggr); +void *BATmax_skipnil(BAT *b, void *aggr, bit skipnil); BAT *BATmergecand(BAT *a, BAT *b); void *BATmin(BAT *b, void *aggr); +void *BATmin_skipnil(BAT *b, void *aggr, bit skipnil); gdk_return BATmode(BAT *b, bool transient); void BATmsync(BAT *b); bool BATordered(BAT *b); @@ -702,7 +704,7 @@ str ALGcount_bat(lng *result, const bat str ALGcount_nil(lng *result, const bat *bid, const bit *ignore_nils); str ALGcount_no_nil(lng *result, const bat *bid); str ALGcrossproduct2(bat *l, bat *r, const bat *lid, const bat *rid); -str ALGdifference(bat *r1, const bat *lid, const bat *rid, const bat *slid, const bat *srid, const bit *nil_matches, const lng *estimate); +str ALGdifference(bat *r1, const bat *lid, const bat *rid, const bat *slid, const bat *srid, const bit *nil_matches, const bit *not_in, const lng *estimate); str ALGexist(bit *ret, const bat *bid, const void *val); str ALGfetchoid(ptr ret, const bat *bid, const oid *pos); str ALGfind(oid *ret, const bat *bid, ptr val); @@ -712,7 +714,9 @@ str ALGintersect(bat *r1, const bat *lid str ALGjoin(bat *r1, bat *r2, const bat *l, const bat *r, const bat *sl, const bat *sr, const bit *nil_matches, const lng *estimate); str ALGleftjoin(bat *r1, bat *r2, const bat *l, const bat *r, const bat *sl, const bat *sr, const bit *nil_matches, const lng *estimate); str ALGmaxany(ptr result, const bat *bid); +str ALGmaxany_skipnil(ptr result, const bat *bid, const bit *skipnil); str ALGminany(ptr result, const bat *bid); +str ALGminany_skipnil(ptr result, const bat *bid, const bit *skipnil); str ALGouterjoin(bat *r1, bat *r2, const bat *l, const bat *r, const bat *sl, const bat *sr, const bit *nil_matches, const lng *estimate); str ALGprojection(bat *result, const bat *lid, const bat *rid); str ALGprojectionpath(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -2715,7 +2715,7 @@ gdk_export gdk_return BATthetajoin(BAT * gdk_export gdk_return BATsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__)); gdk_export BAT *BATintersect(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, BUN estimate); -gdk_export BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, BUN estimate); +gdk_export BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, bool not_in, BUN estimate); gdk_export gdk_return BATjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__)); gdk_export gdk_return BATbandjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, const void *c1, const void *c2, bool li, bool hi, BUN estimate) diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -2547,10 +2547,16 @@ BATgroupmin(BAT *b, BAT *g, BAT *e, BAT do_groupmin, "BATgroupmin"); } +void * +BATmin(BAT *b, void *aggr) +{ + return BATmin_skipnil(b, aggr, 1); +} + /* return pointer to smallest non-nil value in b, or pointer to nil if * there is no such value (no values at all, or only nil) */ void * -BATmin(BAT *b, void *aggr) +BATmin_skipnil(BAT *b, void *aggr, bit skipnil) { PROPrec *prop; const void *res; @@ -2615,7 +2621,7 @@ BATmin(BAT *b, void *aggr) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list