aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/jsonb_util.c
diff options
context:
space:
mode:
authorAlexander Korotkov <akorotkov@postgresql.org>2020-07-11 03:21:00 +0300
committerAlexander Korotkov <akorotkov@postgresql.org>2020-07-11 03:21:57 +0300
commitf4ae676e3178124c2bc2b3a3530efe8f3cdbc442 (patch)
tree1ed49c6a229e21e8535417a8ffdb5af150f03900 /src/backend/utils/adt/jsonb_util.c
parent3ec5f6b53dfb6acfe66a952edef1b6887da91777 (diff)
downloadpostgresql-f4ae676e3178124c2bc2b3a3530efe8f3cdbc442.tar.gz
postgresql-f4ae676e3178124c2bc2b3a3530efe8f3cdbc442.zip
Forbid numeric NaN in jsonpath
SQL standard doesn't define numeric Inf or NaN values. It appears even more ridiculous to support then in jsonpath assuming JSON doesn't support these values as well. This commit forbids returning NaN from .double(), which was previously allowed. NaN can't be result of inner-jsonpath computation over non-NaNs. So, we can not expect NaN in the jsonpath output. Reported-by: Tom Lane Discussion: https://postgr.es/m/203949.1591879542%40sss.pgh.pa.us Author: Alexander Korotkov Reviewed-by: Tom Lane Backpatch-through: 12
Diffstat (limited to 'src/backend/utils/adt/jsonb_util.c')
-rw-r--r--src/backend/utils/adt/jsonb_util.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/src/backend/utils/adt/jsonb_util.c b/src/backend/utils/adt/jsonb_util.c
index 7969f6f5843..53a0bb48b92 100644
--- a/src/backend/utils/adt/jsonb_util.c
+++ b/src/backend/utils/adt/jsonb_util.c
@@ -1728,14 +1728,6 @@ convertJsonbScalar(StringInfo buffer, JEntry *jentry, JsonbValue *scalarVal)
break;
case jbvNumeric:
- /* replace numeric NaN with string "NaN" */
- if (numeric_is_nan(scalarVal->val.numeric))
- {
- appendToBuffer(buffer, "NaN", 3);
- *jentry = 3;
- break;
- }
-
numlen = VARSIZE_ANY(scalarVal->val.numeric);
padlen = padBufferToInt(buffer);