+ { + /* the last field of list can be star too */ + Assert(IsA(field2, A_Star)); + + /* + * In this case, the field1 should be variable name. But + * direct unboxing of composite session variables is not + * supported now, and then we don't need to try lookup + * related variable. + * + * Unboxing is supported by syntax (var).* + */ + return InvalidOid; + } I don't fully understand the above comments,
The parser allows only two syntaxes - identifier.identifier or identifier.star. Second
syntax is not supported by session variables, and then I didn't try to search for the variable.
Some users can be confused by similar syntaxes identifier.* and (identifier).* Only
second syntax is composite unboxing, and only second syntax is supported for
session variables.
I changed this comment to
<--><--><--><--><-->/* <--><--><--><--><--> * The syntax ident.* is used only by table aliases, <--><--><--><--><--> * and then this identifier cannot be a reference to <--><--><--><--><--> * session variable. <--><--><--><--><--> */