Changeset: 7b74b87164c6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7b74b87164c6
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
sql/backends/monet5/sql.c
sql/backends/monet5/sql_subquery.c
sql/backends/monet5/sql_subquery.h
sql/backends/monet5/sql_subquery.mal
sql/common/sql_types.c
Branch: default
Log Message:
Added bulk implementation for SQLany_cmp and SQLall_cmp. Also changed MAL
module of sql.zero_or_one, sql.all and sql.null to aggr, because in fact they
are aggregates and we don't wanna confuse MAL optimizers
diffs (truncated from 724 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
@@ -65,6 +65,7 @@ stdout of test 'MAL-signatures` in direc
% module, function, signature, address, comment # name
% clob, clob, clob, clob, clob # type
% 12, 28, 313, 42, 0 # length
+[ "aggr", "all", "command aggr.all(X_1:bat[:any_1]):any_1 ",
"SQLall;", "" ]
[ "aggr", "allnotequal", "command aggr.allnotequal(X_1:bat[:any_1],
X_2:bat[:any_1]):bit ", "SQLallnotequal;", "" ]
[ "aggr", "anyequal", "pattern aggr.anyequal(X_1:any_1,
X_2:any_1):bit ", "CMDvarEQ;", "" ]
[ "aggr", "anyequal", "command aggr.anyequal(X_1:bat[:any_1],
X_2:bat[:any_1]):bit ", "SQLanyequal;", "" ]
@@ -139,6 +140,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "min", "command aggr.min(X_1:bat[:any_2], X_2:bit):any_2 ",
"ALGminany_skipnil;", "" ]
[ "aggr", "not_anyequal", "pattern aggr.not_anyequal(X_1:any_1,
X_2:any_1):bit ", "CMDvarNE;", "" ]
[ "aggr", "not_exist", "pattern aggr.not_exist(X_1:any_1):bit ",
"SQLnot_exist;", "" ]
+[ "aggr", "null", "command aggr.null(X_1:bat[:any_1]):bit ",
"SQLnil;", "" ]
[ "aggr", "prod", "command aggr.prod(X_1:bat[:bte], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:bte] ", "AGGRprod3_bte;", "" ]
[ "aggr", "prod", "command aggr.prod(X_1:bat[:dbl], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "" ]
[ "aggr", "prod", "command aggr.prod(X_1:bat[:flt], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "" ]
@@ -246,6 +248,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "str_group_concat", "pattern
aggr.str_group_concat(X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bit):str
", "CMDBATstr_group_concat;", "" ]
[ "aggr", "str_group_concat", "pattern
aggr.str_group_concat(X_1:bat[:str], X_2:bat[:str], X_3:bit):str ",
"CMDBATstr_group_concat;", "" ]
[ "aggr", "str_group_concat", "pattern
aggr.str_group_concat(X_1:bat[:str], X_2:bit):str ",
"CMDBATstr_group_concat;", "" ]
+[ "aggr", "suball", "pattern aggr.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:any_1] ",
"SQLall_grp;", "" ]
+[ "aggr", "suball", "pattern aggr.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:any_1] ", "SQLall_grp;", ""
]
[ "aggr", "suballnotequal", "pattern
aggr.suballnotequal(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid],
X_4:bat[:oid], X_5:bat[:oid], X_6:bat[:oid], X_7:bit):bat[:bit] ",
"SQLallnotequal_grp2;", "" ]
[ "aggr", "suballnotequal", "pattern
aggr.suballnotequal(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid],
X_4:bat[:oid], X_5:bat[:oid], X_6:bit):bat[:bit] ",
"SQLallnotequal_grp2;", "" ]
[ "aggr", "suballnotequal", "pattern
aggr.suballnotequal(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid],
X_4:bat[:oid], X_5:bat[:oid], X_6:bit):bat[:bit] ",
"SQLallnotequal_grp;", "" ]
@@ -360,6 +364,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "submin", "command aggr.submin(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:any_2], X_4:bat[:oid], X_5:bit):bat[:any_1] ",
"AGGRsubmincand_val;", "" ]
[ "aggr", "subnot_exist", "pattern aggr.subnot_exist(X_1:bat[:any],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:bit] ",
"SQLsubnot_exist;", "" ]
[ "aggr", "subnot_exist", "pattern aggr.subnot_exist(X_1:bat[:any],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit] ", "SQLsubnot_exist;",
"" ]
+[ "aggr", "subnull", "pattern aggr.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:bit] ",
"SQLnil_grp;", "" ]
+[ "aggr", "subnull", "pattern aggr.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit] ", "SQLnil_grp;", ""
]
[ "aggr", "subprod", "command aggr.subprod(X_1:bat[:bte],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bit, X_5:bit):bat[:bte] ",
"AGGRsubprod_bte;", "" ]
[ "aggr", "subprod", "command aggr.subprod(X_1:bat[:dbl],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bit, X_5:bit):bat[:dbl] ",
"AGGRsubprod_dbl;", "" ]
[ "aggr", "subprod", "command aggr.subprod(X_1:bat[:flt],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bit, X_5:bit):bat[:dbl] ",
"AGGRsubprod_dbl;", "" ]
@@ -468,6 +474,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "subvariancep", "command aggr.subvariancep(X_1:bat[:int],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bat[:oid], X_5:bit, X_6:bit):bat[:dbl] ",
"AGGRsubvariancepcand_dbl;", "" ]
[ "aggr", "subvariancep", "command aggr.subvariancep(X_1:bat[:lng],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bat[:oid], X_5:bit, X_6:bit):bat[:dbl] ",
"AGGRsubvariancepcand_dbl;", "" ]
[ "aggr", "subvariancep", "command aggr.subvariancep(X_1:bat[:sht],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bat[:oid], X_5:bit, X_6:bit):bat[:dbl] ",
"AGGRsubvariancepcand_dbl;", "" ]
+[ "aggr", "subzero_or_one", "command
aggr.subzero_or_one(X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid],
X_4:bit):bat[:any_1] ", "SQLsubzero_or_one;", "" ]
[ "aggr", "sum", "command aggr.sum(X_1:bat[:bte], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:bte] ", "AGGRsum3_bte;", "" ]
[ "aggr", "sum", "command aggr.sum(X_1:bat[:bte], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRsum3_dbl;", "" ]
[ "aggr", "sum", "command aggr.sum(X_1:bat[:dbl], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRsum3_dbl;", "" ]
@@ -567,6 +574,9 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "variancep", "command aggr.variancep(X_1:bat[:lng],
X_2:bat[:oid], X_3:bat[:any_1]):bat[:dbl] ", "AGGRvariancep3_dbl;", ""
]
[ "aggr", "variancep", "command aggr.variancep(X_1:bat[:sht],
X_2:bat[:oid], X_3:bat[:any_1]):bat[:dbl] ", "AGGRvariancep3_dbl;", ""
]
[ "aggr", "variancep", "command aggr.variancep(X_1:bat[:any_2]):dbl ",
"ALGvariancep;", "" ]
+[ "aggr", "zero_or_one", "command
aggr.zero_or_one(X_1:bat[:any_1]):any_1 ", "zero_or_one;", "" ]
+[ "aggr", "zero_or_one", "command aggr.zero_or_one(X_1:bat[:any_1],
X_2:bit):any_1 ", "zero_or_one_error;", "" ]
+[ "aggr", "zero_or_one", "command aggr.zero_or_one(X_1:bat[:any_1],
X_2:bat[:bit]):any_1 ", "zero_or_one_error_bat;", "" ]
[ "alarm", "ctime", "unsafe command alarm.ctime():str ",
"ALARMctime;", "" ]
[ "alarm", "epoch", "unsafe command alarm.epoch():int ",
"ALARMepoch;", "" ]
[ "alarm", "sleep", "unsafe pattern alarm.sleep(X_1:any_1):any_1 ",
"ALARMsleep;", "" ]
@@ -7272,8 +7282,22 @@ stdout of test 'MAL-signatures` in direc
[ "batrapi", "eval", "pattern batrapi.eval(X_1:ptr, X_2:str,
X_3:any...):any... ", "RAPIevalStd;", "" ]
[ "batrapi", "eval_aggr", "pattern batrapi.eval_aggr(X_1:ptr, X_2:str,
X_3:any...):any... ", "RAPIevalAggr;", "" ]
[ "batrapi", "subeval_aggr", "pattern batrapi.subeval_aggr(X_1:ptr, X_2:str,
X_3:any...):any... ", "RAPIevalAggr;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bit,
X_3:bit):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bit, X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bit, X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bit, X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
[ "batsql", "alpha", "command batsql.alpha(X_1:bat[:dbl],
X_2:dbl):bat[:dbl] ", "SQLbat_alpha_cst;", "" ]
[ "batsql", "alpha", "command batsql.alpha(X_1:dbl,
X_2:bat[:dbl]):bat[:dbl] ", "SQLcst_alpha_bat;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bit,
X_3:bit):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bit, X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bit, X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bit, X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
[ "batsql", "avg", "pattern batsql.avg(X_1:bat[:bte], X_2:bat[:lng],
X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ]
[ "batsql", "avg", "pattern batsql.avg(X_1:bat[:dbl], X_2:bat[:lng],
X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ]
[ "batsql", "avg", "pattern batsql.avg(X_1:bat[:flt], X_2:bat[:lng],
X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ]
@@ -9981,14 +10005,13 @@ stdout of test 'MAL-signatures` in direc
[ "shp", "import", "pattern shp.import(X_1:int, X_2:wkb):void ",
"SHPpartialimport;", "" ]
[ "sql", "abort", "unsafe pattern sql.abort():void ",
"SQLabort;", "" ]
[ "sql", "affectedRows", "unsafe pattern sql.affectedRows(X_1:int,
X_2:lng):int ", "mvc_affected_rows_wrap;", "" ]
-[ "sql", "all", "command sql.all(X_1:bat[:any_1]):any_1 ",
"SQLall;", "" ]
-[ "sql", "all", "command sql.all(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLall_cmp;", "" ]
+[ "sql", "all", "pattern sql.all(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLall_cmp;", "" ]
[ "sql", "alpha", "command sql.alpha(X_1:dbl, X_2:dbl):dbl ",
"SQLcst_alpha_cst;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int,
X_2:lng):void ", "sql_analyze;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng,
X_3:str):void ", "sql_analyze;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng,
X_3:str, X_4:str):void ", "sql_analyze;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng,
X_3:str, X_4:str, X_5:str):void ", "sql_analyze;", "" ]
-[ "sql", "any", "command sql.any(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLany_cmp;", "" ]
+[ "sql", "any", "pattern sql.any(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLany_cmp;", "" ]
[ "sql", "append", "pattern sql.append(X_1:int, X_2:str, X_3:str,
X_4:str, X_5:any):int ", "mvc_append_wrap;", "" ]
[ "sql", "argRecord", "pattern sql.argRecord():str ",
"SQLargRecord;", "" ]
[ "sql", "argRecord", "pattern sql.argRecord(X_1:any...):str ",
"SQLargRecord;", "" ]
@@ -10105,7 +10128,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "not_unique", "command sql.not_unique(X_1:bat[:oid]):bit ",
"not_unique;", "" ]
[ "sql", "nth_value", "pattern sql.nth_value(X_1:any_1, X_2:any_2,
X_3:lng, X_4:lng):any_1 ", "SQLnth_value;", "" ]
[ "sql", "ntile", "pattern sql.ntile(X_1:any_1, X_2:any_2,
X_3:any_3, X_4:any_4):any_2 ", "SQLntile;", "" ]
-[ "sql", "null", "command sql.null(X_1:bat[:any_1]):bit ",
"SQLnil;", "" ]
[ "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(X_1:str):str ",
"db_password_wrap;", "" ]
@@ -10188,13 +10210,8 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "storage", "pattern sql.storage(X_17:str, X_18:str,
X_19:str) (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str],
X_4:bat[:str], X_5:bat[:str], X_6:bat[:lng], X_7:bat[:int], X_8:bat[:lng],
X_9:bat[:lng], X_10:bat[:lng], X_11:bat[:bit], X_12:bat[:lng], X_13:bat[:bit],
X_14:bat[:bit], X_15:bat[:bit], X_16:bat[:lng]) ", "sql_storage;", "" ]
[ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str,
X_2:lng, X_3:lng):str ", "SQLstrgroup_concat;", "" ]
[ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str,
X_2:str, X_3:lng, X_4:lng):str ", "SQLstrgroup_concat;", "" ]
-[ "sql", "suball", "pattern sql.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:any_1] ",
"SQLall_grp;", "" ]
-[ "sql", "suball", "pattern sql.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:any_1] ", "SQLall_grp;", ""
]
[ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid]):bat[:oid] ", "DELTAsub2;", ""
]
[ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bat[:oid]):bat[:oid] ",
"DELTAsub;", "" ]
-[ "sql", "subnull", "pattern sql.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:bit] ",
"SQLnil_grp;", "" ]
-[ "sql", "subnull", "pattern sql.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit] ", "SQLnil_grp;", ""
]
-[ "sql", "subzero_or_one", "command
sql.subzero_or_one(X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid],
X_4:bit):bat[:any_1] ", "SQLsubzero_or_one;", "" ]
[ "sql", "sum", "pattern sql.sum(X_1:bte, X_2:lng, X_3:lng):lng ",
"SQLsum;", "" ]
[ "sql", "sum", "pattern sql.sum(X_1:dbl, X_2:lng, X_3:lng):dbl ",
"SQLsum;", "" ]
[ "sql", "sum", "pattern sql.sum(X_1:flt, X_2:lng, X_3:lng):dbl ",
"SQLsum;", "" ]
@@ -10240,9 +10257,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "window_bound", "pattern sql.window_bound(X_1:bit, X_2:any_1,
X_3:int, X_4:int, X_5:int, X_6:int):lng ", "SQLwindow_bound;", ""
]
[ "sql", "window_bound", "pattern sql.window_bound(X_1:bit, X_2:any_1,
X_3:int, X_4:int, X_5:int, X_6:lng):lng ", "SQLwindow_bound;", ""
]
[ "sql", "window_bound", "pattern sql.window_bound(X_1:bit, X_2:any_1,
X_3:int, X_4:int, X_5:int, X_6:sht):lng ", "SQLwindow_bound;", ""
]
-[ "sql", "zero_or_one", "command sql.zero_or_one(X_1:bat[:any_1]):any_1
", "zero_or_one;", "" ]
-[ "sql", "zero_or_one", "command sql.zero_or_one(X_1:bat[:any_1],
X_2:bit):any_1 ", "zero_or_one_error;", "" ]
-[ "sql", "zero_or_one", "command sql.zero_or_one(X_1:bat[:any_1],
X_2:bat[:bit]):any_1 ", "zero_or_one_error_bat;", "" ]
[ "sqlcatalog", "alter_add_range_partition", "pattern
sqlcatalog.alter_add_range_partition(X_1:str, X_2:str, X_3:str, X_4:str,
X_5:any_1, X_6:any_1, X_7:bit, X_8:int):void ",
"SQLalter_add_range_partition;", "" ]
[ "sqlcatalog", "alter_add_table", "pattern
sqlcatalog.alter_add_table(X_1:str, X_2:str, X_3:str, X_4:str, X_5:int):void ",
"SQLalter_add_table;", "" ]
[ "sqlcatalog", "alter_add_value_partition", "pattern
sqlcatalog.alter_add_value_partition(X_1:str, X_2:str, X_3:str, X_4:str,
X_5:bit, X_6:int):void ", "SQLalter_add_value_partition;", "" ]
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
@@ -69,6 +69,7 @@ stdout of test 'MAL-signatures` in direc
% module, function, signature, address, comment # name
% clob, clob, clob, clob, clob # type
% 12, 28, 313, 42, 0 # length
+[ "aggr", "all", "command aggr.all(X_1:bat[:any_1]):any_1 ",
"SQLall;", "" ]
[ "aggr", "allnotequal", "command aggr.allnotequal(X_1:bat[:any_1],
X_2:bat[:any_1]):bit ", "SQLallnotequal;", "" ]
[ "aggr", "anyequal", "pattern aggr.anyequal(X_1:any_1,
X_2:any_1):bit ", "CMDvarEQ;", "" ]
[ "aggr", "anyequal", "command aggr.anyequal(X_1:bat[:any_1],
X_2:bat[:any_1]):bit ", "SQLanyequal;", "" ]
@@ -148,6 +149,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "min", "command aggr.min(X_1:bat[:any_2], X_2:bit):any_2 ",
"ALGminany_skipnil;", "" ]
[ "aggr", "not_anyequal", "pattern aggr.not_anyequal(X_1:any_1,
X_2:any_1):bit ", "CMDvarNE;", "" ]
[ "aggr", "not_exist", "pattern aggr.not_exist(X_1:any_1):bit ",
"SQLnot_exist;", "" ]
+[ "aggr", "null", "command aggr.null(X_1:bat[:any_1]):bit ",
"SQLnil;", "" ]
[ "aggr", "prod", "command aggr.prod(X_1:bat[:bte], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:bte] ", "AGGRprod3_bte;", "" ]
[ "aggr", "prod", "command aggr.prod(X_1:bat[:dbl], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "" ]
[ "aggr", "prod", "command aggr.prod(X_1:bat[:flt], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRprod3_dbl;", "" ]
@@ -286,6 +288,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "str_group_concat", "pattern
aggr.str_group_concat(X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bit):str
", "CMDBATstr_group_concat;", "" ]
[ "aggr", "str_group_concat", "pattern
aggr.str_group_concat(X_1:bat[:str], X_2:bat[:str], X_3:bit):str ",
"CMDBATstr_group_concat;", "" ]
[ "aggr", "str_group_concat", "pattern
aggr.str_group_concat(X_1:bat[:str], X_2:bit):str ",
"CMDBATstr_group_concat;", "" ]
+[ "aggr", "suball", "pattern aggr.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:any_1] ",
"SQLall_grp;", "" ]
+[ "aggr", "suball", "pattern aggr.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:any_1] ", "SQLall_grp;", ""
]
[ "aggr", "suballnotequal", "pattern
aggr.suballnotequal(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid],
X_4:bat[:oid], X_5:bat[:oid], X_6:bat[:oid], X_7:bit):bat[:bit] ",
"SQLallnotequal_grp2;", "" ]
[ "aggr", "suballnotequal", "pattern
aggr.suballnotequal(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid],
X_4:bat[:oid], X_5:bat[:oid], X_6:bit):bat[:bit] ",
"SQLallnotequal_grp2;", "" ]
[ "aggr", "suballnotequal", "pattern
aggr.suballnotequal(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid],
X_4:bat[:oid], X_5:bat[:oid], X_6:bit):bat[:bit] ",
"SQLallnotequal_grp;", "" ]
@@ -410,6 +414,8 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "submin", "command aggr.submin(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:any_2], X_4:bat[:oid], X_5:bit):bat[:any_1] ",
"AGGRsubmincand_val;", "" ]
[ "aggr", "subnot_exist", "pattern aggr.subnot_exist(X_1:bat[:any],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:bit] ",
"SQLsubnot_exist;", "" ]
[ "aggr", "subnot_exist", "pattern aggr.subnot_exist(X_1:bat[:any],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit] ", "SQLsubnot_exist;",
"" ]
+[ "aggr", "subnull", "pattern aggr.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:bit] ",
"SQLnil_grp;", "" ]
+[ "aggr", "subnull", "pattern aggr.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit] ", "SQLnil_grp;", ""
]
[ "aggr", "subprod", "command aggr.subprod(X_1:bat[:bte],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bit, X_5:bit):bat[:bte] ",
"AGGRsubprod_bte;", "" ]
[ "aggr", "subprod", "command aggr.subprod(X_1:bat[:dbl],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bit, X_5:bit):bat[:dbl] ",
"AGGRsubprod_dbl;", "" ]
[ "aggr", "subprod", "command aggr.subprod(X_1:bat[:flt],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bit, X_5:bit):bat[:dbl] ",
"AGGRsubprod_dbl;", "" ]
@@ -546,6 +552,7 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "subvariancep", "command aggr.subvariancep(X_1:bat[:int],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bat[:oid], X_5:bit, X_6:bit):bat[:dbl] ",
"AGGRsubvariancepcand_dbl;", "" ]
[ "aggr", "subvariancep", "command aggr.subvariancep(X_1:bat[:lng],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bat[:oid], X_5:bit, X_6:bit):bat[:dbl] ",
"AGGRsubvariancepcand_dbl;", "" ]
[ "aggr", "subvariancep", "command aggr.subvariancep(X_1:bat[:sht],
X_2:bat[:oid], X_3:bat[:any_1], X_4:bat[:oid], X_5:bit, X_6:bit):bat[:dbl] ",
"AGGRsubvariancepcand_dbl;", "" ]
+[ "aggr", "subzero_or_one", "command
aggr.subzero_or_one(X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid],
X_4:bit):bat[:any_1] ", "SQLsubzero_or_one;", "" ]
[ "aggr", "sum", "command aggr.sum(X_1:bat[:bte], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:bte] ", "AGGRsum3_bte;", "" ]
[ "aggr", "sum", "command aggr.sum(X_1:bat[:bte], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRsum3_dbl;", "" ]
[ "aggr", "sum", "command aggr.sum(X_1:bat[:dbl], X_2:bat[:oid],
X_3:bat[:any_1]):bat[:dbl] ", "AGGRsum3_dbl;", "" ]
@@ -676,6 +683,9 @@ stdout of test 'MAL-signatures` in direc
[ "aggr", "variancep", "command aggr.variancep(X_1:bat[:lng],
X_2:bat[:oid], X_3:bat[:any_1]):bat[:dbl] ", "AGGRvariancep3_dbl;", ""
]
[ "aggr", "variancep", "command aggr.variancep(X_1:bat[:sht],
X_2:bat[:oid], X_3:bat[:any_1]):bat[:dbl] ", "AGGRvariancep3_dbl;", ""
]
[ "aggr", "variancep", "command aggr.variancep(X_1:bat[:any_2]):dbl ",
"ALGvariancep;", "" ]
+[ "aggr", "zero_or_one", "command
aggr.zero_or_one(X_1:bat[:any_1]):any_1 ", "zero_or_one;", "" ]
+[ "aggr", "zero_or_one", "command aggr.zero_or_one(X_1:bat[:any_1],
X_2:bit):any_1 ", "zero_or_one_error;", "" ]
+[ "aggr", "zero_or_one", "command aggr.zero_or_one(X_1:bat[:any_1],
X_2:bat[:bit]):any_1 ", "zero_or_one_error_bat;", "" ]
[ "alarm", "ctime", "unsafe command alarm.ctime():str ",
"ALARMctime;", "" ]
[ "alarm", "epoch", "unsafe command alarm.epoch():int ",
"ALARMepoch;", "" ]
[ "alarm", "sleep", "unsafe pattern alarm.sleep(X_1:any_1):any_1 ",
"ALARMsleep;", "" ]
@@ -9930,8 +9940,22 @@ stdout of test 'MAL-signatures` in direc
[ "batrapi", "eval", "pattern batrapi.eval(X_1:ptr, X_2:str,
X_3:any...):any... ", "RAPIevalStd;", "" ]
[ "batrapi", "eval_aggr", "pattern batrapi.eval_aggr(X_1:ptr, X_2:str,
X_3:any...):any... ", "RAPIevalAggr;", "" ]
[ "batrapi", "subeval_aggr", "pattern batrapi.subeval_aggr(X_1:ptr, X_2:str,
X_3:any...):any... ", "RAPIevalAggr;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bat[:bit], X_2:bit,
X_3:bit):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bit, X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bit, X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLall_cmp;", "" ]
+[ "batsql", "all", "pattern batsql.all(X_1:bit, X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLall_cmp;", "" ]
[ "batsql", "alpha", "command batsql.alpha(X_1:bat[:dbl],
X_2:dbl):bat[:dbl] ", "SQLbat_alpha_cst;", "" ]
[ "batsql", "alpha", "command batsql.alpha(X_1:dbl,
X_2:bat[:dbl]):bat[:dbl] ", "SQLcst_alpha_bat;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bat[:bit], X_2:bit,
X_3:bit):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bit, X_2:bat[:bit],
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bit, X_2:bat[:bit],
X_3:bit):bat[:bit] ", "SQLany_cmp;", "" ]
+[ "batsql", "any", "pattern batsql.any(X_1:bit, X_2:bit,
X_3:bat[:bit]):bat[:bit] ", "SQLany_cmp;", "" ]
[ "batsql", "avg", "pattern batsql.avg(X_1:bat[:bte], X_2:bat[:lng],
X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ]
[ "batsql", "avg", "pattern batsql.avg(X_1:bat[:dbl], X_2:bat[:lng],
X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ]
[ "batsql", "avg", "pattern batsql.avg(X_1:bat[:flt], X_2:bat[:lng],
X_3:bat[:lng]):bat[:dbl] ", "SQLavg;", "" ]
@@ -13334,14 +13358,13 @@ stdout of test 'MAL-signatures` in direc
[ "shp", "import", "pattern shp.import(X_1:int, X_2:wkb):void ",
"SHPpartialimport;", "" ]
[ "sql", "abort", "unsafe pattern sql.abort():void ",
"SQLabort;", "" ]
[ "sql", "affectedRows", "unsafe pattern sql.affectedRows(X_1:int,
X_2:lng):int ", "mvc_affected_rows_wrap;", "" ]
-[ "sql", "all", "command sql.all(X_1:bat[:any_1]):any_1 ",
"SQLall;", "" ]
-[ "sql", "all", "command sql.all(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLall_cmp;", "" ]
+[ "sql", "all", "pattern sql.all(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLall_cmp;", "" ]
[ "sql", "alpha", "command sql.alpha(X_1:dbl, X_2:dbl):dbl ",
"SQLcst_alpha_cst;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int,
X_2:lng):void ", "sql_analyze;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng,
X_3:str):void ", "sql_analyze;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng,
X_3:str, X_4:str):void ", "sql_analyze;", "" ]
[ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng,
X_3:str, X_4:str, X_5:str):void ", "sql_analyze;", "" ]
-[ "sql", "any", "command sql.any(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLany_cmp;", "" ]
+[ "sql", "any", "pattern sql.any(X_1:bit, X_2:bit, X_3:bit):bit ",
"SQLany_cmp;", "" ]
[ "sql", "append", "pattern sql.append(X_1:int, X_2:str, X_3:str,
X_4:str, X_5:any):int ", "mvc_append_wrap;", "" ]
[ "sql", "argRecord", "pattern sql.argRecord():str ",
"SQLargRecord;", "" ]
[ "sql", "argRecord", "pattern sql.argRecord(X_1:any...):str ",
"SQLargRecord;", "" ]
@@ -13463,7 +13486,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "not_unique", "command sql.not_unique(X_1:bat[:oid]):bit ",
"not_unique;", "" ]
[ "sql", "nth_value", "pattern sql.nth_value(X_1:any_1, X_2:any_2,
X_3:lng, X_4:lng):any_1 ", "SQLnth_value;", "" ]
[ "sql", "ntile", "pattern sql.ntile(X_1:any_1, X_2:any_2,
X_3:any_3, X_4:any_4):any_2 ", "SQLntile;", "" ]
-[ "sql", "null", "command sql.null(X_1:bat[:any_1]):bit ",
"SQLnil;", "" ]
[ "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(X_1:str):str ",
"db_password_wrap;", "" ]
@@ -13554,13 +13576,8 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "storage", "pattern sql.storage(X_17:str, X_18:str,
X_19:str) (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str],
X_4:bat[:str], X_5:bat[:str], X_6:bat[:lng], X_7:bat[:int], X_8:bat[:lng],
X_9:bat[:lng], X_10:bat[:lng], X_11:bat[:bit], X_12:bat[:lng], X_13:bat[:bit],
X_14:bat[:bit], X_15:bat[:bit], X_16:bat[:lng]) ", "sql_storage;", "" ]
[ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str,
X_2:lng, X_3:lng):str ", "SQLstrgroup_concat;", "" ]
[ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str,
X_2:str, X_3:lng, X_4:lng):str ", "SQLstrgroup_concat;", "" ]
-[ "sql", "suball", "pattern sql.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:any_1] ",
"SQLall_grp;", "" ]
-[ "sql", "suball", "pattern sql.suball(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:any_1] ", "SQLall_grp;", ""
]
[ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid]):bat[:oid] ", "DELTAsub2;", ""
]
[ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bat[:oid]):bat[:oid] ",
"DELTAsub;", "" ]
-[ "sql", "subnull", "pattern sql.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bit):bat[:bit] ",
"SQLnil_grp;", "" ]
-[ "sql", "subnull", "pattern sql.subnull(X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit] ", "SQLnil_grp;", ""
]
-[ "sql", "subzero_or_one", "command
sql.subzero_or_one(X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid],
X_4:bit):bat[:any_1] ", "SQLsubzero_or_one;", "" ]
[ "sql", "sum", "pattern sql.sum(X_1:bte, X_2:lng, X_3:lng):hge ",
"SQLsum;", "" ]
[ "sql", "sum", "pattern sql.sum(X_1:bte, X_2:lng, X_3:lng):lng ",
"SQLsum;", "" ]
[ "sql", "sum", "pattern sql.sum(X_1:dbl, X_2:lng, X_3:lng):dbl ",
"SQLsum;", "" ]
@@ -13615,9 +13632,6 @@ stdout of test 'MAL-signatures` in direc
[ "sql", "window_bound", "pattern sql.window_bound(X_1:bit, X_2:any_1,
X_3:int, X_4:int, X_5:int, X_6:int):lng ", "SQLwindow_bound;", ""
]
[ "sql", "window_bound", "pattern sql.window_bound(X_1:bit, X_2:any_1,
X_3:int, X_4:int, X_5:int, X_6:lng):lng ", "SQLwindow_bound;", ""
]
[ "sql", "window_bound", "pattern sql.window_bound(X_1:bit, X_2:any_1,
X_3:int, X_4:int, X_5:int, X_6:sht):lng ", "SQLwindow_bound;", ""
]
-[ "sql", "zero_or_one", "command sql.zero_or_one(X_1:bat[:any_1]):any_1
", "zero_or_one;", "" ]
-[ "sql", "zero_or_one", "command sql.zero_or_one(X_1:bat[:any_1],
X_2:bit):any_1 ", "zero_or_one_error;", "" ]
-[ "sql", "zero_or_one", "command sql.zero_or_one(X_1:bat[:any_1],
X_2:bat[:bit]):any_1 ", "zero_or_one_error_bat;", "" ]
[ "sqlcatalog", "alter_add_range_partition", "pattern
sqlcatalog.alter_add_range_partition(X_1:str, X_2:str, X_3:str, X_4:str,
X_5:any_1, X_6:any_1, X_7:bit, X_8:int):void ",
"SQLalter_add_range_partition;", "" ]
[ "sqlcatalog", "alter_add_table", "pattern
sqlcatalog.alter_add_table(X_1:str, X_2:str, X_3:str, X_4:str, X_5:int):void ",
"SQLalter_add_table;", "" ]
[ "sqlcatalog", "alter_add_value_partition", "pattern
sqlcatalog.alter_add_value_partition(X_1:str, X_2:str, X_3:str, X_4:str,
X_5:bit, X_6:int):void ", "SQLalter_add_value_partition;", "" ]
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -6622,18 +6622,32 @@ static mel_func sql_init_funcs[] = {
pattern("batsql", "str_group_concat", SQLstrgroup_concat, false, "return the
string concatenation of groups with a custom separator", args(1,5,
batarg("",str),arg("b",str),batarg("sep",str),arg("s",lng),arg("e",lng))),
pattern("batsql", "str_group_concat", SQLstrgroup_concat, false, "return the
string concatenation of groups with a custom separator", args(1,5,
batarg("",str),batarg("b",str),batarg("sep",str),batarg("s",lng),batarg("e",lng))),
/* sql_subquery */
- command("sql", "zero_or_one", zero_or_one, false, "if col contains exactly
one value return this. Incase of more raise an exception else return nil",
args(1,2, argany("",1),batargany("col",1))),
- command("sql", "zero_or_one", zero_or_one_error, false, "if col contains
exactly one value return this. Incase of more raise an exception if err is true
else return nil", args(1,3, argany("",1),batargany("col",1),arg("err",bit))),
- command("sql", "zero_or_one", zero_or_one_error_bat, false, "if col contains
exactly one value return this. Incase of more raise an exception if err is true
else return nil", args(1,3, argany("",1),batargany("col",1),batarg("err",bit))),
- command("sql", "subzero_or_one", SQLsubzero_or_one, false, "", args(1,5,
batargany("",1),batargany("b",1),batarg("g",oid),batarg("e",oid),arg("no_nil",bit))),
- command("sql", "all", SQLall, false, "if all values in b are equal return
this, else nil", args(1,2, argany("",1),batargany("b",1))),
- pattern("sql", "suball", SQLall_grp, false, "if all values in l are equal
(per group) return the value, else nil", args(1,5,
batargany("",1),batargany("l",1),batarg("g",oid),batarg("e",oid),arg("no_nil",bit))),
- pattern("sql", "suball", SQLall_grp, false, "if all values in l are equal
(per group) return the value, else nil", args(1,6,
batargany("",1),batargany("l",1),batarg("g",oid),batarg("e",oid),batarg("s",oid),arg("no_nil",bit))),
- command("sql", "null", SQLnil, false, "if b has a nil return true, else
false", args(1,2, arg("",bit),batargany("b",1))),
- pattern("sql", "subnull", SQLnil_grp, false, "if any value in l is nil with
in a group return true for that group, else false", args(1,5,
batarg("",bit),batargany("l",1),batarg("g",oid),batarg("e",oid),arg("no_nil",bit))),
- pattern("sql", "subnull", SQLnil_grp, false, "if any value in l is nil with
in a group return true for that group, else false; with candidate list",
args(1,6,
batarg("",bit),batargany("l",1),batarg("g",oid),batarg("e",oid),batarg("s",oid),arg("no_nil",bit))),
- command("sql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
arg("",bit),arg("cmp",bit),arg("nl",bit),arg("nr",bit))),
- command("sql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr) then
nil, else true", args(1,4,
arg("",bit),arg("cmp",bit),arg("nl",bit),arg("nr",bit))),
+ command("aggr", "zero_or_one", zero_or_one, false, "if col contains exactly
one value return this. Incase of more raise an exception else return nil",
args(1,2, argany("",1),batargany("col",1))),
+ command("aggr", "zero_or_one", zero_or_one_error, false, "if col contains
exactly one value return this. Incase of more raise an exception if err is true
else return nil", args(1,3, argany("",1),batargany("col",1),arg("err",bit))),
+ command("aggr", "zero_or_one", zero_or_one_error_bat, false, "if col contains
exactly one value return this. Incase of more raise an exception if err is true
else return nil", args(1,3, argany("",1),batargany("col",1),batarg("err",bit))),
+ command("aggr", "subzero_or_one", SQLsubzero_or_one, false, "", args(1,5,
batargany("",1),batargany("b",1),batarg("g",oid),batarg("e",oid),arg("no_nil",bit))),
+ command("aggr", "all", SQLall, false, "if all values in b are equal return
this, else nil", args(1,2, argany("",1),batargany("b",1))),
+ pattern("aggr", "suball", SQLall_grp, false, "if all values in l are equal
(per group) return the value, else nil", args(1,5,
batargany("",1),batargany("l",1),batarg("g",oid),batarg("e",oid),arg("no_nil",bit))),
+ pattern("aggr", "suball", SQLall_grp, false, "if all values in l are equal
(per group) return the value, else nil", args(1,6,
batargany("",1),batargany("l",1),batarg("g",oid),batarg("e",oid),batarg("s",oid),arg("no_nil",bit))),
+ command("aggr", "null", SQLnil, false, "if b has a nil return true, else
false", args(1,2, arg("",bit),batargany("b",1))),
+ pattern("aggr", "subnull", SQLnil_grp, false, "if any value in l is nil with
in a group return true for that group, else false", args(1,5,
batarg("",bit),batargany("l",1),batarg("g",oid),batarg("e",oid),arg("no_nil",bit))),
+ pattern("aggr", "subnull", SQLnil_grp, false, "if any value in l is nil with
in a group return true for that group, else false; with candidate list",
args(1,6,
batarg("",bit),batargany("l",1),batarg("g",oid),batarg("e",oid),batarg("s",oid),arg("no_nil",bit))),
+ pattern("sql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
arg("",bit),arg("cmp",bit),arg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
batarg("",bit),batarg("cmp",bit),arg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
batarg("",bit),arg("cmp",bit),batarg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
batarg("",bit),arg("cmp",bit),arg("nl",bit),batarg("nr",bit))),
+ pattern("batsql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
batarg("",bit),arg("cmp",bit),batarg("nl",bit),batarg("nr",bit))),
+ pattern("batsql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
batarg("",bit),batarg("cmp",bit),arg("nl",bit),batarg("nr",bit))),
+ pattern("batsql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
batarg("",bit),batarg("cmp",bit),batarg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "any", SQLany_cmp, false, "if cmp then true, (nl or nr) nil
then nil, else false", args(1,4,
batarg("",bit),batarg("cmp",bit),batarg("nl",bit),batarg("nr",bit))),
+ pattern("sql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr) then
nil, else true", args(1,4,
arg("",bit),arg("cmp",bit),arg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr)
then nil, else true", args(1,4,
batarg("",bit),batarg("cmp",bit),arg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr)
then nil, else true", args(1,4,
batarg("",bit),arg("cmp",bit),batarg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr)
then nil, else true", args(1,4,
batarg("",bit),arg("cmp",bit),arg("nl",bit),batarg("nr",bit))),
+ pattern("batsql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr)
then nil, else true", args(1,4,
batarg("",bit),arg("cmp",bit),batarg("nl",bit),batarg("nr",bit))),
+ pattern("batsql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr)
then nil, else true", args(1,4,
batarg("",bit),batarg("cmp",bit),arg("nl",bit),batarg("nr",bit))),
+ pattern("batsql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr)
then nil, else true", args(1,4,
batarg("",bit),batarg("cmp",bit),batarg("nl",bit),arg("nr",bit))),
+ pattern("batsql", "all", SQLall_cmp, false, "if !cmp then false, (nl or nr)
then nil, else true", args(1,4,
batarg("",bit),batarg("cmp",bit),batarg("nl",bit),batarg("nr",bit))),
command("aggr", "anyequal", SQLanyequal, false, "if any value in r is equal
to l return true, else if r has nil nil else false", args(1,3,
arg("",bit),batargany("l",1),batargany("r",1))),
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list