mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Improve some JSON error messages.
These messages are new in 9.4, which hasn't been released yet, so back-patch to REL9_4_STABLE. Daniele Varrazzo
This commit is contained in:
parent
ee646df59a
commit
0ef99bdce3
@ -1910,7 +1910,7 @@ json_object_agg_transfn(PG_FUNCTION_ARGS)
|
|||||||
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("arg 1: could not determine data type")));
|
errmsg("could not determine data type for argument %d", 1)));
|
||||||
|
|
||||||
add_json(arg, false, state, val_type, true);
|
add_json(arg, false, state, val_type, true);
|
||||||
|
|
||||||
@ -1934,7 +1934,7 @@ json_object_agg_transfn(PG_FUNCTION_ARGS)
|
|||||||
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("arg 2: could not determine data type")));
|
errmsg("could not determine data type for argument %d", 2)));
|
||||||
|
|
||||||
add_json(arg, PG_ARGISNULL(2), state, val_type, false);
|
add_json(arg, PG_ARGISNULL(2), state, val_type, false);
|
||||||
|
|
||||||
@ -1980,7 +1980,8 @@ json_build_object(PG_FUNCTION_ARGS)
|
|||||||
if (nargs % 2 != 0)
|
if (nargs % 2 != 0)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("invalid number or arguments: object must be matched key value pairs")));
|
errmsg("invalid number or arguments"),
|
||||||
|
errhint("Object must be matched key value pairs.")));
|
||||||
|
|
||||||
result = makeStringInfo();
|
result = makeStringInfo();
|
||||||
|
|
||||||
@ -1994,7 +1995,8 @@ json_build_object(PG_FUNCTION_ARGS)
|
|||||||
if (PG_ARGISNULL(i))
|
if (PG_ARGISNULL(i))
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("arg %d: key cannot be null", i + 1)));
|
errmsg("argument %d cannot be null", i + 1),
|
||||||
|
errhint("Object keys should be text.")));
|
||||||
val_type = get_fn_expr_argtype(fcinfo->flinfo, i);
|
val_type = get_fn_expr_argtype(fcinfo->flinfo, i);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2016,7 +2018,8 @@ json_build_object(PG_FUNCTION_ARGS)
|
|||||||
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("arg %d: could not determine data type", i + 1)));
|
errmsg("could not determine data type for argument %d",
|
||||||
|
i + 1)));
|
||||||
appendStringInfoString(result, sep);
|
appendStringInfoString(result, sep);
|
||||||
sep = ", ";
|
sep = ", ";
|
||||||
add_json(arg, false, result, val_type, true);
|
add_json(arg, false, result, val_type, true);
|
||||||
@ -2042,7 +2045,8 @@ json_build_object(PG_FUNCTION_ARGS)
|
|||||||
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("arg %d: could not determine data type", i + 2)));
|
errmsg("could not determine data type for argument %d",
|
||||||
|
i + 2)));
|
||||||
add_json(arg, PG_ARGISNULL(i + 1), result, val_type, false);
|
add_json(arg, PG_ARGISNULL(i + 1), result, val_type, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2099,7 +2103,8 @@ json_build_array(PG_FUNCTION_ARGS)
|
|||||||
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
if (val_type == InvalidOid || val_type == UNKNOWNOID)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("arg %d: could not determine data type", i + 1)));
|
errmsg("could not determine data type for argument %d",
|
||||||
|
i + 1)));
|
||||||
appendStringInfoString(result, sep);
|
appendStringInfoString(result, sep);
|
||||||
sep = ", ";
|
sep = ", ";
|
||||||
add_json(arg, PG_ARGISNULL(i), result, val_type, false);
|
add_json(arg, PG_ARGISNULL(i), result, val_type, false);
|
||||||
|
@ -1150,7 +1150,8 @@ SELECT json_build_object(1,2);
|
|||||||
|
|
||||||
-- keys must be scalar and not null
|
-- keys must be scalar and not null
|
||||||
SELECT json_build_object(null,2);
|
SELECT json_build_object(null,2);
|
||||||
ERROR: arg 1: key cannot be null
|
ERROR: argument 1 cannot be null
|
||||||
|
HINT: Object keys should be text.
|
||||||
SELECT json_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
|
SELECT json_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
|
||||||
ERROR: key value must be scalar, not array, composite, or json
|
ERROR: key value must be scalar, not array, composite, or json
|
||||||
SELECT json_build_object(json '{"a":1,"b":2}', 3);
|
SELECT json_build_object(json '{"a":1,"b":2}', 3);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user