Changeset: dea9da51f9fe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dea9da51f9fe
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_bat2time.c
Branch: default
Log Message:

Added missing bulk implementations for more interval functions


diffs (truncated from 399 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
@@ -4586,6 +4586,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:oid], 
X_2:int, X_3:bat[:bit]):bat[:daytime] ",        "batnil_ce_2time_daytime;",     
""      ]
 [ "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:int, X_3:int):bat[:daytime] ",      "batstr_2time_daytimetz;",      ""      
]
+[ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:timestamp], 
X_2:int):bat[:daytime] ", "battimestamp_2_daytime;",      ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:lng], 
X_2:int):bat[:daytime] ",       "second_interval_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[:bit]):bat[:dbl] ", "CMDconvertsignal_dbl;",        ""      ]
 [ "batcalc",   "dbl",  "pattern batcalc.dbl(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:dbl] ", "CMDconvertsignal_dbl;",        ""      ]
@@ -6436,6 +6438,7 @@ stdout of test 'MAL-signatures` in direc
 [ "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:int, X_3: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:int, X_3:int):bat[:lng] ",      
"second_interval_daytime;",     ""      ]
 [ "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",   "sht",  "pattern batcalc.sht(X_1:bat[:bit]):bat[:sht] ",        
"CMDconvertsignal_sht;",        ""      ]
@@ -6798,6 +6801,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(X_1:bat[:int]):bat[:timestamp] ",    
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
 [ "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[:date], 
X_2:int):bat[:timestamp] ",  "batdate_2_timestamp;", ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:oid], 
X_2:int):bat[:timestamp] ",   "batnil_2time_timestamp;",      ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:oid], 
X_2:int, X_3:bat[:BAT]):bat[:timestamp] ",    "batnil_ce_2time_timestamp;",   
""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:int):bat[:timestamp] ",   "batstr_2time_timestamp;",      ""      ]
@@ -8615,7 +8619,7 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "daytime",      "command calc.daytime(X_1:timestamp):daytime ", 
"MTIMEtimestamp_extract_daytime;",      ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:daytime, 
X_2:int):daytime ",  "daytime_2time_daytime;",       ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:void, 
X_2:int):daytime ",     "nil_2time_daytime;",   ""      ]
-[ "calc",      "daytime",      "command calc.daytime(X_1:lng, X_2:int):daytime 
",      "second_interval_2_daytime;",   ""      ]
+[ "calc",      "daytime",      "pattern calc.daytime(X_1:lng, X_2:int):daytime 
",      "second_interval_2_daytime;",   ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:str, X_2:int):daytime 
",      "str_2time_daytime;",   ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:str, X_2:int, 
X_3:int):daytime ",     "str_2time_daytimetz;", ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:timestamp, 
X_2:int):daytime ",        "timestamp_2_daytime;", ""      ]
@@ -9047,7 +9051,7 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:int, 
X_2:int, X_3:int):lng ", "second_interval;",     ""      ]
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:lng, 
X_2:int, X_3:int):lng ", "second_interval;",     ""      ]
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:sht, 
X_2:int, X_3:int):lng ", "second_interval;",     ""      ]
-[ "calc",      "second_interval",      "command 
calc.second_interval(X_1:daytime, X_2:int, X_3:int):lng ",     
"second_interval_daytime;",     ""      ]
+[ "calc",      "second_interval",      "pattern 
calc.second_interval(X_1:daytime, X_2:int, X_3:int):lng ",     
"second_interval_daytime;",     ""      ]
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:str, 
X_2:int, X_3:int):lng ", "second_interval_str;", ""      ]
 [ "calc",      "second_interval",      "command calc.second_interval(X_1:int, 
X_2:sht, X_3:int, X_4:int):lng ",        "sht_dec2second_interval;",     ""     
 ]
 [ "calc",      "sht",  "pattern calc.sht(X_1:bit):sht ",       
"CMDvarCONVERT;",       ""      ]
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
@@ -6285,6 +6285,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:oid], 
X_2:int, X_3:bat[:bit]):bat[:daytime] ",        "batnil_ce_2time_daytime;",     
""      ]
 [ "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:int, X_3:int):bat[:daytime] ",      "batstr_2time_daytimetz;",      ""      
]
+[ "batcalc",   "daytime",      "command batcalc.daytime(X_1:bat[:timestamp], 
X_2:int):bat[:daytime] ", "battimestamp_2_daytime;",      ""      ]
+[ "batcalc",   "daytime",      "pattern batcalc.daytime(X_1:bat[:lng], 
X_2:int):bat[:daytime] ",       "second_interval_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[:bit]):bat[:dbl] ", "CMDconvertsignal_dbl;",        ""      ]
 [ "batcalc",   "dbl",  "pattern batcalc.dbl(X_1:bat[:bit], 
X_2:bat[:oid]):bat[:dbl] ", "CMDconvertsignal_dbl;",        ""      ]
@@ -8989,6 +8991,7 @@ stdout of test 'MAL-signatures` in direc
 [ "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:int, X_3: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:int, X_3:int):bat[:lng] ",      
"second_interval_daytime;",     ""      ]
 [ "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",   "sht",  "pattern batcalc.sht(X_1:bat[:bit]):bat[:sht] ",        
"CMDconvertsignal_sht;",        ""      ]
@@ -9447,6 +9450,7 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "timestamp",    "command 
batcalc.timestamp(X_1:bat[:int]):bat[:timestamp] ",    
"MTIMEtimestamp_fromsecond_bulk;",      ""      ]
 [ "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[:date], 
X_2:int):bat[:timestamp] ",  "batdate_2_timestamp;", ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:oid], 
X_2:int):bat[:timestamp] ",   "batnil_2time_timestamp;",      ""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:oid], 
X_2:int, X_3:bat[:BAT]):bat[:timestamp] ",    "batnil_ce_2time_timestamp;",   
""      ]
 [ "batcalc",   "timestamp",    "command batcalc.timestamp(X_1:bat[:str], 
X_2:int):bat[:timestamp] ",   "batstr_2time_timestamp;",      ""      ]
@@ -11731,7 +11735,7 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "daytime",      "command calc.daytime(X_1:timestamp):daytime ", 
"MTIMEtimestamp_extract_daytime;",      ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:daytime, 
X_2:int):daytime ",  "daytime_2time_daytime;",       ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:void, 
X_2:int):daytime ",     "nil_2time_daytime;",   ""      ]
-[ "calc",      "daytime",      "command calc.daytime(X_1:lng, X_2:int):daytime 
",      "second_interval_2_daytime;",   ""      ]
+[ "calc",      "daytime",      "pattern calc.daytime(X_1:lng, X_2:int):daytime 
",      "second_interval_2_daytime;",   ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:str, X_2:int):daytime 
",      "str_2time_daytime;",   ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:str, X_2:int, 
X_3:int):daytime ",     "str_2time_daytimetz;", ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:timestamp, 
X_2:int):daytime ",        "timestamp_2_daytime;", ""      ]
@@ -12367,7 +12371,7 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:int, 
X_2:int, X_3:int):lng ", "second_interval;",     ""      ]
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:lng, 
X_2:int, X_3:int):lng ", "second_interval;",     ""      ]
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:sht, 
X_2:int, X_3:int):lng ", "second_interval;",     ""      ]
-[ "calc",      "second_interval",      "command 
calc.second_interval(X_1:daytime, X_2:int, X_3:int):lng ",     
"second_interval_daytime;",     ""      ]
+[ "calc",      "second_interval",      "pattern 
calc.second_interval(X_1:daytime, X_2:int, X_3:int):lng ",     
"second_interval_daytime;",     ""      ]
 [ "calc",      "second_interval",      "pattern calc.second_interval(X_1:str, 
X_2:int, X_3:int):lng ", "second_interval_str;", ""      ]
 [ "calc",      "second_interval",      "command calc.second_interval(X_1:int, 
X_2:sht, X_3:int, X_4:int):lng ",        "sht_dec2second_interval;",     ""     
 ]
 [ "calc",      "sht",  "pattern calc.sht(X_1:bit):sht ",       
"CMDvarCONVERT;",       ""      ]
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
@@ -3622,16 +3622,70 @@ daytime_2time_daytime(daytime *res, cons
 }
 
 str
-second_interval_2_daytime(daytime *res, const lng *s, const int *digits)
+second_interval_2_daytime(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci)
 {
-       daytime d;
-
-       if (*s == lng_nil) {
-               *res = daytime_nil;
-               return MAL_SUCCEED;
-       }
-       d = daytime_add_usec(daytime_create(0, 0, 0, 0), *s * 1000);
-       return daytime_2time_daytime(res, &d, digits);
+       str msg = MAL_SUCCEED;
+       daytime *restrict ret = NULL;
+       int tpe = getArgType(mb, pci, 1), *digits = getArgReference_int(stk, 
pci, 2);
+       bool is_a_bat = false;
+       BAT *b = NULL, *res = NULL;
+       bat *r;
+       BUN q = 0;
+
+       (void) cntxt;
+       is_a_bat = isaBatType(tpe);
+       if (is_a_bat) {
+               tpe = getBatType(tpe);
+               if (!(b = BATdescriptor(*getArgReference_bat(stk, pci, 1)))) {
+                       msg = createException(SQL, 
"calc.second_interval_2_daytime", SQLSTATE(HY005) "Cannot access column 
descriptor");
+                       goto bailout;
+               }
+               q = BATcount(b);
+               if (!(res = COLnew(b->hseqbase, TYPE_daytime, q, TRANSIENT))) {
+                       msg = createException(SQL, 
"calc.second_interval_2_daytime", SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                       goto bailout;
+               }
+               r = getArgReference_bat(stk, pci, 0);
+               ret = (daytime*) Tloc(res, 0);
+       } else {
+               ret = (daytime*) getArgReference(stk, pci, 0);
+       }
+
+       if (is_a_bat) {
+               lng *restrict vals = (lng*) Tloc(b, 0);
+               for (BUN i = 0 ; i < q && !msg ; i++) {
+                       lng next = vals[i];
+                       if (is_lng_nil(next)) {
+                               ret[i] = daytime_nil;
+                       } else {
+                               daytime d = daytime_add_usec(daytime_create(0, 
0, 0, 0), next * 1000);
+                               msg = daytime_2time_daytime(&(ret[i]), &d, 
digits);
+                       }
+               }
+       } else {
+               lng next = *(lng*)getArgReference(stk, pci, 1);
+               if (is_lng_nil(next)) {
+                       *ret = daytime_nil;
+               } else {
+                       daytime d = daytime_add_usec(daytime_create(0, 0, 0, 
0), next * 1000);
+                       msg = daytime_2time_daytime(ret, &d, digits);
+               }
+       }
+
+bailout:
+       if (res && !msg) {
+               BATsetcount(res, q);
+               res->tnil = b->tnil;
+               res->tnonil = b->tnonil;
+               res->tkey = BATcount(res) <= 1;
+               res->tsorted = BATcount(res) <= 1;
+               res->trevsorted = BATcount(res) <= 1;
+               BBPkeepref(*r = res->batCacheid);
+       } else if (res)
+               BBPreclaim(res);
+       if (b)
+               BBPunfix(b->batCacheid);
+       return msg;
 }
 
 str
@@ -4229,36 +4283,81 @@ bailout:
 }
 
 str
-second_interval_daytime(lng *res, const daytime *s, const int *d, const int 
*sk)
+second_interval_daytime(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci)
 {
-       int k = digits2sk(*d);
-       lng r = *(int *) s;
-
-       (void) sk;
-       if (is_daytime_nil(*s)) {
-               *res = lng_nil;
-               return MAL_SUCCEED;
-       }
+       str msg = MAL_SUCCEED;
+       lng *restrict ret = NULL, multiplier = 1, divider = 1;
+       int tpe = getArgType(mb, pci, 1), k = 
digits2ek(*getArgReference_int(stk, pci, 2));
+       bool is_a_bat = false;
+       BAT *b = NULL, *res = NULL;
+       bat *r;
+       BUN q = 0;
+
+       (void) cntxt;
+       is_a_bat = isaBatType(tpe);
+       if (is_a_bat) {
+               tpe = getBatType(tpe);
+               if (!(b = BATdescriptor(*getArgReference_bat(stk, pci, 1)))) {
+                       msg = createException(SQL, 
"calc.second_interval_daytime", SQLSTATE(HY005) "Cannot access column 
descriptor");
+                       goto bailout;
+               }
+               q = BATcount(b);
+               if (!(res = COLnew(b->hseqbase, TYPE_lng, q, TRANSIENT))) {
+                       msg = createException(SQL, 
"calc.second_interval_daytime", SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                       goto bailout;
+               }
+               r = getArgReference_bat(stk, pci, 0);
+               ret = (lng*) Tloc(res, 0);
+       } else {
+               ret = getArgReference_lng(stk, pci, 0);
+       }
+
        switch (k) {
        case isec:
                break;
        case imin:
-               r /= 60000;
-               r *= 60000;
+               divider *= 60000;
+               multiplier *= 60000;
                break;
        case ihour:
-               r /= 3600000;
-               r *= 3600000;
+               divider *= 3600000;
+               multiplier *= 3600000;
                break;
        case iday:
-               r /= (24 * 3600000);
-               r *= (24 * 3600000);
+               divider *= (24 * 3600000);
+               multiplier *= (24 * 3600000);
                break;
-       default:
-               throw(ILLARG, "calc.second_interval", SQLSTATE(42000) "Illegal 
argument in daytime interval");
-       }
-       *res = r;
-       return MAL_SUCCEED;
+       default: {
+               msg = createException(ILLARG, "calc.second_interval_daytime", 
SQLSTATE(42000) "Illegal argument in daytime interval");
+               goto bailout;
+       }
+       }
+
+       if (is_a_bat) {
+               daytime *restrict vals = (daytime*) Tloc(b, 0);
+               for (BUN i = 0 ; i < q ; i++) {
+                       daytime next = vals[i];
+                       ret[i] = is_daytime_nil(next) ? lng_nil : (next / 
divider) * multiplier;
+               }
+       } else {
+               daytime next = *(daytime*)getArgReference(stk, pci, 1);
+               *ret = is_daytime_nil(next) ? lng_nil : (next / divider) * 
multiplier;
+       }
+
+bailout:
+       if (res && !msg) {
+               BATsetcount(res, q);
+               res->tnil = b->tnil;
+               res->tnonil = b->tnonil;
+               res->tkey = BATcount(res) <= 1;
+               res->tsorted = BATcount(res) <= 1;
+               res->trevsorted = BATcount(res) <= 1;
+               BBPkeepref(*r = res->batCacheid);
+       } else if (res)
+               BBPreclaim(res);
+       if (b)
+               BBPunfix(b->batCacheid);
+       return msg;
 }
 
 str
@@ -6339,10 +6438,14 @@ static mel_func sql_init_funcs[] = {
  pattern("sql", "drop_hash", SQLdrop_hash, true, "Drop hash indices for the 
given table", args(0,2, arg("sch",str),arg("tbl",str))),
  pattern("sql", "prelude", SQLprelude, false, "", noargs),
  command("sql", "epilogue", SQLepilogue, false, "", noargs),
- command("calc", "second_interval", second_interval_daytime, false, "cast 
daytime to a second_interval and check for overflow", args(1,4, 
arg("",lng),arg("v",daytime),arg("ek",int),arg("sk",int))),
- command("calc", "daytime", second_interval_2_daytime, false, "cast 
second_interval to a daytime and check for overflow", args(1,3, 
arg("",daytime),arg("v",lng),arg("d",int))),
+ pattern("calc", "second_interval", second_interval_daytime, false, "cast 
daytime to a second_interval and check for overflow", args(1,4, 
arg("",lng),arg("v",daytime),arg("ek",int),arg("sk",int))),
+ pattern("batcalc", "second_interval", second_interval_daytime, false, "cast 
daytime to a second_interval and check for overflow", args(1,4, 
batarg("",lng),batarg("v",daytime),arg("ek",int),arg("sk",int))),
+ pattern("calc", "daytime", second_interval_2_daytime, false, "cast 
second_interval to a daytime and check for overflow", args(1,3, 
arg("",daytime),arg("v",lng),arg("d",int))),
+ pattern("batcalc", "daytime", second_interval_2_daytime, false, "cast 
second_interval to a daytime and check for overflow", args(1,3, 
batarg("",daytime),batarg("v",lng),arg("d",int))),
  command("calc", "daytime", timestamp_2_daytime, false, "cast timestamp to a 
daytime and check for overflow", args(1,3, 
arg("",daytime),arg("v",timestamp),arg("d",int))),
+ command("batcalc", "daytime", battimestamp_2_daytime, false, "cast timestamp 
to a daytime and check for overflow", args(1,3, 
batarg("",daytime),batarg("v",timestamp),arg("d",int))),
  command("calc", "timestamp", date_2_timestamp, false, "cast date to a 
timestamp and check for overflow", args(1,3, 
arg("",timestamp),arg("v",date),arg("d",int))),
+ command("batcalc", "timestamp", batdate_2_timestamp, false, "cast date to a 
timestamp and check for overflow", args(1,3, 
batarg("",timestamp),batarg("v",date),arg("d",int))),
  command("calc", "index", STRindex_bte, false, "Return the offsets as an index 
bat", args(1,3, arg("",bte),arg("v",str),arg("u",bit))),
  command("batcalc", "index", BATSTRindex_bte, false, "Return the offsets as an 
index bat", args(1,3, batarg("",bte),batarg("v",str),arg("u",bit))),
  command("calc", "index", STRindex_sht, false, "Return the offsets as an index 
bat", args(1,3, arg("",sht),arg("v",str),arg("u",bit))),
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -282,7 +282,7 @@ sql5_export str SQLbat_alpha_cst(bat *re
 sql5_export str SQLcst_alpha_bat(bat *res, const dbl *decl, const bat *theta);
 sql5_export str month_interval(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to