From 68d68ff8333c106962d4a936e07eba24d63a2e07 Mon Sep 17 00:00:00 2001
From: Andrew Dunstan <andrew@dunslane.net>
Date: Sun, 21 Feb 2016 10:30:49 -0500
Subject: Fix two-argument jsonb_object when called with empty arrays

Some over-eager copy-and-pasting on my part resulted in a nonsense
result being returned in this case. I have adopted the same pattern for
handling this case as is used in the one argument form of the function,
i.e. we just skip over the code that adds values to the object.

Diagnosis and patch from Michael Paquier, although not quite his
solution.

Fixes bug #13936.

Backpatch to 9.5 where jsonb_object was introduced.
---
 src/test/regress/sql/json.sql | 6 ++++++
 1 file changed, 6 insertions(+)

(limited to 'src/test/regress/sql/json.sql')

diff --git a/src/test/regress/sql/json.sql b/src/test/regress/sql/json.sql
index 0d2c139b4d1..39f1b70f4da 100644
--- a/src/test/regress/sql/json.sql
+++ b/src/test/regress/sql/json.sql
@@ -462,6 +462,12 @@ SELECT json_object_agg(name, type) FROM foo;
 
 -- json_object
 
+-- empty object, one dimension
+SELECT json_object('{}');
+
+-- empty object, two dimensions
+SELECT json_object('{}', '{}');
+
 -- one dimension
 SELECT json_object('{a,1,b,2,3,NULL,"d e f","a b c"}');
 
-- 
cgit v1.2.3

