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

Small cleanup. Removed obsolete SQLblob_2_str function and throw better error 
messages


diffs (123 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
@@ -7424,7 +7424,6 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "sign", "pattern calc.sign(X_1:lng):bte ",      "CMDvarSIGN;",  
""      ]
 [ "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",  "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
@@ -10349,7 +10349,6 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "sign", "pattern calc.sign(X_1:lng):bte ",      "CMDvarSIGN;",  
""      ]
 [ "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",  "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
@@ -5703,7 +5703,6 @@ static mel_func sql_init_funcs[] = {
  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_2_blob_cand, false, "cast to blob", 
args(1,3, batarg("",blob),batarg("v",str),batarg("s",oid))),
- command("calc", "str", SQLblob_2_str, false, "cast blob to str", args(1,2, 
arg("",str),arg("v",blob))),
  pattern("calc", "str", SQLstr_cast, false, "cast to string and check for 
overflow", args(1,7, 
arg("",str),arg("eclass",int),arg("d1",int),arg("s1",int),arg("has_tz",int),argany("v",1),arg("digits",int))),
  pattern("batcalc", "str", SQLbatstr_cast, false, "cast to string and check 
for overflow", args(1,7, 
batarg("",str),arg("eclass",int),arg("d1",int),arg("s1",int),arg("has_tz",int),batargany("v",1),arg("digits",int))),
  pattern("batcalc", "str", SQLbatstr_cast, false, "cast to string and check 
for overflow", args(1,8, 
batarg("",str),arg("eclass",int),arg("d1",int),arg("s1",int),arg("has_tz",int),batargany("v",1),batarg("s",oid),arg("digits",int))),
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
@@ -229,7 +229,6 @@ sql5_export str batstr_2_date_cand(bat *
 sql5_export str str_2_blob(blob * *res, const str *val);
 sql5_export str batstr_2_blob(bat *res, const bat *val);
 sql5_export str batstr_2_blob_cand(bat *res, const bat *val, const bat *sid);
-sql5_export str SQLblob_2_str(str *res, const blob * val);
 
 sql5_export str SQLstr_cast(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str SQLbatstr_cast(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
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
@@ -18,33 +18,21 @@ str_2_blob(blob **res, const str *val)
        ptr p = NULL;
        size_t len = 0;
        ssize_t e;
-       char buf[BUFSIZ];
+       str v = *val;
 
-       e = ATOMfromstr(TYPE_blob, &p, &len, *val, false);
-       if (e < 0 || !p || (ATOMcmp(TYPE_blob, p, ATOMnilptr(TYPE_blob)) == 0 
&& ATOMcmp(TYPE_str, *val, ATOMnilptr(TYPE_str)) != 0)) {
+       e = ATOMfromstr(TYPE_blob, &p, &len, v, false);
+       if (e < 0 || !p || (ATOMcmp(TYPE_blob, p, ATOMnilptr(TYPE_blob)) == 0 
&& !strNil(v))) {
                if (p)
                        GDKfree(p);
-               snprintf(buf, BUFSIZ, "Conversion of string '%s' failed", *val? 
*val:"");
-               throw(SQL, "blob", SQLSTATE(42000) "%s", buf);
+               if (strNil(v))
+                       throw(SQL, "calc.str_2_blob", SQLSTATE(42000) 
"Conversion of NULL string to blob failed");
+               throw(SQL, "calc.str_2_blob", SQLSTATE(42000) "Conversion of 
string '%s' to blob failed", v);
        }
        *res = (blob *) p;
        return MAL_SUCCEED;
 }
 
 str
-SQLblob_2_str(str *res, const blob *val)
-{
-       char *p = NULL;
-       size_t len = 0;
-       if (BLOBtostr(&p, &len, val, false) < 0) {
-               GDKfree(p);
-               throw(SQL, "blob", GDK_EXCEPTION);
-       }
-       *res = p;
-       return MAL_SUCCEED;
-}
-
-str
 batstr_2_blob_cand(bat *res, const bat *bid, const bat *sid)
 {
        BAT *b, *s = NULL, *dst;
@@ -66,7 +54,7 @@ batstr_2_blob_cand(bat *res, const bat *
                BBPunfix(b->batCacheid);
                if (s)
                        BBPunfix(s->batCacheid);
-               throw(SQL, "sql.2_blob", SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               throw(SQL, "batcalc.str_2_blob", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
        }
        for (BUN i = 0; i < ci.ncand; i++) {
                BUN p = (BUN) (canditer_next(&ci) - b->hseqbase);
@@ -85,7 +73,7 @@ batstr_2_blob_cand(bat *res, const bat *
                        if (s)
                                BBPunfix(s->batCacheid);
                        BBPreclaim(dst);
-                       throw(SQL, "sql.blob", SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                       throw(SQL, "batcalc.str_2_blob", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
                }
                GDKfree(r);
        }
@@ -200,7 +188,7 @@ SQLbatstr_cast(Client cntxt, MalBlkPtr m
                BBPunfix(b->batCacheid);
                if (s)
                        BBPunfix(b->batCacheid);
-               throw(SQL, "sql.str_cast", SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               throw(SQL, "batcalc.str_cast", SQLSTATE(HY013) MAL_MALLOC_FAIL);
        }
        for (BUN i = 0; i < ci.ncand; i++) {
                BUN p = (BUN) (canditer_next(&ci) - b->hseqbase);
@@ -218,7 +206,7 @@ SQLbatstr_cast(Client cntxt, MalBlkPtr m
                        if (s)
                                BBPunfix(b->batCacheid);
                        BBPreclaim(dst);
-                       throw(SQL, "sql.str_cast", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
+                       throw(SQL, "batcalc.str_cast", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
                }
                if (r != str_nil)
                        GDKfree(r);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to