Skip to content
Snippets Groups Projects
Commit 957b86a5 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

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: default avatar <yshaladi@denodo.com>

Discussion:  https://postgr.es/m/152571684246.9460.18059951267371255159@wrigleys.postgresql.org

Backpatch-through: 9.4
parent 817d605e
No related branches found
No related tags found
No related merge requests found
...@@ -10843,13 +10843,27 @@ table2-mapping ...@@ -10843,13 +10843,27 @@ table2-mapping
   
<note> <note>
<para> <para>
In <function>json_populate_record</>, <function>json_populate_recordset</>, While the examples for the functions
<function>json_to_record</> and <function>json_to_recordset</>, <function>json_populate_record</function>,
type coercion from the JSON is <quote>best effort</> and may not result <function>json_populate_recordset</function>,
in desired values for some types. JSON keys are matched to <function>json_to_record</function> and
identical column names in the target row type. JSON fields that do not <function>json_to_recordset</function> use constants, the typical use
appear in the target row type will be omitted from the output, and would be to reference a table in the <literal>FROM</literal> clause
target columns that do not match any JSON field will simply be NULL. and use one of its <type>json</type> or <type>jsonb</type> columns
as an argument to the function. Extracted key values can then be
referenced in other parts of the query, like <literal>WHERE</literal>
clauses and target lists. Extracting multiple values in this
way can improve performance over extracting them separately with
per-key operators.
</para>
<para>
JSON keys are matched to identical column names in the target
row type. JSON type coercion for these functions is <quote>best
effort</quote> and may not result in desired values for some types.
JSON fields that do not appear in the target row type will be
omitted from the output, and target columns that do not match any
JSON field will simply be NULL.
</para> </para>
</note> </note>
   
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment