diff options
author | Alexander Korotkov <akorotkov@postgresql.org> | 2020-07-11 03:20:46 +0300 |
---|---|---|
committer | Alexander Korotkov <akorotkov@postgresql.org> | 2020-07-11 03:20:46 +0300 |
commit | 0657181167467ec5cfb5a28aacf47ca02f5f4588 (patch) | |
tree | 6dfd79c50bf090988294013f2b52b45bf365384b /src/backend/utils/adt/jsonpath_exec.c | |
parent | e91cd951b1114a009a0256f211a41d0ec873b2fc (diff) | |
download | postgresql-0657181167467ec5cfb5a28aacf47ca02f5f4588.tar.gz postgresql-0657181167467ec5cfb5a28aacf47ca02f5f4588.zip |
Improve error reporting for jsonpath .double() method
When jsonpath .double() method detects that numeric or string can't be
converted to double precision, it throws an error. This commit makes these
errors explicitly express the reason of failure.
Discussion: https://postgr.es/m/CAPpHfdtqJtiSXkP7tOXez18NxhLUH_-75bL8%3DOce4Ki%2Bbv7V6Q%40mail.gmail.com
Author: Alexander Korotkov
Reviewed-by: Tom Lane
Backpatch-through: 12
Diffstat (limited to 'src/backend/utils/adt/jsonpath_exec.c')
-rw-r--r-- | src/backend/utils/adt/jsonpath_exec.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/utils/adt/jsonpath_exec.c b/src/backend/utils/adt/jsonpath_exec.c index 135025cf570..25ec3dcd802 100644 --- a/src/backend/utils/adt/jsonpath_exec.c +++ b/src/backend/utils/adt/jsonpath_exec.c @@ -1055,7 +1055,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp, if (have_error) RETURN_ERROR(ereport(ERROR, (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM), - errmsg("jsonpath item method .%s() can only be applied to a numeric value", + errmsg("numeric argument of jsonpath item method .%s() is out of range for type double precision", jspOperationName(jsp->type))))); res = jperOk; } @@ -1076,7 +1076,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp, if (have_error || isinf(val)) RETURN_ERROR(ereport(ERROR, (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM), - errmsg("jsonpath item method .%s() can only be applied to a numeric value", + errmsg("string argument of jsonpath item method .%s() is not a valid representation of a double precision number", jspOperationName(jsp->type))))); jb = &jbv; |