aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/jsonb_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/jsonb_util.c')
-rw-r--r--src/backend/utils/adt/jsonb_util.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/utils/adt/jsonb_util.c b/src/backend/utils/adt/jsonb_util.c
index 93bb148232e..04f35bfffc9 100644
--- a/src/backend/utils/adt/jsonb_util.c
+++ b/src/backend/utils/adt/jsonb_util.c
@@ -1314,7 +1314,14 @@ convertJsonbValue(StringInfo buffer, JEntry *header, JsonbValue *val, int level)
if (!val)
return;
- if (IsAJsonbScalar(val) || val->type == jbvBinary)
+ /*
+ * A JsonbValue passed as val should never have a type of jbvBinary,
+ * and neither should any of its sub-components. Those values will be
+ * produced by convertJsonbArray and convertJsonbObject, the results of
+ * which will not be passed back to this function as an argument.
+ */
+
+ if (IsAJsonbScalar(val))
convertJsonbScalar(buffer, header, val);
else if (val->type == jbvArray)
convertJsonbArray(buffer, header, val, level);