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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list