Changeset: 30e2dea9525c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=30e2dea9525c
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql_round_impl.h
Branch: default
Log Message:

Added candidate list support for conversion functions from string to decimals 
and second interval to decimals (although this one is not used anymore)


diffs (truncated from 710 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
@@ -3533,7 +3533,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "bte",  "command batcalc.bte(X_1:int, X_2:bat[:sht], 
X_3:bat[:oid], X_4:int, X_5:int):bat[:bte] ",      "batsht_dec2dec_cand_bte;",  
   ""      ]
 [ "batcalc",   "bte",  "command batcalc.bte(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:bte] ",      "batsht_num2dec_bte;",  ""      ]
 [ "batcalc",   "bte",  "command batcalc.bte(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:bte] ",       "batsht_num2dec_cand_bte;",     ""      ]
-[ "batcalc",   "bte",  "command batcalc.bte(X_1:bat[:str], X_2:int, 
X_3:int):bat[:bte] ",      "batstr_2dec_bte;",     ""      ]
+[ "batcalc",   "bte",  "pattern batcalc.bte(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:bte] ",       "batstr_2dec_bte;",     ""      ]
+[ "batcalc",   "bte",  "pattern batcalc.bte(X_1:bat[:str], X_2:int, 
X_3:int):bat[:bte] ",      "batstr_2dec_bte;",     ""      ]
 [ "batcalc",   "bte_noerror",  "pattern 
batcalc.bte_noerror(X_1:bat[:bit]):bat[:bte] ",        "CMDconvert_bte;",      
""      ]
 [ "batcalc",   "bte_noerror",  "pattern batcalc.bte_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:bte] ", "CMDconvert_bte;",      ""      ]
 [ "batcalc",   "bte_noerror",  "pattern 
batcalc.bte_noerror(X_1:bat[:bte]):bat[:bte] ",        "CMDconvert_bte;",      
""      ]
@@ -3790,16 +3791,22 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:str]):bat[:date] ",      
"MTIMEdate_fromstr_bulk;",      ""      ]
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:timestamp]):bat[:date] 
",        "MTIMEtimestamp_extract_date_bulk;",    ""      ]
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:str]):bat[:date] ",      
"batstr_2_date;",       ""      ]
+[ "batcalc",   "date", "command batcalc.date(X_1:bat[:str], 
X_2:bat[:oid]):bat[:date] ",       "batstr_2_date_cand;",  ""      ]
 [ "batcalc",   "date", "pattern batcalc.date(X_1:bat[:oid]):bat[:date] ",      
"nil_2_date;",  ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:daytime]):bat[:daytime] ",    
"MTIMEdaytime_daytime_bulk;",   ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:lng]):bat[:daytime] ",        
"MTIMEdaytime_fromseconds_bulk;",       ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:str]):bat[:daytime] ",        
"MTIMEdaytime_fromstr_bulk;",   ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:timestamp]):bat[:daytime] ",  
"MTIMEtimestamp_extract_daytime_bulk;", ""      ]
 [ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:str], 
X_2:int):bat[:daytime] ",       "batstr_2time_daytime;",        ""      ]
+[ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:str], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",        "batstr_2time_daytime_cand;",   
""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",    "daytime_2time_daytime;",       ""  
    ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:int):bat[:daytime] ",   "daytime_2time_daytime;",       ""      ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:oid], 
X_2:int):bat[:daytime] ",       "nil_2time_daytime;",   ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:lng], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",        "second_interval_2_daytime;",   
""      ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:lng], 
X_2:int):bat[:daytime] ",       "second_interval_2_daytime;",   ""      ]
-[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:int):bat[:daytime] ",   "str_2time_daytimetz;", ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:bat[:oid], X_3:int, X_4:int):bat[:daytime] ",   "str_2time_daytimetz;", ""  
    ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:int, X_3:int):bat[:daytime] ",  "str_2time_daytimetz;", ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:timestamp], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",  "timestamp_2_daytime;", ""      ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:timestamp], 
X_2:int):bat[:daytime] ", "timestamp_2_daytime;", ""      ]
 [ "batcalc",   "dbl",  "pattern batcalc.dbl(X_1:bat[:bit]):bat[:dbl] ",        
"CMDconvertsignal_dbl;",        ""      ]
 [ "batcalc",   "dbl",  "pattern batcalc.dbl(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:dbl] ", "CMDconvertsignal_dbl;",        ""      ]
@@ -4367,7 +4374,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "int",  "command batcalc.int(X_1:int, X_2:bat[:sht], X_3:int, 
X_4:int):bat[:int] ",     "batsht_dec2dec_int;",  ""      ]
 [ "batcalc",   "int",  "command batcalc.int(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:int] ",       "batsht_num2dec_cand_int;",     ""      ]
 [ "batcalc",   "int",  "command batcalc.int(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:int] ",      "batsht_num2dec_int;",  ""      ]
-[ "batcalc",   "int",  "command batcalc.int(X_1:bat[:str], X_2:int, 
X_3:int):bat[:int] ",      "batstr_2dec_int;",     ""      ]
+[ "batcalc",   "int",  "pattern batcalc.int(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:int] ",       "batstr_2dec_int;",     ""      ]
+[ "batcalc",   "int",  "pattern batcalc.int(X_1:bat[:str], X_2:int, 
X_3:int):bat[:int] ",      "batstr_2dec_int;",     ""      ]
 [ "batcalc",   "int_noerror",  "pattern 
batcalc.int_noerror(X_1:bat[:bit]):bat[:int] ",        "CMDconvert_int;",      
""      ]
 [ "batcalc",   "int_noerror",  "pattern batcalc.int_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:int] ", "CMDconvert_int;",      ""      ]
 [ "batcalc",   "int_noerror",  "pattern 
batcalc.int_noerror(X_1:bat[:bte]):bat[:int] ",        "CMDconvert_int;",      
""      ]
@@ -4449,7 +4457,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "lng",  "command batcalc.lng(X_1:int, X_2:bat[:sht], X_3:int, 
X_4:int):bat[:lng] ",     "batsht_dec2dec_lng;",  ""      ]
 [ "batcalc",   "lng",  "command batcalc.lng(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:lng] ",       "batsht_num2dec_cand_lng;",     ""      ]
 [ "batcalc",   "lng",  "command batcalc.lng(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:lng] ",      "batsht_num2dec_lng;",  ""      ]
-[ "batcalc",   "lng",  "command batcalc.lng(X_1:bat[:str], X_2:int, 
X_3:int):bat[:lng] ",      "batstr_2dec_lng;",     ""      ]
+[ "batcalc",   "lng",  "pattern batcalc.lng(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:lng] ",       "batstr_2dec_lng;",     ""      ]
+[ "batcalc",   "lng",  "pattern batcalc.lng(X_1:bat[:str], X_2:int, 
X_3:int):bat[:lng] ",      "batstr_2dec_lng;",     ""      ]
 [ "batcalc",   "lng_noerror",  "pattern 
batcalc.lng_noerror(X_1:bat[:bit]):bat[:lng] ",        "CMDconvert_lng;",      
""      ]
 [ "batcalc",   "lng_noerror",  "pattern batcalc.lng_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:lng] ", "CMDconvert_lng;",      ""      ]
 [ "batcalc",   "lng_noerror",  "pattern 
batcalc.lng_noerror(X_1:bat[:bte]):bat[:lng] ",        "CMDconvert_lng;",      
""      ]
@@ -5103,7 +5112,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "sht",  "command batcalc.sht(X_1:int, X_2:bat[:sht], X_3:int, 
X_4:int):bat[:sht] ",     "batsht_dec2dec_sht;",  ""      ]
 [ "batcalc",   "sht",  "command batcalc.sht(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:sht] ",       "batsht_num2dec_cand_sht;",     ""      ]
 [ "batcalc",   "sht",  "command batcalc.sht(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:sht] ",      "batsht_num2dec_sht;",  ""      ]
-[ "batcalc",   "sht",  "command batcalc.sht(X_1:bat[:str], X_2:int, 
X_3:int):bat[:sht] ",      "batstr_2dec_sht;",     ""      ]
+[ "batcalc",   "sht",  "pattern batcalc.sht(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:sht] ",       "batstr_2dec_sht;",     ""      ]
+[ "batcalc",   "sht",  "pattern batcalc.sht(X_1:bat[:str], X_2:int, 
X_3:int):bat[:sht] ",      "batstr_2dec_sht;",     ""      ]
 [ "batcalc",   "sht_noerror",  "pattern 
batcalc.sht_noerror(X_1:bat[:bit]):bat[:sht] ",        "CMDconvert_sht;",      
""      ]
 [ "batcalc",   "sht_noerror",  "pattern batcalc.sht_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:sht] ", "CMDconvert_sht;",      ""      ]
 [ "batcalc",   "sht_noerror",  "pattern 
batcalc.sht_noerror(X_1:bat[:bte]):bat[:sht] ",        "CMDconvert_sht;",      
""      ]
@@ -5255,10 +5265,14 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(X_1:bat[:str]):bat[:timestamp] ",    
"MTIMEtimestamp_fromstr_bulk;", ""      ]
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(X_1:bat[:timestamp]):bat[:timestamp] ",      
"MTIMEtimestamp_timestamp_bulk;",       ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:int):bat[:timestamp] ",   "batstr_2time_timestamp;",      ""      ]
+[ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:bat[:oid], X_3:int):bat[:timestamp] ",    "batstr_2time_timestamp_cand;", 
""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:int, X_3:int):bat[:timestamp] ",  "batstr_2time_timestamptz;",    ""      ]
+[ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:bat[:oid], X_3:int, X_4:int):bat[:timestamp] ",   
"batstr_2time_timestamptz_cand;",       ""      ]
+[ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:date], 
X_2:bat[:oid], X_3:int):bat[:timestamp] ",   "date_2_timestamp;",    ""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:date], 
X_2:int):bat[:timestamp] ",  "date_2_timestamp;",    ""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:oid], 
X_2:int):bat[:timestamp] ",   "nil_2time_timestamp;", ""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:oid], 
X_2:int, X_3:bat[:BAT]):bat[:timestamp] ",    "nil_2time_timestamp;", ""      ]
+[ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:timestamp], 
X_2:bat[:oid], X_3:int):bat[:timestamp] ",      "timestamp_2time_timestamp;",   
""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:timestamp], 
X_2:int):bat[:timestamp] ",     "timestamp_2time_timestamp;",   ""      ]
 [ "batcalc",   "wkb",  "command batcalc.wkb(X_1:bat[:wkb], X_2:int, 
X_3:int):bat[:wkb] ",      "geom_2_geom_bat;",     ""      ]
 [ "batcalc",   "xml",  "command batcalc.xml(X_1:bat[:str]):bat[:xml] ",        
"BATXMLstr2xml;",       ""      ]
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
@@ -5001,7 +5001,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "bte",  "command batcalc.bte(X_1:int, X_2:bat[:sht], 
X_3:bat[:oid], X_4:int, X_5:int):bat[:bte] ",      "batsht_dec2dec_cand_bte;",  
   ""      ]
 [ "batcalc",   "bte",  "command batcalc.bte(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:bte] ",      "batsht_num2dec_bte;",  ""      ]
 [ "batcalc",   "bte",  "command batcalc.bte(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:bte] ",       "batsht_num2dec_cand_bte;",     ""      ]
-[ "batcalc",   "bte",  "command batcalc.bte(X_1:bat[:str], X_2:int, 
X_3:int):bat[:bte] ",      "batstr_2dec_bte;",     ""      ]
+[ "batcalc",   "bte",  "pattern batcalc.bte(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:bte] ",       "batstr_2dec_bte;",     ""      ]
+[ "batcalc",   "bte",  "pattern batcalc.bte(X_1:bat[:str], X_2:int, 
X_3:int):bat[:bte] ",      "batstr_2dec_bte;",     ""      ]
 [ "batcalc",   "bte_noerror",  "pattern 
batcalc.bte_noerror(X_1:bat[:bit]):bat[:bte] ",        "CMDconvert_bte;",      
""      ]
 [ "batcalc",   "bte_noerror",  "pattern batcalc.bte_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:bte] ", "CMDconvert_bte;",      ""      ]
 [ "batcalc",   "bte_noerror",  "pattern 
batcalc.bte_noerror(X_1:bat[:bte]):bat[:bte] ",        "CMDconvert_bte;",      
""      ]
@@ -5338,16 +5339,22 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:str]):bat[:date] ",      
"MTIMEdate_fromstr_bulk;",      ""      ]
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:timestamp]):bat[:date] 
",        "MTIMEtimestamp_extract_date_bulk;",    ""      ]
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:str]):bat[:date] ",      
"batstr_2_date;",       ""      ]
+[ "batcalc",   "date", "command batcalc.date(X_1:bat[:str], 
X_2:bat[:oid]):bat[:date] ",       "batstr_2_date_cand;",  ""      ]
 [ "batcalc",   "date", "pattern batcalc.date(X_1:bat[:oid]):bat[:date] ",      
"nil_2_date;",  ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:daytime]):bat[:daytime] ",    
"MTIMEdaytime_daytime_bulk;",   ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:lng]):bat[:daytime] ",        
"MTIMEdaytime_fromseconds_bulk;",       ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:str]):bat[:daytime] ",        
"MTIMEdaytime_fromstr_bulk;",   ""      ]
 [ "batcalc",   "daytime",      "command 
batcalc.daytime(X_1:bat[:timestamp]):bat[:daytime] ",  
"MTIMEtimestamp_extract_daytime_bulk;", ""      ]
 [ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:str], 
X_2:int):bat[:daytime] ",       "batstr_2time_daytime;",        ""      ]
+[ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:str], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",        "batstr_2time_daytime_cand;",   
""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",    "daytime_2time_daytime;",       ""  
    ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:int):bat[:daytime] ",   "daytime_2time_daytime;",       ""      ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:oid], 
X_2:int):bat[:daytime] ",       "nil_2time_daytime;",   ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:lng], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",        "second_interval_2_daytime;",   
""      ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:lng], 
X_2:int):bat[:daytime] ",       "second_interval_2_daytime;",   ""      ]
-[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:int):bat[:daytime] ",   "str_2time_daytimetz;", ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:bat[:oid], X_3:int, X_4:int):bat[:daytime] ",   "str_2time_daytimetz;", ""  
    ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:daytime], 
X_2:int, X_3:int):bat[:daytime] ",  "str_2time_daytimetz;", ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:timestamp], 
X_2:bat[:oid], X_3:int):bat[:daytime] ",  "timestamp_2_daytime;", ""      ]
 [ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:timestamp], 
X_2:int):bat[:daytime] ", "timestamp_2_daytime;", ""      ]
 [ "batcalc",   "dbl",  "pattern batcalc.dbl(X_1:bat[:bit]):bat[:dbl] ",        
"CMDconvertsignal_dbl;",        ""      ]
 [ "batcalc",   "dbl",  "pattern batcalc.dbl(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:dbl] ", "CMDconvertsignal_dbl;",        ""      ]
@@ -6146,7 +6153,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "hge",  "command batcalc.hge(X_1:int, X_2:bat[:sht], X_3:int, 
X_4:int):bat[:hge] ",     "batsht_dec2dec_hge;",  ""      ]
 [ "batcalc",   "hge",  "command batcalc.hge(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:hge] ",       "batsht_num2dec_cand_hge;",     ""      ]
 [ "batcalc",   "hge",  "command batcalc.hge(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:hge] ",      "batsht_num2dec_hge;",  ""      ]
-[ "batcalc",   "hge",  "command batcalc.hge(X_1:bat[:str], X_2:int, 
X_3:int):bat[:hge] ",      "batstr_2dec_hge;",     ""      ]
+[ "batcalc",   "hge",  "pattern batcalc.hge(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:hge] ",       "batstr_2dec_hge;",     ""      ]
+[ "batcalc",   "hge",  "pattern batcalc.hge(X_1:bat[:str], X_2:int, 
X_3:int):bat[:hge] ",      "batstr_2dec_hge;",     ""      ]
 [ "batcalc",   "hge_noerror",  "pattern 
batcalc.hge_noerror(X_1:bat[:bit]):bat[:hge] ",        "CMDconvert_hge;",      
""      ]
 [ "batcalc",   "hge_noerror",  "pattern batcalc.hge_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:hge] ", "CMDconvert_hge;",      ""      ]
 [ "batcalc",   "hge_noerror",  "pattern 
batcalc.hge_noerror(X_1:bat[:bte]):bat[:hge] ",        "CMDconvert_hge;",      
""      ]
@@ -6236,7 +6244,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "int",  "command batcalc.int(X_1:int, X_2:bat[:sht], X_3:int, 
X_4:int):bat[:int] ",     "batsht_dec2dec_int;",  ""      ]
 [ "batcalc",   "int",  "command batcalc.int(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:int] ",       "batsht_num2dec_cand_int;",     ""      ]
 [ "batcalc",   "int",  "command batcalc.int(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:int] ",      "batsht_num2dec_int;",  ""      ]
-[ "batcalc",   "int",  "command batcalc.int(X_1:bat[:str], X_2:int, 
X_3:int):bat[:int] ",      "batstr_2dec_int;",     ""      ]
+[ "batcalc",   "int",  "pattern batcalc.int(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:int] ",       "batstr_2dec_int;",     ""      ]
+[ "batcalc",   "int",  "pattern batcalc.int(X_1:bat[:str], X_2:int, 
X_3:int):bat[:int] ",      "batstr_2dec_int;",     ""      ]
 [ "batcalc",   "int_noerror",  "pattern 
batcalc.int_noerror(X_1:bat[:bit]):bat[:int] ",        "CMDconvert_int;",      
""      ]
 [ "batcalc",   "int_noerror",  "pattern batcalc.int_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:int] ", "CMDconvert_int;",      ""      ]
 [ "batcalc",   "int_noerror",  "pattern 
batcalc.int_noerror(X_1:bat[:bte]):bat[:int] ",        "CMDconvert_int;",      
""      ]
@@ -6332,7 +6341,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "lng",  "command batcalc.lng(X_1:int, X_2:bat[:sht], X_3:int, 
X_4:int):bat[:lng] ",     "batsht_dec2dec_lng;",  ""      ]
 [ "batcalc",   "lng",  "command batcalc.lng(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:lng] ",       "batsht_num2dec_cand_lng;",     ""      ]
 [ "batcalc",   "lng",  "command batcalc.lng(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:lng] ",      "batsht_num2dec_lng;",  ""      ]
-[ "batcalc",   "lng",  "command batcalc.lng(X_1:bat[:str], X_2:int, 
X_3:int):bat[:lng] ",      "batstr_2dec_lng;",     ""      ]
+[ "batcalc",   "lng",  "pattern batcalc.lng(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:lng] ",       "batstr_2dec_lng;",     ""      ]
+[ "batcalc",   "lng",  "pattern batcalc.lng(X_1:bat[:str], X_2:int, 
X_3:int):bat[:lng] ",      "batstr_2dec_lng;",     ""      ]
 [ "batcalc",   "lng_noerror",  "pattern 
batcalc.lng_noerror(X_1:bat[:bit]):bat[:lng] ",        "CMDconvert_lng;",      
""      ]
 [ "batcalc",   "lng_noerror",  "pattern batcalc.lng_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:lng] ", "CMDconvert_lng;",      ""      ]
 [ "batcalc",   "lng_noerror",  "pattern 
batcalc.lng_noerror(X_1:bat[:bte]):bat[:lng] ",        "CMDconvert_lng;",      
""      ]
@@ -6818,12 +6828,17 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "mod_noerror",  "pattern batcalc.mod_noerror(X_1:sht, 
X_2:bat[:sht], X_3:bat[:oid]):bat[:int] ",        "CMDbatMOD;",   ""      ]
 [ "batcalc",   "mod_noerror",  "pattern batcalc.mod_noerror(X_1:sht, 
X_2:bat[:sht], X_3:bat[:oid]):bat[:lng] ",        "CMDbatMOD;",   ""      ]
 [ "batcalc",   "mod_noerror",  "pattern batcalc.mod_noerror(X_1:sht, 
X_2:bat[:sht], X_3:bat[:oid]):bat[:sht] ",        "CMDbatMOD;",   ""      ]
+[ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:bte], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:int] ",    "month_interval;",      ""      ]
 [ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:bte], X_2:int, X_3:int):bat[:int] ",   
"month_interval;",      ""      ]
 [ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:hge], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:int] ",    "month_interval;",      ""      ]
 [ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:hge], X_2:int, X_3:int):bat[:int] ",   
"month_interval;",      ""      ]
+[ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:int], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:int] ",    "month_interval;",      ""      ]
 [ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:int], X_2:int, X_3:int):bat[:int] ",   
"month_interval;",      ""      ]
+[ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:lng], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:int] ",    "month_interval;",      ""      ]
 [ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:lng], X_2:int, X_3:int):bat[:int] ",   
"month_interval;",      ""      ]
+[ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:sht], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:int] ",    "month_interval;",      ""      ]
 [ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:sht], X_2:int, X_3:int):bat[:int] ",   
"month_interval;",      ""      ]
+[ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:str], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:int] ",    "month_interval_str;",  ""      ]
 [ "batcalc",   "month_interval",       "pattern 
batcalc.month_interval(X_1:bat[:str], X_2:int, X_3:int):bat[:int] ",   
"month_interval_str;",  ""      ]
 [ "batcalc",   "mul_noerror",  "pattern batcalc.mul_noerror(X_1:bat[:bte], 
X_2:bat[:bte], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ",   "CMDbatMUL;",   ""  
    ]
 [ "batcalc",   "mul_noerror",  "pattern batcalc.mul_noerror(X_1:bat[:bte], 
X_2:bat[:dbl], X_3:bat[:oid], X_4:bat[:oid]):bat[:dbl] ",   "CMDbatMUL;",   ""  
    ]
@@ -7227,20 +7242,30 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "rsh_noerror",  "pattern batcalc.rsh_noerror(X_1:sht, 
X_2:bat[:lng], X_3:bat[:oid]):bat[:sht] ",        "CMDbatRSH;",   ""      ]
 [ "batcalc",   "rsh_noerror",  "pattern batcalc.rsh_noerror(X_1:sht, 
X_2:bat[:sht]):bat[:sht] ",       "CMDbatRSH;",   ""      ]
 [ "batcalc",   "rsh_noerror",  "pattern batcalc.rsh_noerror(X_1:sht, 
X_2:bat[:sht], X_3:bat[:oid]):bat[:sht] ",        "CMDbatRSH;",   ""      ]
-[ "batcalc",   "second_interval",      "command 
batcalc.second_interval(X_1:int, X_2:bat[:bte], X_3:int, X_4:int):bat[:lng] ", 
"bte_batdec2second_interval;",  ""      ]
-[ "batcalc",   "second_interval",      "command 
batcalc.second_interval(X_1:int, X_2:bat[:hge], X_3:bat[:oid], X_4:int, 
X_5:int):bat[:lng] ",  "hge_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:bte], X_3:bat[:oid], X_4:int, 
X_5:int):bat[:lng] ",  "bte_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:bte], X_3:int, X_4:int):bat[:lng] ", 
"bte_batdec2second_interval;",  ""      ]
 [ "batcalc",   "second_interval",      "command 
batcalc.second_interval(X_1:int, X_2:bat[:hge], X_3:int, X_4:int):bat[:lng] ", 
"hge_batdec2second_interval;",  ""      ]
-[ "batcalc",   "second_interval",      "command 
batcalc.second_interval(X_1:int, X_2:bat[:int], X_3:int, X_4:int):bat[:lng] ", 
"int_batdec2second_interval;",  ""      ]
-[ "batcalc",   "second_interval",      "command 
batcalc.second_interval(X_1:int, X_2:bat[:lng], X_3:int, X_4:int):bat[:lng] ", 
"lng_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:hge], X_3:bat[:oid], X_4:int, 
X_5:int):bat[:lng] ",  "hge_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:int], X_3:bat[:oid], X_4:int, 
X_5:int):bat[:lng] ",  "int_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:int], X_3:int, X_4:int):bat[:lng] ", 
"int_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:lng], X_3:bat[:oid], X_4:int, 
X_5:int):bat[:lng] ",  "lng_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:lng], X_3:int, X_4:int):bat[:lng] ", 
"lng_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:bte], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:lng] ",   "second_interval;",     ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:bte], X_2:int, X_3:int):bat[:lng] ",  
"second_interval;",     ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:hge], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:lng] ",   "second_interval;",     ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:hge], X_2:int, X_3:int):bat[:lng] ",  
"second_interval;",     ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:int], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:lng] ",   "second_interval;",     ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:int], X_2:int, X_3:int):bat[:lng] ",  
"second_interval;",     ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:lng], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:lng] ",   "second_interval;",     ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:lng], X_2:int, X_3:int):bat[:lng] ",  
"second_interval;",     ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:sht], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:lng] ",   "second_interval;",     ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:sht], X_2:int, X_3:int):bat[:lng] ",  
"second_interval;",     ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:daytime], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:lng] ",       "second_interval_daytime;",     ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:daytime], X_2:int, X_3:int):bat[:lng] ",      
"second_interval_daytime;",     ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:str], X_2:bat[:oid], X_3:int, 
X_4:int):bat[:lng] ",   "second_interval_str;", ""      ]
 [ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:bat[:str], X_2:int, X_3:int):bat[:lng] ",  
"second_interval_str;", ""      ]
-[ "batcalc",   "second_interval",      "command 
batcalc.second_interval(X_1:int, X_2:bat[:sht], X_3:int, X_4:int):bat[:lng] ", 
"sht_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:sht], X_3:bat[:oid], X_4:int, 
X_5:int):bat[:lng] ",  "sht_batdec2second_interval;",  ""      ]
+[ "batcalc",   "second_interval",      "pattern 
batcalc.second_interval(X_1:int, X_2:bat[:sht], X_3:int, X_4:int):bat[:lng] ", 
"sht_batdec2second_interval;",  ""      ]
 [ "batcalc",   "sht",  "pattern batcalc.sht(X_1:bat[:bit]):bat[:sht] ",        
"CMDconvertsignal_sht;",        ""      ]
 [ "batcalc",   "sht",  "pattern batcalc.sht(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:sht] ", "CMDconvertsignal_sht;",        ""      ]
 [ "batcalc",   "sht",  "pattern batcalc.sht(X_1:bat[:bte]):bat[:sht] ",        
"CMDconvertsignal_sht;",        ""      ]
@@ -7298,7 +7323,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "sht",  "command batcalc.sht(X_1:int, X_2:bat[:sht], X_3:int, 
X_4:int):bat[:sht] ",     "batsht_dec2dec_sht;",  ""      ]
 [ "batcalc",   "sht",  "command batcalc.sht(X_1:bat[:sht], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:sht] ",       "batsht_num2dec_cand_sht;",     ""      ]
 [ "batcalc",   "sht",  "command batcalc.sht(X_1:bat[:sht], X_2:int, 
X_3:int):bat[:sht] ",      "batsht_num2dec_sht;",  ""      ]
-[ "batcalc",   "sht",  "command batcalc.sht(X_1:bat[:str], X_2:int, 
X_3:int):bat[:sht] ",      "batstr_2dec_sht;",     ""      ]
+[ "batcalc",   "sht",  "pattern batcalc.sht(X_1:bat[:str], X_2:bat[:oid], 
X_3:int, X_4:int):bat[:sht] ",       "batstr_2dec_sht;",     ""      ]
+[ "batcalc",   "sht",  "pattern batcalc.sht(X_1:bat[:str], X_2:int, 
X_3:int):bat[:sht] ",      "batstr_2dec_sht;",     ""      ]
 [ "batcalc",   "sht_noerror",  "pattern 
batcalc.sht_noerror(X_1:bat[:bit]):bat[:sht] ",        "CMDconvert_sht;",      
""      ]
 [ "batcalc",   "sht_noerror",  "pattern batcalc.sht_noerror(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:sht] ", "CMDconvert_sht;",      ""      ]
 [ "batcalc",   "sht_noerror",  "pattern 
batcalc.sht_noerror(X_1:bat[:bte]):bat[:sht] ",        "CMDconvert_sht;",      
""      ]
@@ -7493,10 +7519,14 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(X_1:bat[:str]):bat[:timestamp] ",    
"MTIMEtimestamp_fromstr_bulk;", ""      ]
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(X_1:bat[:timestamp]):bat[:timestamp] ",      
"MTIMEtimestamp_timestamp_bulk;",       ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:int):bat[:timestamp] ",   "batstr_2time_timestamp;",      ""      ]
+[ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:bat[:oid], X_3:int):bat[:timestamp] ",    "batstr_2time_timestamp_cand;", 
""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:int, X_3:int):bat[:timestamp] ",  "batstr_2time_timestamptz;",    ""      ]
+[ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:bat[:oid], X_3:int, X_4:int):bat[:timestamp] ",   
"batstr_2time_timestamptz_cand;",       ""      ]
+[ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:date], 
X_2:bat[:oid], X_3:int):bat[:timestamp] ",   "date_2_timestamp;",    ""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:date], 
X_2:int):bat[:timestamp] ",  "date_2_timestamp;",    ""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:oid], 
X_2:int):bat[:timestamp] ",   "nil_2time_timestamp;", ""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:oid], 
X_2:int, X_3:bat[:BAT]):bat[:timestamp] ",    "nil_2time_timestamp;", ""      ]
+[ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:timestamp], 
X_2:bat[:oid], X_3:int):bat[:timestamp] ",      "timestamp_2time_timestamp;",   
""      ]
 [ "batcalc",   "timestamp",    "pattern batcalc.timestamp(X_1:bat[:timestamp], 
X_2:int):bat[:timestamp] ",     "timestamp_2time_timestamp;",   ""      ]
 [ "batcalc",   "wkb",  "command batcalc.wkb(X_1:bat[:wkb], X_2:int, 
X_3:int):bat[:wkb] ",      "geom_2_geom_bat;",     ""      ]
 [ "batcalc",   "xml",  "command batcalc.xml(X_1:bat[:str]):bat[:xml] ",        
"BATXMLstr2xml;",       ""      ]
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
@@ -5612,25 +5612,29 @@ static mel_func sql_init_funcs[] = {
  command("sql", "round", bte_round_wrap, false, "round off the decimal v(d,s) 
to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
arg("",bte),arg("v",bte),arg("d",int),arg("s",int),arg("r",bte))),
  command("batsql", "round", bte_bat_round_wrap, false, "round off the decimal 
v(d,s) to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
batarg("",bte),batarg("v",bte),arg("d",int),arg("s",int),arg("r",bte))),
  command("calc", "second_interval", bte_dec2second_interval, false, "cast bte 
decimal to a second_interval", args(1,5, 
arg("",lng),arg("sc",int),arg("v",bte),arg("ek",int),arg("sk",int))),
- command("batcalc", "second_interval", bte_batdec2second_interval, false, 
"cast bte decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",bte),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", bte_batdec2second_interval, false, 
"cast bte decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",bte),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", bte_batdec2second_interval, false, 
"cast bte decimal to a second_interval", args(1,6, 
batarg("",lng),arg("sc",int),batarg("v",bte),batarg("s",oid),arg("ek",int),arg("sk",int))),
  command("sql", "dec_round", sht_dec_round_wrap, false, "round off the value v 
to nearests multiple of r", args(1,3, arg("",sht),arg("v",sht),arg("r",sht))),
  command("batsql", "dec_round", sht_bat_dec_round_wrap, false, "round off the 
value v to nearests multiple of r", args(1,3, 
batarg("",sht),batarg("v",sht),arg("r",sht))),
  command("sql", "round", sht_round_wrap, false, "round off the decimal v(d,s) 
to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
arg("",sht),arg("v",sht),arg("d",int),arg("s",int),arg("r",bte))),
  command("batsql", "round", sht_bat_round_wrap, false, "round off the decimal 
v(d,s) to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
batarg("",sht),batarg("v",sht),arg("d",int),arg("s",int),arg("r",bte))),
  command("calc", "second_interval", sht_dec2second_interval, false, "cast sht 
decimal to a second_interval", args(1,5, 
arg("",lng),arg("sc",int),arg("v",sht),arg("ek",int),arg("sk",int))),
- command("batcalc", "second_interval", sht_batdec2second_interval, false, 
"cast sht decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",sht),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", sht_batdec2second_interval, false, 
"cast sht decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",sht),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", sht_batdec2second_interval, false, 
"cast sht decimal to a second_interval", args(1,6, 
batarg("",lng),arg("sc",int),batarg("v",sht),batarg("s",oid),arg("ek",int),arg("sk",int))),
  command("sql", "dec_round", int_dec_round_wrap, false, "round off the value v 
to nearests multiple of r", args(1,3, arg("",int),arg("v",int),arg("r",int))),
  command("batsql", "dec_round", int_bat_dec_round_wrap, false, "round off the 
value v to nearests multiple of r", args(1,3, 
batarg("",int),batarg("v",int),arg("r",int))),
  command("sql", "round", int_round_wrap, false, "round off the decimal v(d,s) 
to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
arg("",int),arg("v",int),arg("d",int),arg("s",int),arg("r",bte))),
  command("batsql", "round", int_bat_round_wrap, false, "round off the decimal 
v(d,s) to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
batarg("",int),batarg("v",int),arg("d",int),arg("s",int),arg("r",bte))),
  command("calc", "second_interval", int_dec2second_interval, false, "cast int 
decimal to a second_interval", args(1,5, 
arg("",lng),arg("sc",int),arg("v",int),arg("ek",int),arg("sk",int))),
- command("batcalc", "second_interval", int_batdec2second_interval, false, 
"cast int decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",int),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", int_batdec2second_interval, false, 
"cast int decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",int),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", int_batdec2second_interval, false, 
"cast int decimal to a second_interval", args(1,6, 
batarg("",lng),arg("sc",int),batarg("v",int),batarg("s",oid),arg("ek",int),arg("sk",int))),
  command("sql", "dec_round", lng_dec_round_wrap, false, "round off the value v 
to nearests multiple of r", args(1,3, arg("",lng),arg("v",lng),arg("r",lng))),
  command("batsql", "dec_round", lng_bat_dec_round_wrap, false, "round off the 
value v to nearests multiple of r", args(1,3, 
batarg("",lng),batarg("v",lng),arg("r",lng))),
  command("sql", "round", lng_round_wrap, false, "round off the decimal v(d,s) 
to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
arg("",lng),arg("v",lng),arg("d",int),arg("s",int),arg("r",bte))),
  command("batsql", "round", lng_bat_round_wrap, false, "round off the decimal 
v(d,s) to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
batarg("",lng),batarg("v",lng),arg("d",int),arg("s",int),arg("r",bte))),
  command("calc", "second_interval", lng_dec2second_interval, false, "cast lng 
decimal to a second_interval", args(1,5, 
arg("",lng),arg("sc",int),arg("v",lng),arg("ek",int),arg("sk",int))),
- command("batcalc", "second_interval", lng_batdec2second_interval, false, 
"cast lng decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",lng),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", lng_batdec2second_interval, false, 
"cast lng decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",lng),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", lng_batdec2second_interval, false, 
"cast lng decimal to a second_interval", args(1,6, 
batarg("",lng),arg("sc",int),batarg("v",lng),batarg("s",oid),arg("ek",int),arg("sk",int))),
  command("sql", "dec_round", flt_dec_round_wrap, false, "round off the value v 
to nearests multiple of r", args(1,3, arg("",flt),arg("v",flt),arg("r",flt))),
  command("batsql", "dec_round", flt_bat_dec_round_wrap, false, "round off the 
value v to nearests multiple of r", args(1,3, 
batarg("",flt),batarg("v",flt),arg("r",flt))),
  command("sql", "round", flt_round_wrap, false, "round off the floating point 
v to r digits behind the dot (if r < 0, before the dot)", args(1,3, 
arg("",flt),arg("v",flt),arg("r",bte))),
@@ -5647,19 +5651,23 @@ static mel_func sql_init_funcs[] = {
  command("calc", "bte", nil_2dec_bte, false, "cast to dec(bte) and check for 
overflow", args(1,4, 
arg("",bte),arg("v",void),arg("digits",int),arg("scale",int))),
  command("batcalc", "bte", batnil_2dec_bte, false, "cast to dec(bte) and check 
for overflow", args(1,4, 
batarg("",bte),batarg("v",oid),arg("digits",int),arg("scale",int))),
  command("calc", "bte", str_2dec_bte, false, "cast to dec(bte) and check for 
overflow", args(1,4, 
arg("",bte),arg("v",str),arg("digits",int),arg("scale",int))),
- command("batcalc", "bte", batstr_2dec_bte, false, "cast to dec(bte) and check 
for overflow", args(1,4, 
batarg("",bte),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "bte", batstr_2dec_bte, false, "cast to dec(bte) and check 
for overflow", args(1,4, 
batarg("",bte),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "bte", batstr_2dec_bte, false, "cast to dec(bte) and check 
for overflow", args(1,5, 
batarg("",bte),batarg("v",str),batarg("s",oid),arg("digits",int),arg("scale",int))),
  command("calc", "sht", nil_2dec_sht, false, "cast to dec(sht) and check for 
overflow", args(1,4, 
arg("",sht),arg("v",void),arg("digits",int),arg("scale",int))),
  command("batcalc", "sht", batnil_2dec_sht, false, "cast to dec(sht) and check 
for overflow", args(1,4, 
batarg("",sht),batarg("v",oid),arg("digits",int),arg("scale",int))),
  command("calc", "sht", str_2dec_sht, false, "cast to dec(sht) and check for 
overflow", args(1,4, 
arg("",sht),arg("v",str),arg("digits",int),arg("scale",int))),
- command("batcalc", "sht", batstr_2dec_sht, false, "cast to dec(sht) and check 
for overflow", args(1,4, 
batarg("",sht),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "sht", batstr_2dec_sht, false, "cast to dec(sht) and check 
for overflow", args(1,4, 
batarg("",sht),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "sht", batstr_2dec_sht, false, "cast to dec(sht) and check 
for overflow", args(1,5, 
batarg("",sht),batarg("v",str),batarg("s",oid),arg("digits",int),arg("scale",int))),
  command("calc", "int", nil_2dec_int, false, "cast to dec(int) and check for 
overflow", args(1,4, 
arg("",int),arg("v",void),arg("digits",int),arg("scale",int))),
  command("batcalc", "int", batnil_2dec_int, false, "cast to dec(int) and check 
for overflow", args(1,4, 
batarg("",int),batarg("v",oid),arg("digits",int),arg("scale",int))),
  command("calc", "int", str_2dec_int, false, "cast to dec(int) and check for 
overflow", args(1,4, 
arg("",int),arg("v",str),arg("digits",int),arg("scale",int))),
- command("batcalc", "int", batstr_2dec_int, false, "cast to dec(int) and check 
for overflow", args(1,4, 
batarg("",int),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "int", batstr_2dec_int, false, "cast to dec(int) and check 
for overflow", args(1,4, 
batarg("",int),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "int", batstr_2dec_int, false, "cast to dec(int) and check 
for overflow", args(1,5, 
batarg("",int),batarg("v",str),batarg("s",oid),arg("digits",int),arg("scale",int))),
  command("calc", "lng", nil_2dec_lng, false, "cast to dec(lng) and check for 
overflow", args(1,4, 
arg("",lng),arg("v",void),arg("digits",int),arg("scale",int))),
  command("batcalc", "lng", batnil_2dec_lng, false, "cast to dec(lng) and check 
for overflow", args(1,4, 
batarg("",lng),batarg("v",oid),arg("digits",int),arg("scale",int))),
  command("calc", "lng", str_2dec_lng, false, "cast to dec(lng) and check for 
overflow", args(1,4, 
arg("",lng),arg("v",str),arg("digits",int),arg("scale",int))),
- command("batcalc", "lng", batstr_2dec_lng, false, "cast to dec(lng) and check 
for overflow", args(1,4, 
batarg("",lng),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "lng", batstr_2dec_lng, false, "cast to dec(lng) and check 
for overflow", args(1,4, 
batarg("",lng),batarg("v",str),arg("digits",int),arg("scale",int))),
+ pattern("batcalc", "lng", batstr_2dec_lng, false, "cast to dec(lng) and check 
for overflow", args(1,5, 
batarg("",lng),batarg("v",str),batarg("s",oid),arg("digits",int),arg("scale",int))),
  pattern("calc", "timestamp", nil_2time_timestamp, false, "cast to timestamp 
and check for overflow", args(1,3, 
arg("",timestamp),arg("v",void),arg("digits",int))),
  pattern("batcalc", "timestamp", nil_2time_timestamp, false, "cast to 
timestamp and check for overflow", args(1,3, 
batarg("",timestamp),batarg("v",oid),arg("digits",int))),
  pattern("batcalc", "timestamp", nil_2time_timestamp, false, "cast to 
timestamp and check for overflow", args(1,4, 
batarg("",timestamp),batarg("v",oid),arg("digits",int),batarg("r",bat))),
@@ -6470,11 +6478,12 @@ static mel_func sql_init_funcs[] = {
  command("batsql", "round", hge_bat_round_wrap, false, "round off the decimal 
v(d,s) to r digits behind the dot (if r < 0, before the dot)", args(1,5, 
batarg("",hge),batarg("v",hge),arg("d",int),arg("s",int),arg("r",bte))),
  command("calc", "second_interval", hge_dec2second_interval, false, "cast hge 
decimal to a second_interval", args(1,5, 
arg("",lng),arg("sc",int),arg("v",hge),arg("ek",int),arg("sk",int))),
  command("batcalc", "second_interval", hge_batdec2second_interval, false, 
"cast hge decimal to a second_interval", args(1,5, 
batarg("",lng),arg("sc",int),batarg("v",hge),arg("ek",int),arg("sk",int))),
- command("batcalc", "second_interval", hge_batdec2second_interval, false, 
"cast hge decimal to a second_interval", args(1,6, 
batarg("",lng),arg("sc",int),batarg("v",hge),batarg("s",oid),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", hge_batdec2second_interval, false, 
"cast hge decimal to a second_interval", args(1,6, 
batarg("",lng),arg("sc",int),batarg("v",hge),batarg("s",oid),arg("ek",int),arg("sk",int))),
  command("calc", "hge", nil_2dec_hge, false, "cast to dec(hge) and check for 
overflow", args(1,4, 
arg("",hge),arg("v",void),arg("digits",int),arg("scale",int))),
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to