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