Changeset: 8661028b30ef for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8661028b30ef
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        monetdb5/modules/atoms/blob.c
        monetdb5/modules/atoms/mtime.c
Branch: default
Log Message:

Compilation fixes and approved output


diffs (truncated from 306 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
@@ -64,7 +64,7 @@ stdout of test 'MAL-signatures` in direc
 % .%1, .%1,    .%1,    .%1,    .%1 # table_name
 % module,      function,       signature,      address,        comment # name
 % clob,        clob,   clob,   clob,   clob # type
-% 12,  28,     364,    39,     874 # length
+% 12,  28,     364,    42,     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",     "pattern aggr.anyequal(l:any_1, r:any_1):bit ", 
"CMDvarEQ;",    ""      ]
 [ "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" ]
@@ -718,6 +718,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batalgebra",        "not_ilike",    "command 
batalgebra.not_ilike(s:bat[:str], pat:str, esc:str):bat[:bit] ",       
"BATPCREnotilike;",     ""      ]
 [ "batalgebra",        "not_like",     "command 
batalgebra.not_like(s:bat[:str], pat:str):bat[:bit] ", "BATPCREnotlike2;",     
""      ]
 [ "batalgebra",        "not_like",     "command 
batalgebra.not_like(s:bat[:str], pat:str, esc:str):bat[:bit] ",        
"BATPCREnotlike;",      ""      ]
+[ "batblob",   "nitems",       "command batblob.nitems(b:bat[:blob]):bat[:int] 
",      "BLOBnitems_bulk;",     ""      ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], 
b2:bat[:any_1]):bat[:bit] ",        "CMDbatNE;",    "Return B1 != B2"       ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
nil_matches:bit):bat[:bit] ",       "CMDbatNE;",    "Return B1 != B2"       ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
r:bat[:bit]):bat[:bit] ",   "CMDbatNE;",    "Return B1 != B2"       ]
@@ -8132,12 +8133,16 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "cmp",  "pattern batcalc.cmp(v:str, b:bat[:str], 
r:bat[:bit]):bat[:bte] ",      "CMDbatCMP;",   "Return -1/0/1 if V </==/> B"   ]
 [ "batcalc",   "cmp",  "pattern batcalc.cmp(v:str, b:bat[:str], 
s:bat[:oid]):bat[:bte] ",      "CMDbatCMP;",   "Return -1/0/1 if V </==/> B 
with candidates list"      ]
 [ "batcalc",   "cmp",  "pattern batcalc.cmp(v:str, b:bat[:str], s:bat[:oid], 
r:bat[:bit]):bat[:bte] ", "CMDbatCMP;",   "Return -1/0/1 if V </==/> B with 
candidates list"      ]
+[ "batcalc",   "date", "command batcalc.date(d:bat[:date]):bat[:date] ",       
"MTIMEdate_date_bulk;", ""      ]
+[ "batcalc",   "date", "command batcalc.date(s:bat[:str]):bat[:date] ",        
"MTIMEdate_fromstr_bulk;",      ""      ]
 [ "batcalc",   "date", "command batcalc.date(t:bat[:timestamp]):bat[:date] ",  
"MTIMEtimestamp_extract_date_bulk;",    ""      ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:oid]):bat[:date] ",        
"batnil_2_date;",       "cast to date"  ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:oid], 
r:bat[:bit]):bat[:date] ",   "batnil_ce_2_date;",    "cast to date"  ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:str]):bat[:date] ",        
"batstr_2_date;",       "cast to date"  ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:str], 
r:bat[:bit]):bat[:date] ",   "batstr_ce_2_date;",    "cast to date"  ]
+[ "batcalc",   "daytime",      "command 
batcalc.daytime(d:bat[:daytime]):bat[:daytime] ",      
"MTIMEdaytime_daytime_bulk;",   ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(s:bat[:lng]):bat[:daytime] ",  
"MTIMEdaytime_fromseconds_bulk;",       ""      ]
+[ "batcalc",   "daytime",      "command 
batcalc.daytime(s:bat[:str]):bat[:daytime] ",  "MTIMEdaytime_fromstr_bulk;",   
""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(t:bat[:timestamp]):bat[:daytime] ",    
"MTIMEtimestamp_extract_daytime_bulk;", ""      ]
 [ "batcalc",   "daytime",      "command batcalc.daytime(v:bat[:daytime], 
digits:int):bat[:daytime] ",  "batdaytime_2time_daytime;",    "cast daytime to 
daytime and check for overflow"        ]
 [ "batcalc",   "daytime",      "command batcalc.daytime(v:bat[:oid], 
digits:int):bat[:daytime] ",      "batnil_2time_daytime;",        "cast to 
daytime and check for overflow"        ]
@@ -10932,6 +10937,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(d:bat[:date]):bat[:timestamp] ",     
"MTIMEtimestamp_fromdate_bulk;",        ""      ]
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(msecs:bat[:lng]):bat[:timestamp] ",  
"MTIMEtimestamp_frommsec_bulk;",        ""      ]
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(secs:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
+[ "batcalc",   "timestamp",    "command 
batcalc.timestamp(s:bat[:str]):bat[:timestamp] ",      
"MTIMEtimestamp_fromstr_bulk;", ""      ]
+[ "batcalc",   "timestamp",    "command 
batcalc.timestamp(t:bat[:timestamp]):bat[:timestamp] ",        
"MTIMEtimestamp_timestamp_bulk;",       ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(v:bat[:oid], 
digits:int):bat[:timestamp] ",  "batnil_2time_timestamp;",      "cast to 
timestamp and check for overflow"      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(v:bat[:oid], 
digits:int, r:bat[:BAT]):bat[:timestamp] ",     "batnil_ce_2time_timestamp;",   
"cast to timestamp and check for overflow"      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(v:bat[:str], 
digits:int):bat[:timestamp] ",  "batstr_2time_timestamp;",      "cast to 
timestamp and check for overflow"      ]
@@ -11309,32 +11316,86 @@ stdout of test 'MAL-signatures` in direc
 [ "batmmath",  "tanh", "pattern batmmath.tanh(x:bat[:flt], 
s:bat[:oid]):bat[:flt] ",   "CMDscience_bat_tanh;", ""      ]
 [ "batmmath",  "tanh", "pattern batmmath.tanh(x:bat[:flt], s:bat[:oid], 
r:bat[:bit]):bat[:flt] ",      "CMDscience_bat_tanh;", ""      ]
 [ "batmtime",  "addmonths",    "command batmtime.addmonths(value:bat[:date], 
months:bat[:int]):bat[:date] ",   "MTIMEdate_addmonths_bulk;",    ""      ]
+[ "batmtime",  "addmonths",    "command batmtime.addmonths(value:date, 
months:bat[:int]):bat[:date] ", "MTIMEdate_addmonths_bulk_p1;", ""      ]
+[ "batmtime",  "addmonths",    "command batmtime.addmonths(value:bat[:date], 
months:int):bat[:date] ", "MTIMEdate_addmonths_bulk_p2;", ""      ]
 [ "batmtime",  "century",      "command 
batmtime.century(d:bat[:date]):bat[:int] ",    
"MTIMEdate_extract_century_bulk;",      ""      ]
+[ "batmtime",  "century",      "command 
batmtime.century(t:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_century_bulk;", ""      ]
 [ "batmtime",  "date_add_msec_interval",       "command 
batmtime.date_add_msec_interval(t:bat[:date], ms:bat[:lng]):bat[:date] ",      
"MTIMEdate_add_msec_interval_bulk;",    ""      ]
-[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(value:bat[:date], months:bat[:int]):bat[:date] 
",     "MTIMEdate_submonths_bulk;",    ""      ]
+[ "batmtime",  "date_add_msec_interval",       "command 
batmtime.date_add_msec_interval(t:date, ms:bat[:lng]):bat[:date] ",    
"MTIMEdate_add_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "date_add_msec_interval",       "command 
batmtime.date_add_msec_interval(t:bat[:date], ms:lng):bat[:date] ",    
"MTIMEdate_add_msec_interval_bulk_p2;", ""      ]
+[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(t:bat[:date], months:bat[:int]):bat[:date] ", 
"MTIMEdate_submonths_bulk;",    ""      ]
+[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(t:date, months:bat[:int]):bat[:date] ",       
"MTIMEdate_submonths_bulk_p1;", ""      ]
+[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(t:bat[:date], months:int):bat[:date] ",       
"MTIMEdate_submonths_bulk_p2;", ""      ]
 [ "batmtime",  "date_sub_msec_interval",       "command 
batmtime.date_sub_msec_interval(t:bat[:date], ms:bat[:lng]):bat[:date] ",      
"MTIMEdate_sub_msec_interval_bulk;",    ""      ]
+[ "batmtime",  "date_sub_msec_interval",       "command 
batmtime.date_sub_msec_interval(t:date, ms:bat[:lng]):bat[:date] ",    
"MTIMEdate_sub_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "date_sub_msec_interval",       "command 
batmtime.date_sub_msec_interval(t:bat[:date], ms:lng):bat[:date] ",    
"MTIMEdate_sub_msec_interval_bulk_p2;", ""      ]
+[ "batmtime",  "date_to_str",  "command batmtime.date_to_str(d:bat[:str], 
format:bat[:str]):bat[:str] ",       "MTIMEdate_to_str_bulk;",       ""      ]
+[ "batmtime",  "date_to_str",  "command batmtime.date_to_str(d:date, 
format:bat[:str]):bat[:str] ",    "MTIMEdate_to_str_bulk_p1;",    ""      ]
+[ "batmtime",  "date_to_str",  "command batmtime.date_to_str(d:bat[:date], 
format:str):bat[:str] ",    "MTIMEdate_to_str_bulk_p2;",    ""      ]
 [ "batmtime",  "day",  "command batmtime.day(d:bat[:date]):bat[:int] ",        
"MTIMEdate_extract_day_bulk;",  ""      ]
+[ "batmtime",  "day",  "command batmtime.day(msecs:bat[:lng]):bat[:lng] ",     
"MTIMEsql_day_bulk;",   ""      ]
+[ "batmtime",  "day",  "command batmtime.day(t:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_day_bulk;",     ""      ]
 [ "batmtime",  "dayofweek",    "command 
batmtime.dayofweek(d:bat[:date]):bat[:int] ",  
"MTIMEdate_extract_dayofweek_bulk;",    ""      ]
 [ "batmtime",  "dayofyear",    "command 
batmtime.dayofyear(d:bat[:date]):bat[:int] ",  
"MTIMEdate_extract_dayofyear_bulk;",    ""      ]
 [ "batmtime",  "decade",       "command 
batmtime.decade(d:bat[:date]):bat[:int] ",     
"MTIMEdate_extract_decade_bulk;",       ""      ]
+[ "batmtime",  "decade",       "command 
batmtime.decade(t:bat[:timestamp]):bat[:int] ",        
"MTIMEtimestamp_decade_bulk;",  ""      ]
 [ "batmtime",  "diff", "command batmtime.diff(b1:bat[:date], 
b2:bat[:date]):bat[:int] ",       "MTIMEdate_diff_bulk;", "Difference of two 
sets of date."       ]
-[ "batmtime",  "diff", "command batmtime.diff(val1:bat[:date], 
val2:bat[:date]):bat[:int] ",   "MTIMEdate_diff_bulk;", "returns the number of 
days\n\tbetween 'val1' and 'val2'."      ]
 [ "batmtime",  "diff", "command batmtime.diff(b1:bat[:daytime], 
b2:bat[:daytime]):bat[:lng] ", "MTIMEdaytime_diff_msec_bulk;", "Difference of 
two sets of daytime."    ]
 [ "batmtime",  "diff", "command batmtime.diff(b1:bat[:timestamp], 
b2:bat[:timestamp]):bat[:lng] ",     "MTIMEtimestamp_diff_msec_bulk;",       
"Difference of two sets of timestamp."  ]
+[ "batmtime",  "epoch",        "command 
batmtime.epoch(t:bat[:timestamp]):bat[:int] ", 
"MTIMEseconds_since_epoch_bulk;",       ""      ]
+[ "batmtime",  "epoch",        "command 
batmtime.epoch(t:bat[:lng]):bat[:timestamp] ", "MTIMEtimestamp_frommsec_bulk;", 
       ""      ]
+[ "batmtime",  "epoch",        "command 
batmtime.epoch(t:bat[:int]):bat[:timestamp] ", 
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(d:bat[:daytime]):bat[:int] ",   
"MTIMEdaytime_extract_hours_bulk;",     ""      ]
+[ "batmtime",  "hours",        "command 
batmtime.hours(msecs:bat[:lng]):bat[:int] ",   "MTIMEsql_hours_bulk;", ""      ]
+[ "batmtime",  "hours",        "command 
batmtime.hours(t:bat[:timestamp]):bat[:int] ", "MTIMEtimestamp_hours_bulk;",   
""      ]
 [ "batmtime",  "minutes",      "command 
batmtime.minutes(d:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_minutes_bulk;",   ""      ]
+[ "batmtime",  "minutes",      "command 
batmtime.minutes(msecs:bat[:lng]):bat[:int] ", "MTIMEsql_minutes_bulk;",       
""      ]
+[ "batmtime",  "minutes",      "command 
batmtime.minutes(t:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_minutes_bulk;", ""      ]
 [ "batmtime",  "month",        "command batmtime.month(d:bat[:date]):bat[:int] 
",      "MTIMEdate_extract_month_bulk;",        ""      ]
+[ "batmtime",  "month",        "command 
batmtime.month(months:bat[:int]):bat[:int] ",  "MTIMEsql_month_bulk;", ""      ]
+[ "batmtime",  "month",        "command 
batmtime.month(t:bat[:timestamp]):bat[:int] ", "MTIMEtimestamp_month_bulk;",   
""      ]
 [ "batmtime",  "quarter",      "command 
batmtime.quarter(d:bat[:date]):bat[:int] ",    
"MTIMEdate_extract_quarter_bulk;",      ""      ]
+[ "batmtime",  "quarter",      "command 
batmtime.quarter(t:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_quarter_bulk;", ""      ]
+[ "batmtime",  "seconds",      "command 
batmtime.seconds(msecs:bat[:lng]):bat[:int] ", "MTIMEsql_seconds_bulk;",       
""      ]
 [ "batmtime",  "sql_seconds",  "command 
batmtime.sql_seconds(d:bat[:daytime]):bat[:int] ",     
"MTIMEdaytime_extract_sql_seconds_bulk;",       ""      ]
 [ "batmtime",  "sql_seconds",  "command 
batmtime.sql_seconds(d:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_sql_seconds_bulk;",     ""      ]
+[ "batmtime",  "str_to_date",  "command batmtime.str_to_date(s:bat[:str], 
format:bat[:str]):bat[:date] ",      "MTIMEstr_to_date_bulk;",       ""      ]
+[ "batmtime",  "str_to_date",  "command batmtime.str_to_date(s:str, 
format:bat[:str]):bat[:date] ",    "MTIMEstr_to_date_bulk_p1;",    ""      ]
+[ "batmtime",  "str_to_date",  "command batmtime.str_to_date(s:bat[:str], 
format:str):bat[:date] ",    "MTIMEstr_to_date_bulk_p2;",    ""      ]
+[ "batmtime",  "str_to_time",  "command batmtime.str_to_time(s:bat[:str], 
format:bat[:str]):bat[:daytime] ",   "MTIMEstr_to_time_bulk;",       ""      ]
+[ "batmtime",  "str_to_time",  "command batmtime.str_to_time(s:str, 
format:bat[:str]):bat[:daytime] ", "MTIMEstr_to_time_bulk_p1;",    ""      ]
+[ "batmtime",  "str_to_time",  "command batmtime.str_to_time(s:bat[:str], 
format:str):bat[:daytime] ", "MTIMEstr_to_time_bulk_p2;",    ""      ]
+[ "batmtime",  "str_to_timestamp",     "command 
batmtime.str_to_timestamp(d:bat[:str], format:bat[:str]):bat[:timestamp] ",    
"MTIMEstr_to_timestamp_bulk;",  ""      ]
+[ "batmtime",  "str_to_timestamp",     "command 
batmtime.str_to_timestamp(s:str, format:bat[:str]):bat[:timestamp] ",  
"MTIMEstr_to_timestamp_bulk_p1;",       ""      ]
+[ "batmtime",  "str_to_timestamp",     "command 
batmtime.str_to_timestamp(s:bat[:str], format:str):bat[:timestamp] ",  
"MTIMEstr_to_timestamp_bulk_p2;",       ""      ]
 [ "batmtime",  "time_add_msec_interval",       "command 
batmtime.time_add_msec_interval(t:bat[:daytime], ms:bat[:lng]):bat[:daytime] ", 
       "MTIMEtime_add_msec_interval_bulk;",    ""      ]
+[ "batmtime",  "time_add_msec_interval",       "command 
batmtime.time_add_msec_interval(t:daytime, ms:bat[:lng]):bat[:daytime] ",      
"MTIMEtime_add_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "time_add_msec_interval",       "command 
batmtime.time_add_msec_interval(t:bat[:daytime], ms:lng):bat[:daytime] ",      
"MTIMEtime_add_msec_interval_bulk_p2;", ""      ]
 [ "batmtime",  "time_sub_msec_interval",       "command 
batmtime.time_sub_msec_interval(t:bat[:daytime], ms:bat[:lng]):bat[:daytime] ", 
       "MTIMEtime_sub_msec_interval_bulk;",    ""      ]
+[ "batmtime",  "time_sub_msec_interval",       "command 
batmtime.time_sub_msec_interval(t:daytime, ms:bat[:lng]):bat[:daytime] ",      
"MTIMEtime_sub_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "time_sub_msec_interval",       "command 
batmtime.time_sub_msec_interval(t:bat[:daytime], ms:lng):bat[:daytime] ",      
"MTIMEtime_sub_msec_interval_bulk_p2;", ""      ]
+[ "batmtime",  "time_to_str",  "command batmtime.time_to_str(d:bat[:daytime], 
format:bat[:str]):bat[:str] ",   "MTIMEtime_to_str_bulk;",       ""      ]
+[ "batmtime",  "time_to_str",  "command batmtime.time_to_str(d:daytime, 
format:bat[:str]):bat[:str] ", "MTIMEtime_to_str_bulk_p1;",    ""      ]
+[ "batmtime",  "time_to_str",  "command batmtime.time_to_str(d:bat[:daytime], 
format:str):bat[:str] ", "MTIMEtime_to_str_bulk_p2;",    ""      ]
 [ "batmtime",  "timestamp_add_month_interval", "command 
batmtime.timestamp_add_month_interval(t:bat[:timestamp], 
s:bat[:int]):bat[:timestamp] ",       
"MTIMEtimestamp_add_month_interval_bulk;",      ""      ]
+[ "batmtime",  "timestamp_add_month_interval", "command 
batmtime.timestamp_add_month_interval(t:timestamp, s:bat[:int]):bat[:timestamp] 
",     "MTIMEtimestamp_add_month_interval_bulk_p1;",   ""      ]
+[ "batmtime",  "timestamp_add_month_interval", "command 
batmtime.timestamp_add_month_interval(t:bat[:timestamp], s:int):bat[:timestamp] 
",     "MTIMEtimestamp_add_month_interval_bulk_p2;",   ""      ]
 [ "batmtime",  "timestamp_add_msec_interval",  "command 
batmtime.timestamp_add_msec_interval(t:bat[:timestamp], 
ms:bat[:lng]):bat[:timestamp] ",       
"MTIMEtimestamp_add_msec_interval_bulk;",       ""      ]
+[ "batmtime",  "timestamp_add_msec_interval",  "command 
batmtime.timestamp_add_msec_interval(t:timestamp, ms:bat[:lng]):bat[:timestamp] 
",     "MTIMEtimestamp_add_msec_interval_bulk_p1;",    ""      ]
+[ "batmtime",  "timestamp_add_msec_interval",  "command 
batmtime.timestamp_add_msec_interval(t:bat[:timestamp], ms:lng):bat[:timestamp] 
",     "MTIMEtimestamp_add_msec_interval_bulk_p2;",    ""      ]
 [ "batmtime",  "timestamp_sub_month_interval", "command 
batmtime.timestamp_sub_month_interval(t:bat[:timestamp], 
s:bat[:int]):bat[:timestamp] ",       
"MTIMEtimestamp_sub_month_interval_bulk;",      ""      ]
+[ "batmtime",  "timestamp_sub_month_interval", "command 
batmtime.timestamp_sub_month_interval(t:timestamp, s:bat[:int]):bat[:timestamp] 
",     "MTIMEtimestamp_sub_month_interval_bulk_p1;",   ""      ]
+[ "batmtime",  "timestamp_sub_month_interval", "command 
batmtime.timestamp_sub_month_interval(t:bat[:timestamp], s:int):bat[:timestamp] 
",     "MTIMEtimestamp_sub_month_interval_bulk_p2;",   ""      ]
 [ "batmtime",  "timestamp_sub_msec_interval",  "command 
batmtime.timestamp_sub_msec_interval(t:bat[:timestamp], 
ms:bat[:lng]):bat[:timestamp] ",       
"MTIMEtimestamp_sub_msec_interval_bulk;",       ""      ]
+[ "batmtime",  "timestamp_sub_msec_interval",  "command 
batmtime.timestamp_sub_msec_interval(t:timestamp, ms:bat[:lng]):bat[:timestamp] 
",     "MTIMEtimestamp_sub_msec_interval_bulk_p1;",    ""      ]
+[ "batmtime",  "timestamp_sub_msec_interval",  "command 
batmtime.timestamp_sub_msec_interval(t:bat[:timestamp], ms:lng):bat[:timestamp] 
",     "MTIMEtimestamp_sub_msec_interval_bulk_p2;",    ""      ]
+[ "batmtime",  "timestamp_to_str",     "command 
batmtime.timestamp_to_str(d:bat[:timestamp], format:bat[:str]):bat[:str] ",    
"MTIMEtimestamp_to_str_bulk;",  ""      ]
+[ "batmtime",  "timestamp_to_str",     "command 
batmtime.timestamp_to_str(d:timestamp, format:bat[:str]):bat[:str] ",  
"MTIMEtimestamp_to_str_bulk_p1;",       ""      ]
+[ "batmtime",  "timestamp_to_str",     "command 
batmtime.timestamp_to_str(d:bat[:timestamp], format:str):bat[:str] ",  
"MTIMEtimestamp_to_str_bulk_p2;",       ""      ]
 [ "batmtime",  "weekofyear",   "command 
batmtime.weekofyear(d:bat[:date]):bat[:int] ", 
"MTIMEdate_extract_weekofyear_bulk;",   ""      ]
 [ "batmtime",  "year", "command batmtime.year(d:bat[:date]):bat[:int] ",       
"MTIMEdate_extract_year_bulk;", ""      ]
+[ "batmtime",  "year", "command batmtime.year(months:bat[:int]):bat[:int] ",   
"MTIMEsql_year_bulk;",  ""      ]
+[ "batmtime",  "year", "command batmtime.year(t:bat[:timestamp]):bat[:int] ",  
"MTIMEtimestamp_year_bulk;",    ""      ]
 [ "batpcre",   "replace",      "command batpcre.replace(orig:bat[:str], 
pat:str, repl:str, flag:str):bat[:str] ",      "PCREreplace_bat_wrap;",        
""      ]
 [ "batpcre",   "replace_first",        "command 
batpcre.replace_first(orig:bat[:str], pat:str, repl:str, flag:str):bat[:str] ", 
       "PCREreplacefirst_bat_wrap;",   ""      ]
 [ "batpyapi3", "eval", "unsafe pattern batpyapi3.eval(fptr:ptr, expr:str, 
arg:any...):any... ",        "PYAPI3PyAPIevalStd;",  "Execute a simple Python 
script value"  ]
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
@@ -68,7 +68,7 @@ stdout of test 'MAL-signatures` in direc
 % .%1, .%1,    .%1,    .%1,    .%1 # table_name
 % module,      function,       signature,      address,        comment # name
 % clob,        clob,   clob,   clob,   clob # type
-% 12,  28,     364,    39,     874 # length
+% 12,  28,     364,    42,     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",     "pattern aggr.anyequal(l:any_1, r:any_1):bit ", 
"CMDvarEQ;",    ""      ]
 [ "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" ]
@@ -829,6 +829,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batalgebra",        "not_ilike",    "command 
batalgebra.not_ilike(s:bat[:str], pat:str, esc:str):bat[:bit] ",       
"BATPCREnotilike;",     ""      ]
 [ "batalgebra",        "not_like",     "command 
batalgebra.not_like(s:bat[:str], pat:str):bat[:bit] ", "BATPCREnotlike2;",     
""      ]
 [ "batalgebra",        "not_like",     "command 
batalgebra.not_like(s:bat[:str], pat:str, esc:str):bat[:bit] ",        
"BATPCREnotlike;",      ""      ]
+[ "batblob",   "nitems",       "command batblob.nitems(b:bat[:blob]):bat[:int] 
",      "BLOBnitems_bulk;",     ""      ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], 
b2:bat[:any_1]):bat[:bit] ",        "CMDbatNE;",    "Return B1 != B2"       ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
nil_matches:bit):bat[:bit] ",       "CMDbatNE;",    "Return B1 != B2"       ]
 [ "batcalc",   "!=",   "pattern batcalc.!=(b1:bat[:any_1], b2:bat[:any_1], 
r:bat[:bit]):bat[:bit] ",   "CMDbatNE;",    "Return B1 != B2"       ]
@@ -11603,12 +11604,16 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "cmp",  "pattern batcalc.cmp(v:str, b:bat[:str], 
r:bat[:bit]):bat[:bte] ",      "CMDbatCMP;",   "Return -1/0/1 if V </==/> B"   ]
 [ "batcalc",   "cmp",  "pattern batcalc.cmp(v:str, b:bat[:str], 
s:bat[:oid]):bat[:bte] ",      "CMDbatCMP;",   "Return -1/0/1 if V </==/> B 
with candidates list"      ]
 [ "batcalc",   "cmp",  "pattern batcalc.cmp(v:str, b:bat[:str], s:bat[:oid], 
r:bat[:bit]):bat[:bte] ", "CMDbatCMP;",   "Return -1/0/1 if V </==/> B with 
candidates list"      ]
+[ "batcalc",   "date", "command batcalc.date(d:bat[:date]):bat[:date] ",       
"MTIMEdate_date_bulk;", ""      ]
+[ "batcalc",   "date", "command batcalc.date(s:bat[:str]):bat[:date] ",        
"MTIMEdate_fromstr_bulk;",      ""      ]
 [ "batcalc",   "date", "command batcalc.date(t:bat[:timestamp]):bat[:date] ",  
"MTIMEtimestamp_extract_date_bulk;",    ""      ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:oid]):bat[:date] ",        
"batnil_2_date;",       "cast to date"  ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:oid], 
r:bat[:bit]):bat[:date] ",   "batnil_ce_2_date;",    "cast to date"  ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:str]):bat[:date] ",        
"batstr_2_date;",       "cast to date"  ]
 [ "batcalc",   "date", "command batcalc.date(v:bat[:str], 
r:bat[:bit]):bat[:date] ",   "batstr_ce_2_date;",    "cast to date"  ]
+[ "batcalc",   "daytime",      "command 
batcalc.daytime(d:bat[:daytime]):bat[:daytime] ",      
"MTIMEdaytime_daytime_bulk;",   ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(s:bat[:lng]):bat[:daytime] ",  
"MTIMEdaytime_fromseconds_bulk;",       ""      ]
+[ "batcalc",   "daytime",      "command 
batcalc.daytime(s:bat[:str]):bat[:daytime] ",  "MTIMEdaytime_fromstr_bulk;",   
""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(t:bat[:timestamp]):bat[:daytime] ",    
"MTIMEtimestamp_extract_daytime_bulk;", ""      ]
 [ "batcalc",   "daytime",      "command batcalc.daytime(v:bat[:daytime], 
digits:int):bat[:daytime] ",  "batdaytime_2time_daytime;",    "cast daytime to 
daytime and check for overflow"        ]
 [ "batcalc",   "daytime",      "command batcalc.daytime(v:bat[:oid], 
digits:int):bat[:daytime] ",      "batnil_2time_daytime;",        "cast to 
daytime and check for overflow"        ]
@@ -15710,6 +15715,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(d:bat[:date]):bat[:timestamp] ",     
"MTIMEtimestamp_fromdate_bulk;",        ""      ]
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(msecs:bat[:lng]):bat[:timestamp] ",  
"MTIMEtimestamp_frommsec_bulk;",        ""      ]
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(secs:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
+[ "batcalc",   "timestamp",    "command 
batcalc.timestamp(s:bat[:str]):bat[:timestamp] ",      
"MTIMEtimestamp_fromstr_bulk;", ""      ]
+[ "batcalc",   "timestamp",    "command 
batcalc.timestamp(t:bat[:timestamp]):bat[:timestamp] ",        
"MTIMEtimestamp_timestamp_bulk;",       ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(v:bat[:oid], 
digits:int):bat[:timestamp] ",  "batnil_2time_timestamp;",      "cast to 
timestamp and check for overflow"      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(v:bat[:oid], 
digits:int, r:bat[:BAT]):bat[:timestamp] ",     "batnil_ce_2time_timestamp;",   
"cast to timestamp and check for overflow"      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(v:bat[:str], 
digits:int):bat[:timestamp] ",  "batstr_2time_timestamp;",      "cast to 
timestamp and check for overflow"      ]
@@ -16099,32 +16106,86 @@ stdout of test 'MAL-signatures` in direc
 [ "batmmath",  "tanh", "pattern batmmath.tanh(x:bat[:flt], 
s:bat[:oid]):bat[:flt] ",   "CMDscience_bat_tanh;", ""      ]
 [ "batmmath",  "tanh", "pattern batmmath.tanh(x:bat[:flt], s:bat[:oid], 
r:bat[:bit]):bat[:flt] ",      "CMDscience_bat_tanh;", ""      ]
 [ "batmtime",  "addmonths",    "command batmtime.addmonths(value:bat[:date], 
months:bat[:int]):bat[:date] ",   "MTIMEdate_addmonths_bulk;",    ""      ]
+[ "batmtime",  "addmonths",    "command batmtime.addmonths(value:date, 
months:bat[:int]):bat[:date] ", "MTIMEdate_addmonths_bulk_p1;", ""      ]
+[ "batmtime",  "addmonths",    "command batmtime.addmonths(value:bat[:date], 
months:int):bat[:date] ", "MTIMEdate_addmonths_bulk_p2;", ""      ]
 [ "batmtime",  "century",      "command 
batmtime.century(d:bat[:date]):bat[:int] ",    
"MTIMEdate_extract_century_bulk;",      ""      ]
+[ "batmtime",  "century",      "command 
batmtime.century(t:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_century_bulk;", ""      ]
 [ "batmtime",  "date_add_msec_interval",       "command 
batmtime.date_add_msec_interval(t:bat[:date], ms:bat[:lng]):bat[:date] ",      
"MTIMEdate_add_msec_interval_bulk;",    ""      ]
-[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(value:bat[:date], months:bat[:int]):bat[:date] 
",     "MTIMEdate_submonths_bulk;",    ""      ]
+[ "batmtime",  "date_add_msec_interval",       "command 
batmtime.date_add_msec_interval(t:date, ms:bat[:lng]):bat[:date] ",    
"MTIMEdate_add_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "date_add_msec_interval",       "command 
batmtime.date_add_msec_interval(t:bat[:date], ms:lng):bat[:date] ",    
"MTIMEdate_add_msec_interval_bulk_p2;", ""      ]
+[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(t:bat[:date], months:bat[:int]):bat[:date] ", 
"MTIMEdate_submonths_bulk;",    ""      ]
+[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(t:date, months:bat[:int]):bat[:date] ",       
"MTIMEdate_submonths_bulk_p1;", ""      ]
+[ "batmtime",  "date_sub_month_interval",      "command 
batmtime.date_sub_month_interval(t:bat[:date], months:int):bat[:date] ",       
"MTIMEdate_submonths_bulk_p2;", ""      ]
 [ "batmtime",  "date_sub_msec_interval",       "command 
batmtime.date_sub_msec_interval(t:bat[:date], ms:bat[:lng]):bat[:date] ",      
"MTIMEdate_sub_msec_interval_bulk;",    ""      ]
+[ "batmtime",  "date_sub_msec_interval",       "command 
batmtime.date_sub_msec_interval(t:date, ms:bat[:lng]):bat[:date] ",    
"MTIMEdate_sub_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "date_sub_msec_interval",       "command 
batmtime.date_sub_msec_interval(t:bat[:date], ms:lng):bat[:date] ",    
"MTIMEdate_sub_msec_interval_bulk_p2;", ""      ]
+[ "batmtime",  "date_to_str",  "command batmtime.date_to_str(d:bat[:str], 
format:bat[:str]):bat[:str] ",       "MTIMEdate_to_str_bulk;",       ""      ]
+[ "batmtime",  "date_to_str",  "command batmtime.date_to_str(d:date, 
format:bat[:str]):bat[:str] ",    "MTIMEdate_to_str_bulk_p1;",    ""      ]
+[ "batmtime",  "date_to_str",  "command batmtime.date_to_str(d:bat[:date], 
format:str):bat[:str] ",    "MTIMEdate_to_str_bulk_p2;",    ""      ]
 [ "batmtime",  "day",  "command batmtime.day(d:bat[:date]):bat[:int] ",        
"MTIMEdate_extract_day_bulk;",  ""      ]
+[ "batmtime",  "day",  "command batmtime.day(msecs:bat[:lng]):bat[:lng] ",     
"MTIMEsql_day_bulk;",   ""      ]
+[ "batmtime",  "day",  "command batmtime.day(t:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_day_bulk;",     ""      ]
 [ "batmtime",  "dayofweek",    "command 
batmtime.dayofweek(d:bat[:date]):bat[:int] ",  
"MTIMEdate_extract_dayofweek_bulk;",    ""      ]
 [ "batmtime",  "dayofyear",    "command 
batmtime.dayofyear(d:bat[:date]):bat[:int] ",  
"MTIMEdate_extract_dayofyear_bulk;",    ""      ]
 [ "batmtime",  "decade",       "command 
batmtime.decade(d:bat[:date]):bat[:int] ",     
"MTIMEdate_extract_decade_bulk;",       ""      ]
+[ "batmtime",  "decade",       "command 
batmtime.decade(t:bat[:timestamp]):bat[:int] ",        
"MTIMEtimestamp_decade_bulk;",  ""      ]
 [ "batmtime",  "diff", "command batmtime.diff(b1:bat[:date], 
b2:bat[:date]):bat[:int] ",       "MTIMEdate_diff_bulk;", "Difference of two 
sets of date."       ]
-[ "batmtime",  "diff", "command batmtime.diff(val1:bat[:date], 
val2:bat[:date]):bat[:int] ",   "MTIMEdate_diff_bulk;", "returns the number of 
days\n\tbetween 'val1' and 'val2'."      ]
 [ "batmtime",  "diff", "command batmtime.diff(b1:bat[:daytime], 
b2:bat[:daytime]):bat[:lng] ", "MTIMEdaytime_diff_msec_bulk;", "Difference of 
two sets of daytime."    ]
 [ "batmtime",  "diff", "command batmtime.diff(b1:bat[:timestamp], 
b2:bat[:timestamp]):bat[:lng] ",     "MTIMEtimestamp_diff_msec_bulk;",       
"Difference of two sets of timestamp."  ]
+[ "batmtime",  "epoch",        "command 
batmtime.epoch(t:bat[:timestamp]):bat[:int] ", 
"MTIMEseconds_since_epoch_bulk;",       ""      ]
+[ "batmtime",  "epoch",        "command 
batmtime.epoch(t:bat[:lng]):bat[:timestamp] ", "MTIMEtimestamp_frommsec_bulk;", 
       ""      ]
+[ "batmtime",  "epoch",        "command 
batmtime.epoch(t:bat[:int]):bat[:timestamp] ", 
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
 [ "batmtime",  "hours",        "command 
batmtime.hours(d:bat[:daytime]):bat[:int] ",   
"MTIMEdaytime_extract_hours_bulk;",     ""      ]
+[ "batmtime",  "hours",        "command 
batmtime.hours(msecs:bat[:lng]):bat[:int] ",   "MTIMEsql_hours_bulk;", ""      ]
+[ "batmtime",  "hours",        "command 
batmtime.hours(t:bat[:timestamp]):bat[:int] ", "MTIMEtimestamp_hours_bulk;",   
""      ]
 [ "batmtime",  "minutes",      "command 
batmtime.minutes(d:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_minutes_bulk;",   ""      ]
+[ "batmtime",  "minutes",      "command 
batmtime.minutes(msecs:bat[:lng]):bat[:int] ", "MTIMEsql_minutes_bulk;",       
""      ]
+[ "batmtime",  "minutes",      "command 
batmtime.minutes(t:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_minutes_bulk;", ""      ]
 [ "batmtime",  "month",        "command batmtime.month(d:bat[:date]):bat[:int] 
",      "MTIMEdate_extract_month_bulk;",        ""      ]
+[ "batmtime",  "month",        "command 
batmtime.month(months:bat[:int]):bat[:int] ",  "MTIMEsql_month_bulk;", ""      ]
+[ "batmtime",  "month",        "command 
batmtime.month(t:bat[:timestamp]):bat[:int] ", "MTIMEtimestamp_month_bulk;",   
""      ]
 [ "batmtime",  "quarter",      "command 
batmtime.quarter(d:bat[:date]):bat[:int] ",    
"MTIMEdate_extract_quarter_bulk;",      ""      ]
+[ "batmtime",  "quarter",      "command 
batmtime.quarter(t:bat[:timestamp]):bat[:int] ",       
"MTIMEtimestamp_quarter_bulk;", ""      ]
+[ "batmtime",  "seconds",      "command 
batmtime.seconds(msecs:bat[:lng]):bat[:int] ", "MTIMEsql_seconds_bulk;",       
""      ]
 [ "batmtime",  "sql_seconds",  "command 
batmtime.sql_seconds(d:bat[:daytime]):bat[:int] ",     
"MTIMEdaytime_extract_sql_seconds_bulk;",       ""      ]
 [ "batmtime",  "sql_seconds",  "command 
batmtime.sql_seconds(d:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_sql_seconds_bulk;",     ""      ]
+[ "batmtime",  "str_to_date",  "command batmtime.str_to_date(s:bat[:str], 
format:bat[:str]):bat[:date] ",      "MTIMEstr_to_date_bulk;",       ""      ]
+[ "batmtime",  "str_to_date",  "command batmtime.str_to_date(s:str, 
format:bat[:str]):bat[:date] ",    "MTIMEstr_to_date_bulk_p1;",    ""      ]
+[ "batmtime",  "str_to_date",  "command batmtime.str_to_date(s:bat[:str], 
format:str):bat[:date] ",    "MTIMEstr_to_date_bulk_p2;",    ""      ]
+[ "batmtime",  "str_to_time",  "command batmtime.str_to_time(s:bat[:str], 
format:bat[:str]):bat[:daytime] ",   "MTIMEstr_to_time_bulk;",       ""      ]
+[ "batmtime",  "str_to_time",  "command batmtime.str_to_time(s:str, 
format:bat[:str]):bat[:daytime] ", "MTIMEstr_to_time_bulk_p1;",    ""      ]
+[ "batmtime",  "str_to_time",  "command batmtime.str_to_time(s:bat[:str], 
format:str):bat[:daytime] ", "MTIMEstr_to_time_bulk_p2;",    ""      ]
+[ "batmtime",  "str_to_timestamp",     "command 
batmtime.str_to_timestamp(d:bat[:str], format:bat[:str]):bat[:timestamp] ",    
"MTIMEstr_to_timestamp_bulk;",  ""      ]
+[ "batmtime",  "str_to_timestamp",     "command 
batmtime.str_to_timestamp(s:str, format:bat[:str]):bat[:timestamp] ",  
"MTIMEstr_to_timestamp_bulk_p1;",       ""      ]
+[ "batmtime",  "str_to_timestamp",     "command 
batmtime.str_to_timestamp(s:bat[:str], format:str):bat[:timestamp] ",  
"MTIMEstr_to_timestamp_bulk_p2;",       ""      ]
 [ "batmtime",  "time_add_msec_interval",       "command 
batmtime.time_add_msec_interval(t:bat[:daytime], ms:bat[:lng]):bat[:daytime] ", 
       "MTIMEtime_add_msec_interval_bulk;",    ""      ]
+[ "batmtime",  "time_add_msec_interval",       "command 
batmtime.time_add_msec_interval(t:daytime, ms:bat[:lng]):bat[:daytime] ",      
"MTIMEtime_add_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "time_add_msec_interval",       "command 
batmtime.time_add_msec_interval(t:bat[:daytime], ms:lng):bat[:daytime] ",      
"MTIMEtime_add_msec_interval_bulk_p2;", ""      ]
 [ "batmtime",  "time_sub_msec_interval",       "command 
batmtime.time_sub_msec_interval(t:bat[:daytime], ms:bat[:lng]):bat[:daytime] ", 
       "MTIMEtime_sub_msec_interval_bulk;",    ""      ]
+[ "batmtime",  "time_sub_msec_interval",       "command 
batmtime.time_sub_msec_interval(t:daytime, ms:bat[:lng]):bat[:daytime] ",      
"MTIMEtime_sub_msec_interval_bulk_p1;", ""      ]
+[ "batmtime",  "time_sub_msec_interval",       "command 
batmtime.time_sub_msec_interval(t:bat[:daytime], ms:lng):bat[:daytime] ",      
"MTIMEtime_sub_msec_interval_bulk_p2;", ""      ]
+[ "batmtime",  "time_to_str",  "command batmtime.time_to_str(d:bat[:daytime], 
format:bat[:str]):bat[:str] ",   "MTIMEtime_to_str_bulk;",       ""      ]
+[ "batmtime",  "time_to_str",  "command batmtime.time_to_str(d:daytime, 
format:bat[:str]):bat[:str] ", "MTIMEtime_to_str_bulk_p1;",    ""      ]
+[ "batmtime",  "time_to_str",  "command batmtime.time_to_str(d:bat[:daytime], 
format:str):bat[:str] ", "MTIMEtime_to_str_bulk_p2;",    ""      ]
 [ "batmtime",  "timestamp_add_month_interval", "command 
batmtime.timestamp_add_month_interval(t:bat[:timestamp], 
s:bat[:int]):bat[:timestamp] ",       
"MTIMEtimestamp_add_month_interval_bulk;",      ""      ]
+[ "batmtime",  "timestamp_add_month_interval", "command 
batmtime.timestamp_add_month_interval(t:timestamp, s:bat[:int]):bat[:timestamp] 
",     "MTIMEtimestamp_add_month_interval_bulk_p1;",   ""      ]
+[ "batmtime",  "timestamp_add_month_interval", "command 
batmtime.timestamp_add_month_interval(t:bat[:timestamp], s:int):bat[:timestamp] 
",     "MTIMEtimestamp_add_month_interval_bulk_p2;",   ""      ]
 [ "batmtime",  "timestamp_add_msec_interval",  "command 
batmtime.timestamp_add_msec_interval(t:bat[:timestamp], 
ms:bat[:lng]):bat[:timestamp] ",       
"MTIMEtimestamp_add_msec_interval_bulk;",       ""      ]
+[ "batmtime",  "timestamp_add_msec_interval",  "command 
batmtime.timestamp_add_msec_interval(t:timestamp, ms:bat[:lng]):bat[:timestamp] 
",     "MTIMEtimestamp_add_msec_interval_bulk_p1;",    ""      ]
+[ "batmtime",  "timestamp_add_msec_interval",  "command 
batmtime.timestamp_add_msec_interval(t:bat[:timestamp], ms:lng):bat[:timestamp] 
",     "MTIMEtimestamp_add_msec_interval_bulk_p2;",    ""      ]
 [ "batmtime",  "timestamp_sub_month_interval", "command 
batmtime.timestamp_sub_month_interval(t:bat[:timestamp], 
s:bat[:int]):bat[:timestamp] ",       
"MTIMEtimestamp_sub_month_interval_bulk;",      ""      ]
+[ "batmtime",  "timestamp_sub_month_interval", "command 
batmtime.timestamp_sub_month_interval(t:timestamp, s:bat[:int]):bat[:timestamp] 
",     "MTIMEtimestamp_sub_month_interval_bulk_p1;",   ""      ]
+[ "batmtime",  "timestamp_sub_month_interval", "command 
batmtime.timestamp_sub_month_interval(t:bat[:timestamp], s:int):bat[:timestamp] 
",     "MTIMEtimestamp_sub_month_interval_bulk_p2;",   ""      ]
 [ "batmtime",  "timestamp_sub_msec_interval",  "command 
batmtime.timestamp_sub_msec_interval(t:bat[:timestamp], 
ms:bat[:lng]):bat[:timestamp] ",       
"MTIMEtimestamp_sub_msec_interval_bulk;",       ""      ]
+[ "batmtime",  "timestamp_sub_msec_interval",  "command 
batmtime.timestamp_sub_msec_interval(t:timestamp, ms:bat[:lng]):bat[:timestamp] 
",     "MTIMEtimestamp_sub_msec_interval_bulk_p1;",    ""      ]
+[ "batmtime",  "timestamp_sub_msec_interval",  "command 
batmtime.timestamp_sub_msec_interval(t:bat[:timestamp], ms:lng):bat[:timestamp] 
",     "MTIMEtimestamp_sub_msec_interval_bulk_p2;",    ""      ]
+[ "batmtime",  "timestamp_to_str",     "command 
batmtime.timestamp_to_str(d:bat[:timestamp], format:bat[:str]):bat[:str] ",    
"MTIMEtimestamp_to_str_bulk;",  ""      ]
+[ "batmtime",  "timestamp_to_str",     "command 
batmtime.timestamp_to_str(d:timestamp, format:bat[:str]):bat[:str] ",  
"MTIMEtimestamp_to_str_bulk_p1;",       ""      ]
+[ "batmtime",  "timestamp_to_str",     "command 
batmtime.timestamp_to_str(d:bat[:timestamp], format:str):bat[:str] ",  
"MTIMEtimestamp_to_str_bulk_p2;",       ""      ]
 [ "batmtime",  "weekofyear",   "command 
batmtime.weekofyear(d:bat[:date]):bat[:int] ", 
"MTIMEdate_extract_weekofyear_bulk;",   ""      ]
 [ "batmtime",  "year", "command batmtime.year(d:bat[:date]):bat[:int] ",       
"MTIMEdate_extract_year_bulk;", ""      ]
+[ "batmtime",  "year", "command batmtime.year(months:bat[:int]):bat[:int] ",   
"MTIMEsql_year_bulk;",  ""      ]
+[ "batmtime",  "year", "command batmtime.year(t:bat[:timestamp]):bat[:int] ",  
"MTIMEtimestamp_year_bulk;",    ""      ]
 [ "batpcre",   "replace",      "command batpcre.replace(orig:bat[:str], 
pat:str, repl:str, flag:str):bat[:str] ",      "PCREreplace_bat_wrap;",        
""      ]
 [ "batpcre",   "replace_first",        "command 
batpcre.replace_first(orig:bat[:str], pat:str, repl:str, flag:str):bat[:str] ", 
       "PCREreplacefirst_bat_wrap;",   ""      ]
 [ "batpyapi3", "eval", "unsafe pattern batpyapi3.eval(fptr:ptr, expr:str, 
arg:any...):any... ",        "PYAPI3PyAPIevalStd;",  "Execute a simple Python 
script value"  ]
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
@@ -1569,7 +1569,7 @@ str MTIMEdaytime_extract_minutes(int *re
 str MTIMEdaytime_extract_minutes_bulk(bat *ret, const bat *bid);
 str MTIMEdaytime_extract_sql_seconds(int *ret, const daytime *src);
 str MTIMEdaytime_extract_sql_seconds_bulk(bat *ret, const bat *bid);
-str MTIMEdaytime_fromseconds(daytime *ret, const const lng *src);
+str MTIMEdaytime_fromseconds(daytime *ret, const lng *src);
 str MTIMEdaytime_fromseconds_bulk(bat *ret, const bat *bid);
 str MTIMEdaytime_fromstr(daytime *ret, const str *src);
 str MTIMEdaytime_fromstr_bulk(bat *ret, const bat *bid);
diff --git a/monetdb5/modules/atoms/blob.c b/monetdb5/modules/atoms/blob.c
--- a/monetdb5/modules/atoms/blob.c
+++ b/monetdb5/modules/atoms/blob.c
@@ -207,7 +207,7 @@ BLOBnitems_bulk(bat *ret, const bat *bid
        BATiter bi;
 
        if ((b = BATdescriptor(*bid)) == NULL)  {
-               throw(MAL, "blob.nitems_bulk", SQLSTATE(HY002) 
RUNTIME_OBJECT_MISSING);
+               msg = createException(MAL, "blob.nitems_bulk", SQLSTATE(HY002) 
RUNTIME_OBJECT_MISSING);
                goto bailout;
        }
        n = BATcount(b);
diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c
--- a/monetdb5/modules/atoms/mtime.c
+++ b/monetdb5/modules/atoms/mtime.c
@@ -616,7 +616,7 @@ daytime_fromseconds(daytime *ret, const 
                *ret = (daytime) (secs * 1000000);
        return MAL_SUCCEED;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to