Changeset: ecf3ab8f1ad8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ecf3ab8f1ad8
Modified Files:
        monetdb5/modules/atoms/mtime.c
        sql/backends/monet5/UDF/pyapi3/conversion3.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql_cast.c
        sql/backends/monet5/sql_cast.h
        sql/backends/monet5/sql_cast_impl_int.h
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_time.c
        sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
        
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
        
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out.single
        sql/test/miscellaneous/Tests/simple_plans.stable.out
        sql/test/miscellaneous/Tests/simple_plans.stable.out.single
Branch: clean-candidates
Log Message:

First iteration to clean candidate lists on cast operations. The function 
version without a candidate is no longer needed


diffs (truncated from 1335 to 300 lines):

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
@@ -170,10 +170,19 @@ bailout:                                                  
                                                                        \
                BBPkeepref(*ret = bn->batCacheid);                              
                                \
        return msg;                                                             
                                                        \
 }
-#define func1_cand(NAMEBULK, MALFUNC, INTYPE, OUTTYPE, FUNC, SETFLAGS, 
FUNC_CALL, DEC_SRC, \
+#define func1_cand(NAME, MALFUNC, INTYPE, OUTTYPE, FUNC, SETFLAGS, FUNC_CALL, 
DEC_SRC, \
                                   DEC_OUTPUT, INIT_SRC, INIT_OUTPUT, 
GET_NEXT_SRC)             \
 static str                                                                     
                                                        \
-NAMEBULK##_cand(bat *ret, const bat *bid, const bat *sid)                      
        \
+NAME(OUTTYPE *ret, const INTYPE *src)                                          
                        \
+{                                                                              
                                                                \
+       str msg = MAL_SUCCEED;                                                  
                                        \
+       do {                                                                    
                                                        \
+               FUNC_CALL(FUNC, (*ret), *src);                                  
                                \
+       } while (0);                                                            
                                                \
+       return msg;                                                             
                                                        \
+}                                                                              
                                                                \
+static str                                                                     
                                                        \
+NAME##_bulk(bat *ret, const bat *bid, const bat *sid)                          
        \
 {                                                                              
                                                                \
        str msg = MAL_SUCCEED;                                                  
                                        \
        BAT *b1 = NULL, *s = NULL, *bn = NULL;                                  
                        \
@@ -633,20 +642,14 @@ date_fromstr_func(date *ret, str s)
                throw(MAL, "mtime.date_fromstr", GDK_EXCEPTION);
        return MAL_SUCCEED;
 }
-func1(MTIMEdate_fromstr, MTIMEdate_fromstr_bulk, "date_fromstr", str, date, 
date_fromstr_func, SETFLAGS, func1_except, \
-         DEC_ITER, DEC_VAR_R, INIT_ITER, INIT_VAR, GET_NEXT_ITER)
-func1_cand(MTIMEdate_fromstr_bulk, "date_fromstr", str, date, 
date_fromstr_func, SETFLAGS, func1_except, \
+func1_cand(MTIMEdate_fromstr, "date_fromstr", str, date, date_fromstr_func, 
SETFLAGS, func1_except, \
          DEC_ITER, DEC_VAR_R, INIT_ITER, INIT_VAR, GET_NEXT_ITER_CAND)
 
 #define date_date(m) m
-func1(MTIMEdate_date, MTIMEdate_date_bulk, "date_date", date, date, date_date, 
COPYFLAGS, func1_noexcept, \
-         DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEdate_date_bulk, "date_date", date, date, date_date, COPYFLAGS, 
func1_noexcept, \
+func1_cand(MTIMEdate_date, "date_date", date, date, date_date, COPYFLAGS, 
func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
-func1(MTIMEtimestamp_extract_date, MTIMEtimestamp_extract_date_bulk, "date", 
timestamp, date, timestamp_date, COPYFLAGS, func1_noexcept, \
-         DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEtimestamp_extract_date_bulk, "date", timestamp, date, 
timestamp_date, COPYFLAGS, func1_noexcept, \
+func1_cand(MTIMEtimestamp_extract_date, "date", timestamp, date, 
timestamp_date, COPYFLAGS, func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
 static inline str
@@ -656,21 +659,15 @@ timestamp_fromstr_func(timestamp *ret, s
                throw(MAL, "mtime.timestamp_fromstr", GDK_EXCEPTION);
        return MAL_SUCCEED;
 }
-func1(MTIMEtimestamp_fromstr, MTIMEtimestamp_fromstr_bulk, 
"timestamp_fromstr", str, timestamp, timestamp_fromstr_func, SETFLAGS, 
func1_except, \
-         DEC_ITER, DEC_VAR_R, INIT_ITER, INIT_VAR, GET_NEXT_ITER)
-func1_cand(MTIMEtimestamp_fromstr_bulk, "timestamp_fromstr", str, timestamp, 
timestamp_fromstr_func, SETFLAGS, func1_except, \
+func1_cand(MTIMEtimestamp_fromstr, "timestamp_fromstr", str, timestamp, 
timestamp_fromstr_func, SETFLAGS, func1_except, \
          DEC_ITER, DEC_VAR_R, INIT_ITER, INIT_VAR, GET_NEXT_ITER_CAND)
 
 #define timestamp_timestamp(m) m
-func1(MTIMEtimestamp_timestamp, MTIMEtimestamp_timestamp_bulk, 
"timestamp_timestamp", timestamp, timestamp, timestamp_timestamp, COPYFLAGS, 
func1_noexcept, \
-         DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEtimestamp_timestamp_bulk, "timestamp_timestamp", timestamp, 
timestamp, timestamp_timestamp, COPYFLAGS, func1_noexcept, \
+func1_cand(MTIMEtimestamp_timestamp, "timestamp_timestamp", timestamp, 
timestamp, timestamp_timestamp, COPYFLAGS, func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
 #define mkts(dt)       timestamp_create(dt, daytime_create(0, 0, 0, 0))
-func1(MTIMEtimestamp_fromdate, MTIMEtimestamp_fromdate_bulk, 
"timestamp_fromdate", date, timestamp, mkts, COPYFLAGS, func1_noexcept, \
-         DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEtimestamp_fromdate_bulk, "timestamp_fromdate", date, 
timestamp, mkts, COPYFLAGS, func1_noexcept, \
+func1_cand(MTIMEtimestamp_fromdate, "timestamp_fromdate", date, timestamp, 
mkts, COPYFLAGS, func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
 #define seconds_since_epoch(t) is_timestamp_nil(t) ? int_nil : (int) 
(timestamp_diff(t, unixepoch) / 1000000);
@@ -685,13 +682,15 @@ func1(MTIMEseconds_since_epoch, MTIMEsec
                                                         timestamp_nil :        
                                                \
                                                         
timestamp_add_usec(unixepoch,                          \
                                                                                
                (msec) * LL_CONSTANT(1000)))
-func1(MTIMEtimestamp_fromsecond, MTIMEtimestamp_fromsecond_bulk, 
"timestamp_fromsecond", int, timestamp, mktsfromsec, COPYFLAGS, func1_noexcept, 
\
+/* TODO later I have to remove this call */
+func1(MTIMEtimestamp_fromsecond_epoch, MTIMEtimestamp_fromsecond_epoch_bulk, 
"timestamp_fromsecond_epoch", int, timestamp, mktsfromsec, COPYFLAGS, 
func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEtimestamp_fromsecond_bulk, "timestamp_fromsecond", int, 
timestamp, mktsfromsec, COPYFLAGS, func1_noexcept, \
+func1_cand(MTIMEtimestamp_fromsecond, "timestamp_fromsecond", int, timestamp, 
mktsfromsec, COPYFLAGS, func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
-func1(MTIMEtimestamp_frommsec, MTIMEtimestamp_frommsec_bulk, 
"timestamp_frommsec", lng, timestamp, mktsfrommsec, COPYFLAGS, func1_noexcept, \
+/* TODO later I have to remove this call */
+func1(MTIMEtimestamp_frommsec_epoch, MTIMEtimestamp_frommsec_epoch_bulk, 
"timestamp_frommsec_epoch", lng, timestamp, mktsfrommsec, COPYFLAGS, 
func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEtimestamp_frommsec_bulk, "timestamp_frommsec", lng, timestamp, 
mktsfrommsec, COPYFLAGS, func1_noexcept, \
+func1_cand(MTIMEtimestamp_frommsec, "timestamp_frommsec", lng, timestamp, 
mktsfrommsec, COPYFLAGS, func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
 static inline str
@@ -701,15 +700,11 @@ daytime_fromstr_func(daytime *ret, str s
                throw(MAL, "mtime.daytime_fromstr", GDK_EXCEPTION);
        return MAL_SUCCEED;
 }
-func1(MTIMEdaytime_fromstr, MTIMEdaytime_fromstr_bulk, "daytime_fromstr", str, 
daytime, daytime_fromstr_func, SETFLAGS, func1_except, \
-         DEC_ITER, DEC_VAR_R, INIT_ITER, INIT_VAR, GET_NEXT_ITER)
-func1_cand(MTIMEdaytime_fromstr_bulk, "daytime_fromstr", str, daytime, 
daytime_fromstr_func, SETFLAGS, func1_except, \
+func1_cand(MTIMEdaytime_fromstr, "daytime_fromstr", str, daytime, 
daytime_fromstr_func, SETFLAGS, func1_except, \
          DEC_ITER, DEC_VAR_R, INIT_ITER, INIT_VAR, GET_NEXT_ITER_CAND)
 
 #define daytime_daytime(m) m
-func1(MTIMEdaytime_daytime, MTIMEdaytime_daytime_bulk, "daytime_daytime", 
daytime, daytime, daytime_daytime, COPYFLAGS, func1_noexcept, \
-         DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEdaytime_daytime_bulk, "daytime_daytime", daytime, daytime, 
daytime_daytime, COPYFLAGS, func1_noexcept, \
+func1_cand(MTIMEdaytime_daytime, "daytime_daytime", daytime, daytime, 
daytime_daytime, COPYFLAGS, func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
 static inline str
@@ -723,14 +718,10 @@ daytime_fromseconds(daytime *ret, const 
                *ret = (daytime) (secs * 1000000);
        return MAL_SUCCEED;
 }
-func1(MTIMEdaytime_fromseconds, MTIMEdaytime_fromseconds_bulk, 
"daytime_fromseconds", lng, daytime, daytime_fromseconds, COPYFLAGS, 
func1_except, \
-         DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEdaytime_fromseconds_bulk, "daytime_fromseconds", lng, daytime, 
daytime_fromseconds, COPYFLAGS, func1_except, \
+func1_cand(MTIMEdaytime_fromseconds, "daytime_fromseconds", lng, daytime, 
daytime_fromseconds, COPYFLAGS, func1_except, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
-func1(MTIMEtimestamp_extract_daytime, MTIMEtimestamp_extract_daytime_bulk, 
"timestamp_extract_daytime", timestamp, daytime, timestamp_daytime, SETFLAGS, 
func1_noexcept, \
-         DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR)
-func1_cand(MTIMEtimestamp_extract_daytime_bulk, "timestamp_extract_daytime", 
timestamp, daytime, timestamp_daytime, SETFLAGS, func1_noexcept, \
+func1_cand(MTIMEtimestamp_extract_daytime, "timestamp_extract_daytime", 
timestamp, daytime, timestamp_daytime, SETFLAGS, func1_noexcept, \
          DEC_VAR_R, DEC_VAR_R, INIT_VAR, INIT_VAR, GET_NEXT_VAR_CAND)
 
 /* return current system time zone offset in seconds East of Greenwich */
@@ -948,10 +939,10 @@ func2(MTIMEtimestamp_to_str, MTIMEtimest
 static mel_func mtime_init_funcs[] = {
  command("mtime", "epoch", MTIMEseconds_since_epoch, false, "unix-time (epoch) 
support: seconds since epoch", args(1,2, arg("",int),arg("t",timestamp))),
  command("batmtime", "epoch", MTIMEseconds_since_epoch_bulk, false, "", 
args(1,2, batarg("",int),batarg("t",timestamp))),
- command("mtime", "epoch", MTIMEtimestamp_fromsecond, false, "convert seconds 
since epoch into a timestamp", args(1,2, arg("",timestamp),arg("t",int))),
- command("batmtime", "epoch", MTIMEtimestamp_fromsecond_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("t",int))),
- command("mtime", "epoch", MTIMEtimestamp_frommsec, false, "convert milli 
seconds since epoch into a timestamp", args(1,2, 
arg("",timestamp),arg("t",lng))),
- command("batmtime", "epoch", MTIMEtimestamp_frommsec_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("t",lng))),
+ command("mtime", "epoch", MTIMEtimestamp_fromsecond_epoch, false, "convert 
seconds since epoch into a timestamp", args(1,2, 
arg("",timestamp),arg("t",int))),
+ command("batmtime", "epoch", MTIMEtimestamp_fromsecond_epoch_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("t",int))),
+ command("mtime", "epoch", MTIMEtimestamp_frommsec_epoch, false, "convert 
milli seconds since epoch into a timestamp", args(1,2, 
arg("",timestamp),arg("t",lng))),
+ command("batmtime", "epoch", MTIMEtimestamp_frommsec_epoch_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("t",lng))),
  command("mtime", "date_sub_msec_interval", MTIMEdate_sub_msec_interval, 
false, "", args(1,3, arg("",date),arg("t",date),arg("ms",lng))),
  command("batmtime", "date_sub_msec_interval", 
MTIMEdate_sub_msec_interval_bulk, false, "", args(1,3, 
batarg("",date),batarg("t",date),batarg("ms",lng))),
  command("batmtime", "date_sub_msec_interval", 
MTIMEdate_sub_msec_interval_bulk_p1, false, "", args(1,3, 
batarg("",date),arg("t",date),batarg("ms",lng))),
@@ -1098,30 +1089,18 @@ static mel_func mtime_init_funcs[] = {
  command("calc", "daytime", MTIMEdaytime_daytime, false, "", args(1,2, 
arg("",daytime),arg("d",daytime))),
  command("calc", "daytime", MTIMEdaytime_fromseconds, false, "", args(1,2, 
arg("",daytime),arg("s",lng))),
  command("calc", "daytime", MTIMEtimestamp_extract_daytime, false, "", 
args(1,2, arg("",daytime),arg("t",timestamp))),
- command("batcalc", "date", MTIMEdate_fromstr_bulk, false, "", args(1,2, 
batarg("",date),batarg("s",str))),
- command("batcalc", "date", MTIMEdate_fromstr_bulk_cand, false, "", args(1,3, 
batarg("",date),batarg("s",str),batarg("s",oid))),
- command("batcalc", "date", MTIMEdate_date_bulk, false, "", args(1,2, 
batarg("",date),batarg("d",date))),
- command("batcalc", "date", MTIMEdate_date_bulk_cand, false, "", args(1,3, 
batarg("",date),batarg("d",date),batarg("s",oid))),
- command("batcalc", "date", MTIMEtimestamp_extract_date_bulk, false, "", 
args(1,2, batarg("",date),batarg("t",timestamp))),
- command("batcalc", "date", MTIMEtimestamp_extract_date_bulk_cand, false, "", 
args(1,3, batarg("",date),batarg("t",timestamp),batarg("s",oid))),
- command("batcalc", "timestamp", MTIMEtimestamp_fromstr_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("s",str))),
- command("batcalc", "timestamp", MTIMEtimestamp_fromstr_bulk_cand, false, "", 
args(1,3, batarg("",timestamp),batarg("s",str),batarg("s",oid))),
- command("batcalc", "timestamp", MTIMEtimestamp_timestamp_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("t",timestamp))),
- command("batcalc", "timestamp", MTIMEtimestamp_timestamp_bulk_cand, false, 
"", args(1,3, batarg("",timestamp),batarg("t",timestamp),batarg("s",oid))),
- command("batcalc", "timestamp", MTIMEtimestamp_fromdate_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("d",date))),
- command("batcalc", "timestamp", MTIMEtimestamp_fromdate_bulk_cand, false, "", 
args(1,3, batarg("",timestamp),batarg("d",date),batarg("s",oid))),
- command("batcalc", "timestamp", MTIMEtimestamp_fromsecond_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("secs",int))),
- command("batcalc", "timestamp", MTIMEtimestamp_fromsecond_bulk_cand, false, 
"", args(1,3, batarg("",timestamp),batarg("secs",int),batarg("s",oid))),
- command("batcalc", "timestamp", MTIMEtimestamp_frommsec_bulk, false, "", 
args(1,2, batarg("",timestamp),batarg("msecs",lng))),
- command("batcalc", "timestamp", MTIMEtimestamp_frommsec_bulk_cand, false, "", 
args(1,3, batarg("",timestamp),batarg("msecs",lng),batarg("s",oid))),
- command("batcalc", "daytime", MTIMEdaytime_fromstr_bulk, false, "", args(1,2, 
batarg("",daytime),batarg("s",str))),
- command("batcalc", "daytime", MTIMEdaytime_fromstr_bulk_cand, false, "", 
args(1,3, batarg("",daytime),batarg("s",str),batarg("s",oid))),
- command("batcalc", "daytime", MTIMEdaytime_daytime_bulk, false, "", args(1,2, 
batarg("",daytime),batarg("d",daytime))),
- command("batcalc", "daytime", MTIMEdaytime_daytime_bulk_cand, false, "", 
args(1,3, batarg("",daytime),batarg("d",daytime),batarg("s",oid))),
- command("batcalc", "daytime", MTIMEdaytime_fromseconds_bulk, false, "", 
args(1,2, batarg("",daytime),batarg("s",lng))),
- command("batcalc", "daytime", MTIMEdaytime_fromseconds_bulk_cand, false, "", 
args(1,3, batarg("",daytime),batarg("s",lng),batarg("s",oid))),
- command("batcalc", "daytime", MTIMEtimestamp_extract_daytime_bulk, false, "", 
args(1,2, batarg("",daytime),batarg("t",timestamp))),
- command("batcalc", "daytime", MTIMEtimestamp_extract_daytime_bulk_cand, 
false, "", args(1,3, batarg("",daytime),batarg("t",timestamp),batarg("s",oid))),
+ command("batcalc", "date", MTIMEdate_fromstr_bulk, false, "", args(1,3, 
batarg("",date),batarg("s",str),batarg("s",oid))),
+ command("batcalc", "date", MTIMEdate_date_bulk, false, "", args(1,3, 
batarg("",date),batarg("d",date),batarg("s",oid))),
+ command("batcalc", "date", MTIMEtimestamp_extract_date_bulk, false, "", 
args(1,3, batarg("",date),batarg("t",timestamp),batarg("s",oid))),
+ command("batcalc", "timestamp", MTIMEtimestamp_fromstr_bulk, false, "", 
args(1,3, batarg("",timestamp),batarg("s",str),batarg("s",oid))),
+ command("batcalc", "timestamp", MTIMEtimestamp_timestamp_bulk, false, "", 
args(1,3, batarg("",timestamp),batarg("t",timestamp),batarg("s",oid))),
+ command("batcalc", "timestamp", MTIMEtimestamp_fromdate_bulk, false, "", 
args(1,3, batarg("",timestamp),batarg("d",date),batarg("s",oid))),
+ command("batcalc", "timestamp", MTIMEtimestamp_fromsecond_bulk, false, "", 
args(1,3, batarg("",timestamp),batarg("secs",int),batarg("s",oid))),
+ command("batcalc", "timestamp", MTIMEtimestamp_frommsec_bulk, false, "", 
args(1,3, batarg("",timestamp),batarg("msecs",lng),batarg("s",oid))),
+ command("batcalc", "daytime", MTIMEdaytime_fromstr_bulk, false, "", args(1,3, 
batarg("",daytime),batarg("s",str),batarg("s",oid))),
+ command("batcalc", "daytime", MTIMEdaytime_daytime_bulk, false, "", args(1,3, 
batarg("",daytime),batarg("d",daytime),batarg("s",oid))),
+ command("batcalc", "daytime", MTIMEdaytime_fromseconds_bulk, false, "", 
args(1,3, batarg("",daytime),batarg("s",lng),batarg("s",oid))),
+ command("batcalc", "daytime", MTIMEtimestamp_extract_daytime_bulk, false, "", 
args(1,3, batarg("",daytime),batarg("t",timestamp),batarg("s",oid))),
  { .imp=NULL }
 };
 #include "mal_import.h"
diff --git a/sql/backends/monet5/UDF/pyapi3/conversion3.c 
b/sql/backends/monet5/UDF/pyapi3/conversion3.c
--- a/sql/backends/monet5/UDF/pyapi3/conversion3.c
+++ b/sql/backends/monet5/UDF/pyapi3/conversion3.c
@@ -1115,20 +1115,20 @@ str ConvertFromSQLType(BAT *b, sql_subty
                // numeric field and convert the one it's actually stored in
                switch (bat_type) {
                        case TYPE_bte:
-                               res = batbte_dec2_dbl(&result, &hpos, 
&b->batCacheid);
+                               res = batbte_dec2_dbl(&result, &hpos, 
&b->batCacheid, NULL);
                                break;
                        case TYPE_sht:
-                               res = batsht_dec2_dbl(&result, &hpos, 
&b->batCacheid);
+                               res = batsht_dec2_dbl(&result, &hpos, 
&b->batCacheid, NULL);
                                break;
                        case TYPE_int:
-                               res = batint_dec2_dbl(&result, &hpos, 
&b->batCacheid);
+                               res = batint_dec2_dbl(&result, &hpos, 
&b->batCacheid, NULL);
                                break;
                        case TYPE_lng:
-                               res = batlng_dec2_dbl(&result, &hpos, 
&b->batCacheid);
+                               res = batlng_dec2_dbl(&result, &hpos, 
&b->batCacheid, NULL);
                                break;
 #ifdef HAVE_HGE
                        case TYPE_hge:
-                               res = bathge_dec2_dbl(&result, &hpos, 
&b->batCacheid);
+                               res = bathge_dec2_dbl(&result, &hpos, 
&b->batCacheid, NULL);
                                break;
 #endif
                        default:
@@ -1160,16 +1160,16 @@ str ConvertToSQLType(Client cntxt, BAT *
 
        switch (sql_subtype->type->eclass) {
                case EC_TIMESTAMP:
-                       res = batstr_2time_timestamp(&result_bat, 
&b->batCacheid, &digits);
+                       res = batstr_2time_timestamp(&result_bat, 
&b->batCacheid, NULL, &digits);
                        break;
                case EC_TIME:
-                       res = batstr_2time_daytime(&result_bat, &b->batCacheid, 
&digits);
+                       res = batstr_2time_daytime(&result_bat, &b->batCacheid, 
NULL, &digits);
                        break;
                case EC_DATE:
-                       res = batstr_2_date(&result_bat, &b->batCacheid);
+                       res = batstr_2_date(&result_bat, &b->batCacheid, NULL);
                        break;
                case EC_DEC:
-                       res = batdbl_num2dec_lng(&result_bat, &b->batCacheid,
+                       res = batdbl_num2dec_lng(&result_bat, &b->batCacheid, 
NULL,
                                                                         
&digits, &scale);
                        break;
                default:
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
@@ -5600,28 +5600,24 @@ 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))),
- 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))),
- 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))),
- 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))),
- 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))),
@@ -5639,22 +5635,18 @@ 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))),
- 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))),
- 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))),
- 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))),
- 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))),
@@ -5662,22 +5654,15 @@ static mel_func sql_init_funcs[] = {
  pattern("calc", "timestamp", str_2time_timestamp, false, "cast to timestamp 
and check for overflow", args(1,3, 
arg("",timestamp),arg("v",str),arg("digits",int))),
  pattern("calc", "timestamp", str_2time_timestamptz, false, "cast to timestamp 
and check for overflow", args(1,4, 
arg("",timestamp),arg("v",str),arg("digits",int),arg("has_tz",int))),
  pattern("calc", "timestamp", timestamp_2time_timestamp, false, "cast 
timestamp to timestamp and check for overflow", args(1,3, 
arg("",timestamp),arg("v",timestamp),arg("digits",int))),
- command("batcalc", "timestamp", batstr_2time_timestamp, false, "cast to 
timestamp and check for overflow", args(1,3, 
batarg("",timestamp),batarg("v",str),arg("digits",int))),
- command("batcalc", "timestamp", batstr_2time_timestamp_cand, false, "cast to 
timestamp and check for overflow", args(1,4, 
batarg("",timestamp),batarg("v",str),batarg("s",oid),arg("digits",int))),
- command("batcalc", "timestamp", batstr_2time_timestamptz, false, "cast to 
timestamp and check for overflow", args(1,4, 
batarg("",timestamp),batarg("v",str),arg("digits",int),arg("has_tz",int))),
- command("batcalc", "timestamp", batstr_2time_timestamptz_cand, false, "cast 
to timestamp and check for overflow", args(1,5, 
batarg("",timestamp),batarg("v",str),batarg("s",oid),arg("digits",int),arg("has_tz",int))),
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to