Re: [SQL] PL/PGSQL function with parameters
От | Tom Lane |
---|---|
Тема | Re: [SQL] PL/PGSQL function with parameters |
Дата | |
Msg-id | 25204.981476161@sss.pgh.pa.us обсуждение исходный текст |
Ответы |
Re: [SQL] PL/PGSQL function with parameters
|
Список | pgsql-hackers |
Michael Ansley <Michael.Ansley@intec-telecom-systems.com> writes: > CREATE FUNCTION table_count(varchar) RETURNS integer AS ' > DECLARE > SQL varchar; > RES integer; > BEGIN > SQL = ''SELECT * INTO temp1 FROM '' || $1; > EXECUTE SQL; > SELECT count(*) INTO RES FROM temp1; > RETURN(RES) > END; > ' > LANGUAGE 'plpgsql'; > What I couldn't get it to do was to select directly into the variable RES. I tried this, and it seems that "SELECT ... INTO foo" is not executed correctly by EXECUTE --- the INTO is handled as an ordinary select-into- table construct rather than plpgsql's select-into-variable. While I have not looked closely, I seem to recall that plpgsql handles INTO by stripping that clause out of the statement before it's passed to the SQL engine. Evidently that's not happening in the EXECUTE case. Jan, do you agree this is a bug? Is it reasonable to try to repair it for 7.1? If we do not change the behavior of EXECUTE now, I fear it will be too late --- some people will come to depend on the existing behavior. regards, tom lane
В списке pgsql-hackers по дате отправления: