Thread: Overgenerous parsing of UPDATE targetlist
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
> 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). Anything would be clearer than what is there now. Please give them nice names too, if possible. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
> 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). Sounds good. I never poked very far into the usage of these clauses, but istm that your suggestions would make things clearer. - Thomas -- Thomas Lockhart lockhart@alumni.caltech.edu South Pasadena, California