Improve a couple of sql/json error messages

Fix the grammar in two, and add a hint to one.
This commit is contained in:
Andrew Dunstan 2022-04-14 10:26:29 -04:00
parent fcdb35c32a
commit 4cd8717af3
2 changed files with 10 additions and 6 deletions

View File

@ -4456,7 +4456,7 @@ transformJsonFuncExpr(ParseState *pstate, JsonFuncExpr *func)
if (jsexpr->returning->typid != JSONBOID)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("JSON_TABLE() is not yet implemented for json type"),
errmsg("JSON_TABLE() is not yet implemented for the json type"),
errhint("Try casting the argument to jsonb"),
parser_errposition(pstate, func->location)));
@ -4466,7 +4466,8 @@ transformJsonFuncExpr(ParseState *pstate, JsonFuncExpr *func)
if (exprType(contextItemExpr) != JSONBOID)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("%s() is not yet implemented for json type", func_name),
errmsg("%s() is not yet implemented for the json type", func_name),
errhint("Try casting the argument to jsonb"),
parser_errposition(pstate, func->location)));
return (Node *) jsexpr;

View File

@ -1,21 +1,24 @@
-- JSON_EXISTS
SELECT JSON_EXISTS(NULL FORMAT JSON, '$');
ERROR: JSON_EXISTS() is not yet implemented for json type
ERROR: JSON_EXISTS() is not yet implemented for the json type
LINE 1: SELECT JSON_EXISTS(NULL FORMAT JSON, '$');
^
HINT: Try casting the argument to jsonb
-- JSON_VALUE
SELECT JSON_VALUE(NULL FORMAT JSON, '$');
ERROR: JSON_VALUE() is not yet implemented for json type
ERROR: JSON_VALUE() is not yet implemented for the json type
LINE 1: SELECT JSON_VALUE(NULL FORMAT JSON, '$');
^
HINT: Try casting the argument to jsonb
-- JSON_QUERY
SELECT JSON_QUERY(NULL FORMAT JSON, '$');
ERROR: JSON_QUERY() is not yet implemented for json type
ERROR: JSON_QUERY() is not yet implemented for the json type
LINE 1: SELECT JSON_QUERY(NULL FORMAT JSON, '$');
^
HINT: Try casting the argument to jsonb
-- JSON_TABLE
SELECT * FROM JSON_TABLE(NULL FORMAT JSON, '$' COLUMNS (foo text));
ERROR: JSON_TABLE() is not yet implemented for json type
ERROR: JSON_TABLE() is not yet implemented for the json type
LINE 1: SELECT * FROM JSON_TABLE(NULL FORMAT JSON, '$' COLUMNS (foo ...
^
HINT: Try casting the argument to jsonb