Changeset: 9c31eda7800d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9c31eda7800d
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.mal
        sql/backends/monet5/sql_cast.c
        sql/backends/monet5/sql_time.c
Branch: default
Log Message:

More code cleanup, removed unused backend calls on date/time types


diffs (truncated from 948 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
@@ -4573,10 +4573,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:date]):bat[:date] ",     
"MTIMEdate_date_bulk;", ""      ]
 [ "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[:oid]):bat[:date] ",      
"batnil_2_date;",       ""      ]
-[ "batcalc",   "date", "command batcalc.date(X_1:bat[:oid], 
X_2:bat[:bit]):bat[:date] ",       "batnil_ce_2_date;",    ""      ]
 [ "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[:bit]):bat[:date] ",       "batstr_ce_2_date;",    ""      ]
+[ "batcalc",   "date", "pattern batcalc.date(X_1:bat[:oid]):bat[:date] ",      
"nil_2_date;",  ""      ]
+[ "batcalc",   "date", "pattern batcalc.date(X_1:bat[:oid], 
X_2:bat[:bit]):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;",   ""      ]
@@ -8611,8 +8611,8 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "date", "command calc.date(X_1:date):date ",    
"MTIMEdate_date;",      ""      ]
 [ "calc",      "date", "command calc.date(X_1:str):date ",     
"MTIMEdate_fromstr;",   ""      ]
 [ "calc",      "date", "command calc.date(X_1:timestamp):date ",       
"MTIMEtimestamp_extract_date;", ""      ]
-[ "calc",      "date", "command calc.date(X_1:void):date ",    "nil_2_date;",  
""      ]
-[ "calc",      "date", "command calc.date(X_1:str):date ",     "str_2_date;",  
""      ]
+[ "calc",      "date", "pattern calc.date(X_1:void):date ",    "nil_2_date;",  
""      ]
+[ "calc",      "date", "pattern calc.date(X_1:str):date ",     "str_2_date;",  
""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:daytime):daytime ",   
"MTIMEdaytime_daytime;",        ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:lng):daytime ",       
"MTIMEdaytime_fromseconds;",    ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:str):daytime ",       
"MTIMEdaytime_fromstr;",        ""      ]
@@ -9088,7 +9088,6 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "sign", "pattern calc.sign(X_1:sht):bte ",      "CMDvarSIGN;",  
""      ]
 [ "calc",      "str",  "pattern calc.str(X_1:any):str ",       
"CMDvarCONVERT;",       ""      ]
 [ "calc",      "str",  "command calc.str(X_1:blob):str ",      
"SQLblob_2_str;",       ""      ]
-[ "calc",      "str",  "command calc.str(X_1:date):str ",      
"SQLdate_2_str;",       ""      ]
 [ "calc",      "str",  "pattern calc.str(X_1:int, X_2:int, X_3:int, X_4:int, 
X_5:any_1, X_6:int):str ",        "SQLstr_cast;", ""      ]
 [ "calc",      "str",  "command calc.str(X_1:uuid):str ",      
"UUIDuuid2str;",        ""      ]
 [ "calc",      "strings",      "command calc.strings(X_1:str):str ",   
"STRstrings;",  ""      ]
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
@@ -6272,10 +6272,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "date", "command batcalc.date(X_1:bat[:date]):bat[:date] ",     
"MTIMEdate_date_bulk;", ""      ]
 [ "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[:oid]):bat[:date] ",      
"batnil_2_date;",       ""      ]
-[ "batcalc",   "date", "command batcalc.date(X_1:bat[:oid], 
X_2:bat[:bit]):bat[:date] ",       "batnil_ce_2_date;",    ""      ]
 [ "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[:bit]):bat[:date] ",       "batstr_ce_2_date;",    ""      ]
+[ "batcalc",   "date", "pattern batcalc.date(X_1:bat[:oid]):bat[:date] ",      
"nil_2_date;",  ""      ]
+[ "batcalc",   "date", "pattern batcalc.date(X_1:bat[:oid], 
X_2:bat[:bit]):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;",   ""      ]
@@ -11727,8 +11727,8 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "date", "command calc.date(X_1:date):date ",    
"MTIMEdate_date;",      ""      ]
 [ "calc",      "date", "command calc.date(X_1:str):date ",     
"MTIMEdate_fromstr;",   ""      ]
 [ "calc",      "date", "command calc.date(X_1:timestamp):date ",       
"MTIMEtimestamp_extract_date;", ""      ]
-[ "calc",      "date", "command calc.date(X_1:void):date ",    "nil_2_date;",  
""      ]
-[ "calc",      "date", "command calc.date(X_1:str):date ",     "str_2_date;",  
""      ]
+[ "calc",      "date", "pattern calc.date(X_1:void):date ",    "nil_2_date;",  
""      ]
+[ "calc",      "date", "pattern calc.date(X_1:str):date ",     "str_2_date;",  
""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:daytime):daytime ",   
"MTIMEdaytime_daytime;",        ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:lng):daytime ",       
"MTIMEdaytime_fromseconds;",    ""      ]
 [ "calc",      "daytime",      "command calc.daytime(X_1:str):daytime ",       
"MTIMEdaytime_fromstr;",        ""      ]
@@ -12413,7 +12413,6 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "sign", "pattern calc.sign(X_1:sht):bte ",      "CMDvarSIGN;",  
""      ]
 [ "calc",      "str",  "pattern calc.str(X_1:any):str ",       
"CMDvarCONVERT;",       ""      ]
 [ "calc",      "str",  "command calc.str(X_1:blob):str ",      
"SQLblob_2_str;",       ""      ]
-[ "calc",      "str",  "command calc.str(X_1:date):str ",      
"SQLdate_2_str;",       ""      ]
 [ "calc",      "str",  "pattern calc.str(X_1:int, X_2:int, X_3:int, X_4:int, 
X_5:any_1, X_6:int):str ",        "SQLstr_cast;", ""      ]
 [ "calc",      "str",  "command calc.str(X_1:uuid):str ",      
"UUIDuuid2str;",        ""      ]
 [ "calc",      "strings",      "command calc.strings(X_1:str):str ",   
"STRstrings;",  ""      ]
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
@@ -5717,13 +5717,12 @@ static mel_func sql_init_funcs[] = {
  command("sql", "date_trunc", date_trunc, false, "Truncate a timestamp to 
(millennium, century,decade,year,quarter,month,week,day,hour,minute,second, 
milliseconds,microseconds)", args(1,3, 
arg("",timestamp),arg("scale",str),arg("v",timestamp))),
  pattern("sql", "current_time", SQLcurrent_daytime, false, "Get the clients 
current daytime", args(1,1, arg("",daytime))),
  pattern("sql", "current_timestamp", SQLcurrent_timestamp, false, "Get the 
clients current timestamp", args(1,1, arg("",timestamp))),
- command("calc", "date", nil_2_date, false, "cast to date", args(1,2, 
arg("",date),arg("v",void))),
- command("batcalc", "date", batnil_2_date, false, "cast to date", args(1,2, 
batarg("",date),batarg("v",oid))),
- command("batcalc", "date", batnil_ce_2_date, false, "cast to date", args(1,3, 
batarg("",date),batarg("v",oid),batarg("r",bit))),
- command("calc", "date", str_2_date, false, "cast to date", args(1,2, 
arg("",date),arg("v",str))),
+ pattern("calc", "date", nil_2_date, false, "cast to date", args(1,2, 
arg("",date),arg("v",void))),
+ pattern("batcalc", "date", nil_2_date, false, "cast to date", args(1,2, 
batarg("",date),batarg("v",oid))),
+ pattern("batcalc", "date", nil_2_date, false, "cast to date", args(1,3, 
batarg("",date),batarg("v",oid),batarg("r",bit))),
+ pattern("calc", "date", str_2_date, false, "cast to date", args(1,2, 
arg("",date),arg("v",str))),
  command("batcalc", "date", batstr_2_date, false, "cast to date", args(1,2, 
batarg("",date),batarg("v",str))),
  command("batcalc", "date", batstr_ce_2_date, false, "cast to date", args(1,3, 
batarg("",date),batarg("v",str),batarg("r",bit))),
- command("calc", "str", SQLdate_2_str, false, "cast date to str", args(1,2, 
arg("",str),arg("v",date))),
  command("calc", "blob", str_2_blob, false, "cast to blob", args(1,2, 
arg("",blob),arg("v",str))),
  command("batcalc", "blob", batstr_2_blob, false, "cast to blob", args(1,2, 
batarg("",blob),batarg("v",str))),
  command("batcalc", "blob", batstr_ce_2_blob, false, "cast to blob", args(1,3, 
batarg("",blob),batarg("v",str),batarg("r",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
@@ -226,26 +226,13 @@ sql5_export str str_2time_daytimetz(Clie
 sql5_export str batstr_2time_daytime(bat *res, const bat *v, const int *len);
 sql5_export str daytime_2time_daytime(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
 
-sql5_export str nil_2_timestamp(timestamp *res, const void *val);
-sql5_export str batnil_2_timestamp(bat *res, const bat *val);
-sql5_export str str_2_timestamp(timestamp *res, const str *val);
-sql5_export str batstr_2_timestamp(bat *res, const bat *val);
-
 sql5_export str bat_date_trunc(bat *res, const str *scale, const bat *v);
 sql5_export str date_trunc(timestamp *res, const str *scale, const timestamp 
*v);
 
-sql5_export str nil_2_daytime(daytime *res, const void *val);
-sql5_export str batnil_2_daytime(bat *res, const bat *val);
-sql5_export str str_2_daytime(daytime *res, const str *val);
-sql5_export str batstr_2_daytime(bat *res, const bat *val);
-
-sql5_export str nil_2_date(date *res, const void *val);
-sql5_export str batnil_2_date(bat *res, const bat *val);
-sql5_export str batnil_ce_2_date(bat *res, const bat *val, const bat *r);
-sql5_export str str_2_date(date *res, const str *val);
+sql5_export str nil_2_date(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+sql5_export str str_2_date(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str batstr_2_date(bat *res, const bat *val);
 sql5_export str batstr_ce_2_date(bat *res, const bat *val, const bat *r);
-sql5_export str SQLdate_2_str(str *res, const date *val);
 
 sql5_export str str_2_blob(blob * *res, const str *val);
 sql5_export str batstr_2_blob(bat *res, const bat *val);
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -940,9 +940,6 @@ comment "cast to date";
 command batcalc.date( v:bat[:str], r:bat[:bit] ) :bat[:date] 
 address batstr_ce_2_date
 comment "cast to date";
-command calc.str( v:date ) :str 
-address SQLdate_2_str
-comment "cast date to str";
 
 command calc.blob( v:str ) :blob 
 address str_2_blob
diff --git a/sql/backends/monet5/sql_cast.c b/sql/backends/monet5/sql_cast.c
--- a/sql/backends/monet5/sql_cast.c
+++ b/sql/backends/monet5/sql_cast.c
@@ -8,378 +8,11 @@
 
 #include "monetdb_config.h"
 #include "sql.h"
+#include "sql_cast.h"
 #include "sql_result.h"
-#include "sql_cast.h"
-#include "sql_gencode.h"
-#include "sql_storage.h"
-#include "sql_scenario.h"
-#include "store_sequence.h"
-#include "sql_optimizer.h"
-#include "sql_datetime.h"
-#include "rel_optimizer.h"
-#include "rel_distribute.h"
-#include "rel_select.h"
-#include "rel_exp.h"
-#include "rel_dump.h"
-#include "opt_pipes.h"
-#include "clients.h"
 #include "mal_instruction.h"
 
 str
-nil_2_timestamp(timestamp *res, const void *val)
-{
-       (void) val;
-       *res = timestamp_nil;
-       return MAL_SUCCEED;
-}
-
-str
-str_2_timestamp(timestamp *res, const str *val)
-{
-       ptr p = NULL;
-       size_t len = 0;
-       ssize_t e;
-       char buf[BUFSIZ];
-
-       e = ATOMfromstr(TYPE_timestamp, &p, &len, *val, false);
-       if (e < 0 || !p || (ATOMcmp(TYPE_timestamp, p, 
ATOMnilptr(TYPE_timestamp)) == 0 && ATOMcmp(TYPE_str, *val, 
ATOMnilptr(TYPE_str)) != 0)) {
-               if (p)
-                       GDKfree(p);
-               snprintf(buf, BUFSIZ, "Conversion of string '%s' failed", *val? 
*val:"");
-               throw(SQL, "timestamp", SQLSTATE(42000) "%s", buf);
-       }
-       *res = *(timestamp *) p;
-       if (!ATOMextern(TYPE_timestamp)) {
-               if (p)
-                       GDKfree(p);
-       }
-       return MAL_SUCCEED;
-}
-
-str
-batnil_2_timestamp(bat *res, const bat *bid)
-{
-       BAT *b, *dst;
-       BUN p, q;
-
-       if ((b = BATdescriptor(*bid)) == NULL) {
-               throw(SQL, "batcalc.nil_2_timestamp", SQLSTATE(HY005) "Cannot 
access column descriptor");
-       }
-       dst = COLnew(b->hseqbase, TYPE_timestamp, BATcount(b), TRANSIENT);
-       if (dst == NULL) {
-               BBPunfix(b->batCacheid);
-               throw(SQL, "sql.2_timestamp", SQLSTATE(HY013) MAL_MALLOC_FAIL);
-       }
-       BATloop(b, p, q) {
-               if (BUNappend(dst, &timestamp_nil, false) != GDK_SUCCEED) {
-                       BBPunfix(b->batCacheid);
-                       BBPreclaim(dst);
-                       throw(SQL, "sql.timestamp", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
-               }
-       }
-       BBPkeepref(*res = dst->batCacheid);
-       BBPunfix(b->batCacheid);
-       return MAL_SUCCEED;
-}
-
-str
-batstr_2_timestamp(bat *res, const bat *bid)
-{
-       BAT *b, *dst;
-       BATiter bi;
-       BUN p, q;
-       char *msg = NULL;
-
-       if ((b = BATdescriptor(*bid)) == NULL) {
-               throw(SQL, "batcalc.str_2_timestamp", SQLSTATE(HY005) "Cannot 
access column descriptor");
-       }
-       bi = bat_iterator(b);
-       dst = COLnew(b->hseqbase, TYPE_timestamp, BATcount(b), TRANSIENT);
-       if (dst == NULL) {
-               BBPunfix(b->batCacheid);
-               throw(SQL, "sql.2_timestamp", SQLSTATE(HY013) MAL_MALLOC_FAIL);
-       }
-       BATloop(b, p, q) {
-               str v = (str) BUNtvar(bi, p);
-               timestamp r;
-               msg = str_2_timestamp(&r, &v);
-               if (msg) {
-                       BBPunfix(dst->batCacheid);
-                       BBPunfix(b->batCacheid);
-                       return msg;
-               }
-               if (BUNappend(dst, &r, false) != GDK_SUCCEED) {
-                       BBPunfix(b->batCacheid);
-                       BBPreclaim(dst);
-                       throw(SQL, "sql.timestamp", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
-               }
-       }
-       BBPkeepref(*res = dst->batCacheid);
-       BBPunfix(b->batCacheid);
-       return msg;
-}
-
-str
-nil_2_daytime(daytime *res, const void *val)
-{
-       (void) val;
-       *res = daytime_nil;
-       return MAL_SUCCEED;
-}
-
-str
-str_2_daytime(daytime *res, const str *val)
-{
-       ptr p = NULL;
-       size_t len = 0;
-       ssize_t e;
-       char buf[BUFSIZ];
-
-       e = ATOMfromstr(TYPE_daytime, &p, &len, *val, false);
-       if (e < 0 || !p || (ATOMcmp(TYPE_daytime, p, ATOMnilptr(TYPE_daytime)) 
== 0 && ATOMcmp(TYPE_str, *val, ATOMnilptr(TYPE_str)) != 0)) {
-               if (p)
-                       GDKfree(p);
-               snprintf(buf, BUFSIZ, "Conversion of string '%s' failed", *val? 
*val:"");
-               throw(SQL, "daytime", SQLSTATE(42000) "%s", buf);
-       }
-       *res = *(daytime *) p;
-       if (!ATOMextern(TYPE_daytime)) {
-               if (p)
-                       GDKfree(p);
-       }
-       return MAL_SUCCEED;
-}
-
-str
-batnil_2_daytime(bat *res, const bat *bid)
-{
-       BAT *b, *dst;
-       BUN p, q;
-
-       if ((b = BATdescriptor(*bid)) == NULL) {
-               throw(SQL, "batcalc.nil_2_daytime", SQLSTATE(HY005) "Cannot 
access column descriptor");
-       }
-       dst = COLnew(b->hseqbase, TYPE_daytime, BATcount(b), TRANSIENT);
-       if (dst == NULL) {
-               BBPunfix(b->batCacheid);
-               throw(SQL, "sql.2_daytime", SQLSTATE(HY013) MAL_MALLOC_FAIL);
-       }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to