Re: Allow COMMENT ON to accept an expression rather than just a string
От | Pavel Stehule |
---|---|
Тема | Re: Allow COMMENT ON to accept an expression rather than just a string |
Дата | |
Msg-id | 162867790904111146p5a632117j6c47e5d28577ab5c@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Allow COMMENT ON to accept an expression rather than just a string (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
2009/4/11 Tom Lane <tgl@sss.pgh.pa.us>: > Pavel Stehule <pavel.stehule@gmail.com> writes: >> But the proc >> CREATE OR REPLACE FUNCTION some_proc(tabname varchar) >> RETURNS void AS $$ >> BEGIN >> EXECUTE 'CREATE TABLE $1(a integer)' USING tabname; > >> is more readable than EXECUTE 'CREATE TABLE ' || tabname || '(.... > > I was intentionally excluding the idea of substituting parameters for > names as opposed to constants. For one thing it's fundamentally > ambiguous --- given > > string_var := 'foo'; > > EXECUTE 'SELECT $1 FROM bar' USING string_var; > > is that supposed to mean SELECT 'foo' FROM bar or SELECT foo FROM bar? > > The other problem is that if you allow name substitution it becomes > entirely impossible to do any planning or even validity checking before > the parameter values are available. So while string assembly is kind > of a pain in the rear when you really do need a dynamic name reference, > I think we should keep it firmly separate from parameter substitution. > +1 > regards, tom lane >
В списке pgsql-hackers по дате отправления: