Changeset: c02fd4fc3853 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c02fd4fc3853
Modified Files:
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/json.mal
        sql/scripts/40_json.sql
Branch: default
Log Message:

Make json.isvalid a no-op for json inputs

Also remove some other unneeded functions.

This fixes #6786


diffs (101 lines):

diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -400,7 +400,7 @@ JSONstr2json(json *ret, str *j)
 }
 
 static str
-JSONisvalid(bit *ret, json *j)
+JSONisvalid(bit *ret, str *j)
 {
        if (strNil(*j)) {
                *ret = bit_nil;
@@ -2708,7 +2708,6 @@ static mel_atom json_init_atoms[] = {
 static mel_func json_init_funcs[] = {
  command("json", "new", JSONstr2json, false, "Convert string to its JSON. 
Dealing with escape characters", args(1,2, arg("",json),arg("j",str))),
  command("calc", "json", JSONstr2json, false, "Convert string to its JSON. 
Dealing with escape characters", args(1,2, arg("",json),arg("j",str))),
- command("calc", "json", JSONstr2json, false, "Convert JSON to JSON. Dealing 
with escape characters", args(1,2, arg("",json),arg("j",json))),
  command("json", "str", JSONjson2str, false, "Convert JSON to its string 
equivalent. Dealing with escape characters", args(1,2, 
arg("",str),arg("j",json))),
  command("json", "text", JSONjson2text, false, "Convert JSON values to their 
plain string equivalent.", args(1,2, arg("",str),arg("j",json))),
  command("json", "text", JSONjson2textSeparator, false, "Convert JSON values 
to their plain string equivalent, injecting a separator.", args(1,3, 
arg("",str),arg("j",json),arg("s",str))),
@@ -2728,12 +2727,9 @@ static mel_func json_init_funcs[] = {
  command("json", "filter", JSONfilterArray_hge, false, "", args(1,3, 
arg("",json),arg("name",json),arg("idx",hge))),
  command("json", "filter", JSONfilterArrayDefault_hge, false, "Extract a 
single array element", args(1,4, 
arg("",json),arg("name",json),arg("idx",hge),arg("other",str))),
 #endif
- command("json", "isvalid", JSONisvalid, false, "Validate the string as a 
valid JSON document", args(1,2, arg("",bit),arg("val",json))),
  command("json", "isobject", JSONisobject, false, "Validate the string as a 
valid JSON object", args(1,2, arg("",bit),arg("val",json))),
  command("json", "isarray", JSONisarray, false, "Validate the string as a 
valid JSON array", args(1,2, arg("",bit),arg("val",json))),
  command("json", "isvalid", JSONisvalid, false, "Validate the string as a 
valid JSON document", args(1,2, arg("",bit),arg("val",str))),
- command("json", "isobject", JSONisobject, false, "Validate the string as a 
valid JSON object", args(1,2, arg("",bit),arg("val",str))),
- command("json", "isarray", JSONisarray, false, "Validate the string as a 
valid JSON array", args(1,2, arg("",bit),arg("val",str))),
  command("json", "length", JSONlength, false, "Returns the number of elements 
in the outermost JSON object.", args(1,2, arg("",int),arg("val",json))),
  pattern("json", "unfold", JSONunfold, false, "Expands the outermost JSON 
object into key-value pairs.", args(2,3, 
batarg("k",str),batarg("v",json),arg("val",json))),
  pattern("json", "unfold", JSONunfold, false, "Expands the outermost JSON 
object into key-value pairs.", args(3,4, 
batarg("o",oid),batarg("k",str),batarg("v",json),arg("val",json))),
diff --git a/monetdb5/modules/atoms/json.mal b/monetdb5/modules/atoms/json.mal
--- a/monetdb5/modules/atoms/json.mal
+++ b/monetdb5/modules/atoms/json.mal
@@ -22,10 +22,6 @@ command calc.json(j:str):json
 address JSONstr2json
 comment "Convert string to its JSON. Dealing with escape characters";
 
-command calc.json(j:json):json
-address JSONstr2json
-comment "Convert JSON to JSON. Dealing with escape characters";
-
 command str(j:json):str
 address JSONjson2str
 comment "Convert JSON to its string equivalent. Dealing with escape 
characters";
@@ -72,10 +68,6 @@ command filter(name:json, idx:lng, other
 address JSONfilterArrayDefault_lng
 comment "Extract a single array element";
 
-command isvalid(val:json):bit
-address JSONisvalid
-comment "Validate the string as a valid JSON document";
-
 command isobject(val:json):bit
 address JSONisobject
 comment "Validate the string as a valid JSON object";
@@ -88,14 +80,6 @@ command isvalid(val:str):bit
 address JSONisvalid
 comment "Validate the string as a valid JSON document";
 
-command isobject(val:str):bit
-address JSONisobject
-comment "Validate the string as a valid JSON object";
-
-command isarray(val:str):bit
-address JSONisarray
-comment "Validate the string as a valid JSON array";
-
 command length(val:json):int
 address JSONlength
 comment "Returns the number of elements in the outermost JSON object.";
diff --git a/sql/scripts/40_json.sql b/sql/scripts/40_json.sql
--- a/sql/scripts/40_json.sql
+++ b/sql/scripts/40_json.sql
@@ -40,22 +40,13 @@ create function json."integer"(js json)
 returns bigint external name json."integer";
 GRANT EXECUTE ON FUNCTION json."integer"(json) TO PUBLIC;
 
--- test string for JSON compliancy
+-- test string for JSON validity
 create function json.isvalid(js string)
 returns bool external name json.isvalid;
 GRANT EXECUTE ON FUNCTION json.isvalid(string) TO PUBLIC;
 
-create function json.isobject(js string)
-returns bool external name json.isobject;
-GRANT EXECUTE ON FUNCTION json.isobject(string) TO PUBLIC;
-
-create function json.isarray(js string)
-returns bool external name json.isarray;
-GRANT EXECUTE ON FUNCTION json.isarray(string) TO PUBLIC;
-
 create function json.isvalid(js json)
-returns bool external name json.isvalid;
-GRANT EXECUTE ON FUNCTION json.isvalid(json) TO PUBLIC;
+returns bool begin return true; end;
 
 create function json.isobject(js json)
 returns bool external name json.isobject;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to