Re: change_varattnos_of_a_node versus whole-row Vars
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@postgresql.org
Date: 2012-06-29T22:54:11Z
Lists: pgsql-hackers
Attachments
- reject-whole-row-vars-in-LIKE.patch (text/x-patch) patch
I wrote: > change_varattnos_of_a_node(), which is used to adjust expressions > referencing a parent relation or LIKE source relation to refer to the > child relation, ignores whole-row Vars (those with attnum zero). > ... > My inclination, especially in the back branches, is to just throw error > if we find a whole-row Var. > ... > There are a bunch of other things I don't like about > change_varattnos_of_a_node, starting with the name, but those gripes are > in the nature of cosmetics or inadequate error checking and wouldn't > have any user-visible impact if changed. Attached is a draft patch that adds error reports for whole-row Vars and replaces change_varattnos_of_a_node with a more robust function. The latter makes it kind of a large patch, but it's difficult to make it a whole lot simpler unless we are willing to have the error messages say only "cannot convert whole-row table reference", without any indication of where the problem is. That seems a tad unfriendly to me. Comments? regards, tom lane