The following bug has been logged on the website:
Bug reference: 13485
Logged by: Roberto Morelli
Email address: roberto.morelli@oneoverzero.net
PostgreSQL version: 9.4.4
Operating system: MacOSX
Description:
Hello,
I have encountered a problem with the jsonb type and the procedure
jsonb_populate_recordset.
If I have a type defined as:
CREATE TYPE nsp.confidence_enum AS
ENUM ('probably', 'conclusively', 'reliabily');
CREATE TYPE nsp.direction_enum AS
ENUM ('true', 'false');
CREATE TYPE nsp.TraitInfluence AS
(
traitId uuid,
direction nsp.direction_enum,
confidence nsp.confidence_enum
);
Note the camel case in traitId of nsp.TraitInfluence. If I try to populate a
recordset with the jsonb in the following way:
select jsonb_populate_recordset(null::nsp.TraitInfluence, '[{"traitId":
"c7fd7224-3f09-4a0a-941d-7a6a96d655b5", "direction": "true", "confidence":
"probably"}]'::jsonb)
I get the following result:
"(,true,probably)"
That is the traitId value is missing. I cannot change the camel case in the
json payload because it is a third party data.
How can I overcome this problem? The correct result should be:
"(c7fd7224-3f09-4a0a-941d-7a6a96d655b5,true,probably)"
Thank you very much for your help
Best Regards
Roberto