On Tue, Oct 25, 2022 at 7:54 AM [email protected] <[email protected]> wrote:
> /*
> * In a "leaf" node representing a VALUES list, the above fields are all
> * null, and instead this field is set. Note that the elements of the
> * sublists are just expressions, without ResTarget decoration. Also note
> * that a list element can be DEFAULT (represented as a SetToDefault
> * node), regardless of the context of the VALUES list. It's up to parse
> * analysis to reject that where not valid.
> */
> List *valuesLists; /* untransformed list of expression lists */
>
> I need to understand what this is used for?
>
That's a fairly broad question...does this help?
In the SQL command:
VALUES ('one', 'two', 1+2, DEFAULT)
The valuesLists List will effectively contain three elements, {'one'},
{'two'}, {1+2}, and {DEFAULT}.
Though if it contains DEFAULT and the VALUES is not part of an INSERT an
error should eventually occur during parse analysis since a plain VALUES
command has no context from which to retrieve a default.
David J.