Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 4832c4c

Browse files
committed
doc: explain use of json_populate_record{set}()
The set-returning nature of these functions make their use unclear. The modified paragraph was added in PG 9.4. Reported-by: yshaladi@denodo.com Discussion: https://postgr.es/m/152571684246.9460.18059951267371255159@wrigleys.postgresql.org Backpatch-through: 9.4
1 parent 1bebfb9 commit 4832c4c

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

doc/src/sgml/func.sgml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11457,14 +11457,28 @@ table2-mapping
1145711457

1145811458
<note>
1145911459
<para>
11460-
In <function>json_populate_record</>, <function>json_populate_recordset</>,
11461-
<function>json_to_record</> and <function>json_to_recordset</>,
11462-
type coercion from the JSON is <quote>best effort</> and may not result
11463-
in desired values for some types. JSON keys are matched to
11464-
identical column names in the target row type. JSON fields that do not
11465-
appear in the target row type will be omitted from the output, and
11466-
target columns that do not match any JSON field will simply be NULL.
11460+
While the examples for the functions
11461+
<function>json_populate_record</function>,
11462+
<function>json_populate_recordset</function>,
11463+
<function>json_to_record</function> and
11464+
<function>json_to_recordset</function> use constants, the typical use
11465+
would be to reference a table in the <literal>FROM</literal> clause
11466+
and use one of its <type>json</type> or <type>jsonb</type> columns
11467+
as an argument to the function. Extracted key values can then be
11468+
referenced in other parts of the query, like <literal>WHERE</literal>
11469+
clauses and target lists. Extracting multiple values in this
11470+
way can improve performance over extracting them separately with
11471+
per-key operators.
1146711472
</para>
11473+
11474+
<para>
11475+
JSON keys are matched to identical column names in the target
11476+
row type. JSON type coercion for these functions is <quote>best
11477+
effort</quote> and may not result in desired values for some types.
11478+
JSON fields that do not appear in the target row type will be
11479+
omitted from the output, and target columns that do not match any
11480+
JSON field will simply be NULL.
11481+
</para>
1146811482
</note>
1146911483

1147011484
<note>

0 commit comments

Comments
 (0)