BUG #13533: jsonb_populate_record does not work when the value is a simple string - Mailing list pgsql-bugs

From paulovieira@gmail.com
Subject BUG #13533: jsonb_populate_record does not work when the value is a simple string
Date
Msg-id 20150803014214.1017.85098@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #13533: jsonb_populate_record does not work when the value is a simple string  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      13533
Logged by:          Paulo Vieira
Email address:      paulovieira@gmail.com
PostgreSQL version: 9.5alpha1
Operating system:   Linux Ubuntu 14.4
Description:

1) Reproduce the problem:

---------------------------------------------------
drop table if exists temp_table;
create table temp_table(id int, data json);

do $$

declare
  input_data json := '{"id": 1, "data": "abc"}';
  input_row temp_table%ROWTYPE;

begin
  for input_row in (select * from
json_populate_record(null::temp_table,input_data)) loop
    raise notice '%', input_row.data;
  end loop;
end

$$;
---------------------------------------------------


2) Output I got:

ERROR:  22P02: invalid input syntax for type json
DETAIL:  Token "abc" is invalid.
CONTEXT:  JSON data, line 1: abc
PL/pgSQL function inline_code_block line 8 at FOR over SELECT rows
LOCATION:  report_invalid_token, json.c:1178


3) Expected output:

NOTICE:  "abc"

I expected this output because json_populate_record works well with all json
values expect when the value is a simple string. I think this is an
incoherent behaviour (a string is a valid json value).

This bug affects also the jsonb_populate_record variant, as well as the
*_populate_recordset.


4) PostgreSQL version:

9.5alpha1 and 9.4 (haven't tested in 9.3)


5) Platform information:

Linux Ubuntu 14.4

pgsql-bugs by date:

Previous
From: ing.milagrosma@gmail.com
Date:
Subject: BUG #13531: Error de Concetividad
Next
From: mrupert@gmail.com
Date:
Subject: BUG #13534: Pgadmin crash when changing font