Changeset: b0057dec3e17 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b0057dec3e17
Modified Files:
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
Branch: pushcands
Log Message:
Merged with default
diffs (truncated from 1263 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
@@ -635,32 +635,16 @@ stdout of test 'MAL-signatures` in direc
[ "algebra", "firstn", "pattern algebra.firstn(X_0:bat[:any],
X_1:bat[:oid], X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit)
(X_7:bat[:oid], X_8:bat[:oid]) ", "ALGfirstn;", "" ]
[ "algebra", "firstn", "pattern algebra.firstn(X_0:bat[:any],
X_1:bat[:oid], X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit):bat[:oid] ",
"ALGfirstn;", "" ]
[ "algebra", "groupby", "command algebra.groupby(X_0:bat[:oid],
X_1:bat[:lng]):bat[:oid] ", "ALGgroupby;", "" ]
-[ "algebra", "ilike", "command algebra.ilike(X_0:str, X_1:str):bit ",
"PCREilike2;", "" ]
-[ "algebra", "ilike", "command algebra.ilike(X_0:str, X_1:str,
X_2:str):bit ", "PCREilike3;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng,
X_6:bit):bat[:oid] ", "ILIKEjoin1;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng, X_6:bit)
(X_7:bat[:oid], X_8:bat[:oid]) ", "ILIKEjoin;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit):bat[:oid] ", "ILIKEjoin_esc1;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit) (X_8:bat[:oid], X_9:bat[:oid]) ", "ILIKEjoin_esc;", ""
]
-[ "algebra", "ilikeselect", "command algebra.ilikeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit):bat[:oid] ", "PCRElikeselect1;",
"" ]
-[ "algebra", "ilikeselect", "command algebra.ilikeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:bit):bat[:oid] ", "PCRElikeselect4;", ""
]
[ "algebra", "intersect", "command algebra.intersect(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit,
X_6:lng):bat[:oid] ", "ALGintersect;", "" ]
[ "algebra", "join", "command algebra.join(X_0:bat[:any_1], X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng):bat[:oid] ", "ALGjoin1;",
"" ]
[ "algebra", "join", "command algebra.join(X_0:bat[:any_1], X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:oid])
", "ALGjoin;", "" ]
[ "algebra", "leftjoin", "command algebra.leftjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng):bat[:oid] ",
"ALGleftjoin1;", "" ]
[ "algebra", "leftjoin", "command algebra.leftjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng)
(X_6:bat[:oid], X_7:bat[:oid]) ", "ALGleftjoin;", "" ]
-[ "algebra", "like", "command algebra.like(X_0:str, X_1:str):bit ",
"PCRElike2;", "" ]
-[ "algebra", "like", "command algebra.like(X_0:str, X_1:str, X_2:str):bit ",
"PCRElike3;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng,
X_6:bit):bat[:oid] ", "LIKEjoin1;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng, X_6:bit)
(X_7:bat[:oid], X_8:bat[:oid]) ", "LIKEjoin;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit):bat[:oid] ", "LIKEjoin_esc1;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit) (X_8:bat[:oid], X_9:bat[:oid]) ", "LIKEjoin_esc;", ""
]
-[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit, X_5:bit):bat[:oid] ",
"PCRElikeselect2;", "" ]
-[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit):bat[:oid] ",
"PCRElikeselect3;", "" ]
-[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:bit):bat[:oid] ", "PCRElikeselect5;", ""
]
-[ "algebra", "not_ilike", "command algebra.not_ilike(X_0:str,
X_1:str):bit ", "PCREnotilike2;", "" ]
-[ "algebra", "not_ilike", "command algebra.not_ilike(X_0:str, X_1:str,
X_2:str):bit ", "PCREnotilike3;", "" ]
-[ "algebra", "not_like", "command algebra.not_like(X_0:str, X_1:str):bit
", "PCREnotlike2;", "" ]
-[ "algebra", "not_like", "command algebra.not_like(X_0:str, X_1:str,
X_2:str):bit ", "PCREnotlike3;", "" ]
+[ "algebra", "like", "command algebra.like(X_0:str, X_1:str, X_2:str,
X_3:bit):bit ", "PCRElike;", "" ]
+[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:bit], X_4:bat[:oid], X_5:bat[:oid],
X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "LIKEjoin1;", "" ]
+[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:bit], X_4:bat[:oid], X_5:bat[:oid],
X_6:bit, X_7:lng, X_8:bit) (X_9:bat[:oid], X_10:bat[:oid]) ",
"LIKEjoin;", "" ]
+[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit, X_5:bit):bat[:oid] ",
"PCRElikeselect;", "" ]
+[ "algebra", "not_like", "command algebra.not_like(X_0:str, X_1:str,
X_2:str, X_3:bit):bit ", "PCREnotlike;", "" ]
[ "algebra", "orderidx", "command algebra.orderidx(X_0:bat[:any_1],
X_1:bit):bat[:any_1] ", "OIDXorderidx;", "" ]
[ "algebra", "outerjoin", "command algebra.outerjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit,
X_6:lng):bat[:oid] ", "ALGouterjoin1;", "" ]
[ "algebra", "outerjoin", "command algebra.outerjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng)
(X_7:bat[:oid], X_8:bat[:oid]) ", "ALGouterjoin;", "" ]
@@ -776,30 +760,12 @@ stdout of test 'MAL-signatures` in direc
[ "bataggr", "not_exist", "pattern bataggr.not_exist(X_0:any_1):bat[:bit]
", "SQLnot_exist;", "" ]
[ "bataggr", "not_exist", "pattern
bataggr.not_exist(X_0:bat[:any_1]):bat[:bit] ", "SQLnot_exist;",
"" ]
[ "bataggr", "not_exist", "pattern bataggr.not_exist(X_0:bat[:any_1]):bit
", "SQLnot_exist;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:bat[:str]):bat[:bit] ",
"BATPCREilike2;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:str):bat[:bit] ", "BATPCREilike2;",
"" ]
-[ "batalgebra", "ilike", "pattern batalgebra.ilike(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCREilike2;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:bat[:str], X_2:str):bat[:bit] ",
"BATPCREilike;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:str, X_2:str):bat[:bit] ", "BATPCREilike;",
"" ]
-[ "batalgebra", "ilike", "pattern batalgebra.ilike(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCREilike;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:bat[:str]):bat[:bit] ", "BATPCRElike2;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:str):bat[:bit] ", "BATPCRElike2;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCRElike2;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCRElike;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:str, X_2:str):bat[:bit] ", "BATPCRElike;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCRElike;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:bat[:str]):bat[:bit] ",
"BATPCREnotilike2;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:str):bat[:bit] ",
"BATPCREnotilike2;", "" ]
-[ "batalgebra", "not_ilike", "pattern batalgebra.not_ilike(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCREnotilike2;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:bat[:str], X_2:str):bat[:bit] ",
"BATPCREnotilike;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:str, X_2:str):bat[:bit] ",
"BATPCREnotilike;", "" ]
-[ "batalgebra", "not_ilike", "pattern batalgebra.not_ilike(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCREnotilike;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:bat[:str]):bat[:bit] ",
"BATPCREnotlike2;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:str):bat[:bit] ",
"BATPCREnotlike2;", "" ]
-[ "batalgebra", "not_like", "pattern batalgebra.not_like(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCREnotlike2;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:bat[:str], X_2:str):bat[:bit] ",
"BATPCREnotlike;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:str, X_2:str):bat[:bit] ",
"BATPCREnotlike;", "" ]
-[ "batalgebra", "not_like", "pattern batalgebra.not_like(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCREnotlike;", "" ]
+[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:bat[:str], X_2:str, X_3:bit):bat[:bit] ", "BATPCRElike;", "" ]
+[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:str, X_2:str, X_3:bit):bat[:bit] ", "BATPCRElike;", "" ]
+[ "batalgebra", "like", "pattern batalgebra.like(X_0:str,
X_1:bat[:str], X_2:str, X_3:bit):bat[:bit] ", "BATPCRElike;", "" ]
+[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:bat[:str], X_2:str, X_3:bit):bat[:bit]
", "BATPCREnotlike;", "" ]
+[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:str, X_2:str, X_3:bit):bat[:bit] ",
"BATPCREnotlike;", "" ]
+[ "batalgebra", "not_like", "pattern batalgebra.not_like(X_0:str,
X_1:bat[:str], X_2:str, X_3:bit):bat[:bit] ", "BATPCREnotlike;", ""
]
[ "batblob", "nitems", "pattern
batblob.nitems(X_0:bat[:blob]):bat[:int] ", "BLOBnitems_bulk;", "" ]
[ "batblob", "nitems", "pattern batblob.nitems(X_0:bat[:blob],
X_1:bat[:oid]):bat[:int] ", "BLOBnitems_bulk;", "" ]
[ "batcalc", "!=", "pattern batcalc.!=(X_0:any_1,
X_1:bat[:any_1]):bat[:bit] ", "CMDbatNE;", "" ]
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
@@ -752,32 +752,16 @@ stdout of test 'MAL-signatures` in direc
[ "algebra", "firstn", "pattern algebra.firstn(X_0:bat[:any],
X_1:bat[:oid], X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit)
(X_7:bat[:oid], X_8:bat[:oid]) ", "ALGfirstn;", "" ]
[ "algebra", "firstn", "pattern algebra.firstn(X_0:bat[:any],
X_1:bat[:oid], X_2:bat[:oid], X_3:lng, X_4:bit, X_5:bit, X_6:bit):bat[:oid] ",
"ALGfirstn;", "" ]
[ "algebra", "groupby", "command algebra.groupby(X_0:bat[:oid],
X_1:bat[:lng]):bat[:oid] ", "ALGgroupby;", "" ]
-[ "algebra", "ilike", "command algebra.ilike(X_0:str, X_1:str):bit ",
"PCREilike2;", "" ]
-[ "algebra", "ilike", "command algebra.ilike(X_0:str, X_1:str,
X_2:str):bit ", "PCREilike3;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng,
X_6:bit):bat[:oid] ", "ILIKEjoin1;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng, X_6:bit)
(X_7:bat[:oid], X_8:bat[:oid]) ", "ILIKEjoin;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit):bat[:oid] ", "ILIKEjoin_esc1;", "" ]
-[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit) (X_8:bat[:oid], X_9:bat[:oid]) ", "ILIKEjoin_esc;", ""
]
-[ "algebra", "ilikeselect", "command algebra.ilikeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit):bat[:oid] ", "PCRElikeselect1;",
"" ]
-[ "algebra", "ilikeselect", "command algebra.ilikeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:bit):bat[:oid] ", "PCRElikeselect4;", ""
]
[ "algebra", "intersect", "command algebra.intersect(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit,
X_6:lng):bat[:oid] ", "ALGintersect;", "" ]
[ "algebra", "join", "command algebra.join(X_0:bat[:any_1], X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng):bat[:oid] ", "ALGjoin1;",
"" ]
[ "algebra", "join", "command algebra.join(X_0:bat[:any_1], X_1:bat[:any_1],
X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng) (X_6:bat[:oid], X_7:bat[:oid])
", "ALGjoin;", "" ]
[ "algebra", "leftjoin", "command algebra.leftjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng):bat[:oid] ",
"ALGleftjoin1;", "" ]
[ "algebra", "leftjoin", "command algebra.leftjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng)
(X_6:bat[:oid], X_7:bat[:oid]) ", "ALGleftjoin;", "" ]
-[ "algebra", "like", "command algebra.like(X_0:str, X_1:str):bit ",
"PCRElike2;", "" ]
-[ "algebra", "like", "command algebra.like(X_0:str, X_1:str, X_2:str):bit ",
"PCRElike3;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng,
X_6:bit):bat[:oid] ", "LIKEjoin1;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:lng, X_6:bit)
(X_7:bat[:oid], X_8:bat[:oid]) ", "LIKEjoin;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit):bat[:oid] ", "LIKEjoin_esc1;", "" ]
-[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng,
X_7:bit) (X_8:bat[:oid], X_9:bat[:oid]) ", "LIKEjoin_esc;", ""
]
-[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit, X_5:bit):bat[:oid] ",
"PCRElikeselect2;", "" ]
-[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit):bat[:oid] ",
"PCRElikeselect3;", "" ]
-[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:bit):bat[:oid] ", "PCRElikeselect5;", ""
]
-[ "algebra", "not_ilike", "command algebra.not_ilike(X_0:str,
X_1:str):bit ", "PCREnotilike2;", "" ]
-[ "algebra", "not_ilike", "command algebra.not_ilike(X_0:str, X_1:str,
X_2:str):bit ", "PCREnotilike3;", "" ]
-[ "algebra", "not_like", "command algebra.not_like(X_0:str, X_1:str):bit
", "PCREnotlike2;", "" ]
-[ "algebra", "not_like", "command algebra.not_like(X_0:str, X_1:str,
X_2:str):bit ", "PCREnotlike3;", "" ]
+[ "algebra", "like", "command algebra.like(X_0:str, X_1:str, X_2:str,
X_3:bit):bit ", "PCRElike;", "" ]
+[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:bit], X_4:bat[:oid], X_5:bat[:oid],
X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "LIKEjoin1;", "" ]
+[ "algebra", "likejoin", "command algebra.likejoin(X_0:bat[:str],
X_1:bat[:str], X_2:bat[:str], X_3:bat[:bit], X_4:bat[:oid], X_5:bat[:oid],
X_6:bit, X_7:lng, X_8:bit) (X_9:bat[:oid], X_10:bat[:oid]) ",
"LIKEjoin;", "" ]
+[ "algebra", "likeselect", "command algebra.likeselect(X_0:bat[:str],
X_1:bat[:oid], X_2:str, X_3:str, X_4:bit, X_5:bit):bat[:oid] ",
"PCRElikeselect;", "" ]
+[ "algebra", "not_like", "command algebra.not_like(X_0:str, X_1:str,
X_2:str, X_3:bit):bit ", "PCREnotlike;", "" ]
[ "algebra", "orderidx", "command algebra.orderidx(X_0:bat[:any_1],
X_1:bit):bat[:any_1] ", "OIDXorderidx;", "" ]
[ "algebra", "outerjoin", "command algebra.outerjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit,
X_6:lng):bat[:oid] ", "ALGouterjoin1;", "" ]
[ "algebra", "outerjoin", "command algebra.outerjoin(X_0:bat[:any_1],
X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng)
(X_7:bat[:oid], X_8:bat[:oid]) ", "ALGouterjoin;", "" ]
@@ -895,30 +879,12 @@ stdout of test 'MAL-signatures` in direc
[ "bataggr", "not_exist", "pattern bataggr.not_exist(X_0:any_1):bat[:bit]
", "SQLnot_exist;", "" ]
[ "bataggr", "not_exist", "pattern
bataggr.not_exist(X_0:bat[:any_1]):bat[:bit] ", "SQLnot_exist;",
"" ]
[ "bataggr", "not_exist", "pattern bataggr.not_exist(X_0:bat[:any_1]):bit
", "SQLnot_exist;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:bat[:str]):bat[:bit] ",
"BATPCREilike2;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:str):bat[:bit] ", "BATPCREilike2;",
"" ]
-[ "batalgebra", "ilike", "pattern batalgebra.ilike(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCREilike2;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:bat[:str], X_2:str):bat[:bit] ",
"BATPCREilike;", "" ]
-[ "batalgebra", "ilike", "pattern
batalgebra.ilike(X_0:bat[:str], X_1:str, X_2:str):bat[:bit] ", "BATPCREilike;",
"" ]
-[ "batalgebra", "ilike", "pattern batalgebra.ilike(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCREilike;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:bat[:str]):bat[:bit] ", "BATPCRElike2;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:str):bat[:bit] ", "BATPCRElike2;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCRElike2;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCRElike;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:str, X_2:str):bat[:bit] ", "BATPCRElike;", "" ]
-[ "batalgebra", "like", "pattern batalgebra.like(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCRElike;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:bat[:str]):bat[:bit] ",
"BATPCREnotilike2;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:str):bat[:bit] ",
"BATPCREnotilike2;", "" ]
-[ "batalgebra", "not_ilike", "pattern batalgebra.not_ilike(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCREnotilike2;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:bat[:str], X_2:str):bat[:bit] ",
"BATPCREnotilike;", "" ]
-[ "batalgebra", "not_ilike", "pattern
batalgebra.not_ilike(X_0:bat[:str], X_1:str, X_2:str):bat[:bit] ",
"BATPCREnotilike;", "" ]
-[ "batalgebra", "not_ilike", "pattern batalgebra.not_ilike(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCREnotilike;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:bat[:str]):bat[:bit] ",
"BATPCREnotlike2;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:str):bat[:bit] ",
"BATPCREnotlike2;", "" ]
-[ "batalgebra", "not_like", "pattern batalgebra.not_like(X_0:str,
X_1:bat[:str]):bat[:bit] ", "BATPCREnotlike2;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:bat[:str], X_2:str):bat[:bit] ",
"BATPCREnotlike;", "" ]
-[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:str, X_2:str):bat[:bit] ",
"BATPCREnotlike;", "" ]
-[ "batalgebra", "not_like", "pattern batalgebra.not_like(X_0:str,
X_1:bat[:str], X_2:str):bat[:bit] ", "BATPCREnotlike;", "" ]
+[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:bat[:str], X_2:str, X_3:bit):bat[:bit] ", "BATPCRElike;", "" ]
+[ "batalgebra", "like", "pattern batalgebra.like(X_0:bat[:str],
X_1:str, X_2:str, X_3:bit):bat[:bit] ", "BATPCRElike;", "" ]
+[ "batalgebra", "like", "pattern batalgebra.like(X_0:str,
X_1:bat[:str], X_2:str, X_3:bit):bat[:bit] ", "BATPCRElike;", "" ]
+[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:bat[:str], X_2:str, X_3:bit):bat[:bit]
", "BATPCREnotlike;", "" ]
+[ "batalgebra", "not_like", "pattern
batalgebra.not_like(X_0:bat[:str], X_1:str, X_2:str, X_3:bit):bat[:bit] ",
"BATPCREnotlike;", "" ]
+[ "batalgebra", "not_like", "pattern batalgebra.not_like(X_0:str,
X_1:bat[:str], X_2:str, X_3:bit):bat[:bit] ", "BATPCREnotlike;", ""
]
[ "batblob", "nitems", "pattern
batblob.nitems(X_0:bat[:blob]):bat[:int] ", "BLOBnitems_bulk;", "" ]
[ "batblob", "nitems", "pattern batblob.nitems(X_0:bat[:blob],
X_1:bat[:oid]):bat[:int] ", "BLOBnitems_bulk;", "" ]
[ "batcalc", "!=", "pattern batcalc.!=(X_0:any_1,
X_1:bat[:any_1]):bat[:bit] ", "CMDbatNE;", "" ]
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
@@ -1044,10 +1044,6 @@ const char *hashRef;
const char *hgeRef;
const char *identityRef;
const char *ifthenelseRef;
-const char *ilikeRef;
-const char *ilikejoinRef;
-const char *ilikeselectRef;
-const char *ilikeuselectRef;
const char *importColumnRef;
void initHeartbeat(void);
void initNamespace(void);
@@ -1189,7 +1185,6 @@ int newTypeVariable(MalBlkPtr mb, malTyp
int newVariable(MalBlkPtr mb, const char *name, size_t len, malType type);
const char *nextRef;
const char *notRef;
-const char *not_ilikeRef;
const char *not_likeRef;
const char *not_uniqueRef;
const char *nth_valueRef;
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -220,6 +220,8 @@ insert_string_bat(BAT *b, BAT *n, struct
memset(b->tvheap->base, 0,
GDK_STRHASHSIZE);
}
+ /* make sure b is wide enough */
+ v = b->tvheap->free;
}
}
} else if (b->tvheap != n->tvheap &&
diff --git a/monetdb5/modules/mal/pcre.c b/monetdb5/modules/mal/pcre.c
--- a/monetdb5/modules/mal/pcre.c
+++ b/monetdb5/modules/mal/pcre.c
@@ -1327,7 +1327,7 @@ choose_like_path(char **ppat, bool *use_
}
static str
-PCRElike4(bit *ret, const str *s, const str *pat, const str *esc, const bit
*isens)
+PCRElike_imp(bit *ret, const str *s, const str *pat, const str *esc, const bit
*isens)
{
str res = MAL_SUCCEED;
char *ppat = NULL;
@@ -1362,77 +1362,18 @@ PCRElike4(bit *ret, const str *s, const
}
static str
-PCRElike3(bit *ret, const str *s, const str *pat, const str *esc)
+PCRElike(bit *ret, const str *s, const str *pat, const str *esc, const bit
*isens)
{
- bit no = FALSE;
-
- return PCRElike4(ret, s, pat, esc, &no);
+ return PCRElike_imp(ret, s, pat, esc, isens);
}
static str
-PCRElike2(bit *ret, const str *s, const str *pat)
-{
- char *esc = "";
-
- return PCRElike3(ret, s, pat, &esc);
-}
-
-static str
-PCREnotlike3(bit *ret, const str *s, const str *pat, const str *esc)
-{
- str tmp;
- bit r;
-
- rethrow("str.not_like", tmp, PCRElike3(&r, s, pat, esc));
- *ret = r==bit_nil?bit_nil:!r;
- return MAL_SUCCEED;
-}
-
-static str
-PCREnotlike2(bit *ret, const str *s, const str *pat)
+PCREnotlike(bit *ret, const str *s, const str *pat, const str *esc, const bit
*isens)
{
str tmp;
bit r;
- rethrow("str.not_like", tmp, PCRElike2(&r, s, pat));
- *ret = r==bit_nil?bit_nil:!r;
- return MAL_SUCCEED;
-}
-
-static str
-PCREilike3(bit *ret, const str *s, const str *pat, const str *esc)
-{
- bit yes = TRUE;
-
- return PCRElike4(ret, s, pat, esc, &yes);
-}
-
-static str
-PCREilike2(bit *ret, const str *s, const str *pat)
-{
- char *esc = "";
-
- return PCREilike3(ret, s, pat, &esc);
-}
-
-static str
-PCREnotilike3(bit *ret, const str *s, const str *pat, const str *esc)
-{
- str tmp;
- bit r;
-
- rethrow("str.not_ilike", tmp, PCREilike3(&r, s, pat, esc));
- *ret = r==bit_nil?bit_nil:!r;
- return MAL_SUCCEED;
-}
-
-static str
-PCREnotilike2(bit *ret, const str *s, const str *pat)
-{
- str tmp;
- bit r;
-
- rethrow("str.not_ilike", tmp, PCREilike2(&r, s, pat));
+ rethrow("str.not_like", tmp, PCRElike(&r, s, pat, esc, isens));
*ret = r==bit_nil?bit_nil:!r;
return MAL_SUCCEED;
}
@@ -1623,7 +1564,7 @@ pcre_clean(
}
static str
-BATPCRElike3(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, const
str *esc, const bit *isens, const bit *not)
+BATPCRElike_imp(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, const
str *esc, const bit *isens, const bit *not)
{
str msg = MAL_SUCCEED, input = NULL, pat = NULL;
BAT *b = NULL, *pbn = NULL, *bn = NULL;
@@ -1757,72 +1698,20 @@ static str
BATPCRElike(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
const str *esc = getArgReference_str(stk, pci, 3);
+ const bit *ci = getArgReference_bit(stk, pci, 4);
bit no = FALSE;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list