Hi Thomas,
I observe that gram.y's <res_target_list> nonterminal is only used in
UPDATE statements. It accepts a lot too much for that purpose; the
following sorts of things get by the grammar, only to fail later on:
UPDATE table SET *;UPDATE table SET table.column;UPDATE table SET table.*;
None of these are valid according to SQL92 or have any visible use.
I propose renaming res_target_list and res_target_el to
update_target_list and update_target_el, and removing the alternatives
that aren't actually valid for UPDATE.
Having done that, we might as well rename res_target_list2 and
res_target_el2 to something clearer (I'm thinking just target_list and
target_el, but if you want to keep the "res_" I won't object).
Comments, objections?
regards, tom lane