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