Re: Parser does not like %ROWTYPE in the RETURNS clause of a
От | Sai Hertz And Control Systems |
---|---|
Тема | Re: Parser does not like %ROWTYPE in the RETURNS clause of a |
Дата | |
Msg-id | 3FE9D27C.3020307@sancharnet.in обсуждение исходный текст |
Ответ на | Parser does not like %ROWTYPE in the RETURNS clause of a function declaration (BUG?) ("ezra epstein" <ee_newsgroup_post@prajnait.com>) |
Список | pgsql-general |
Dear ezra epstein ; >Using Postgres 7.4, > the function "test" gets this: psql:temp3.sql:10: ERROR: syntax error >at or near "%" at character 135 > the function "test2" gets this: psql:temp3.sql:10: ERROR: syntax error >at or near "ROWTYPE" at character 141 > >Very odd. The first doesn't even like the '%' character -- perhaps because >doof is a table type rather than a column (domain) type??? > > ROWTYPE for SQL Language ???? you may please check that ><code> >/* > CREATE TABLE doof ( "pk_id" serial ) > WITHOUT OIDS; >*/ > >CREATE OR REPLACE FUNCTION test(INTEGER) > RETURNS doof%ROWTYPE AS ' >SELECT * FROM doof WHERE pk_id=$1; > ' LANGUAGE SQL STABLE RETURNS NULL ON NULL INPUT; > >CREATE OR REPLACE FUNCTION test2(INTEGER) > RETURNS public.doof%ROWTYPE AS ' >SELECT * FROM doof WHERE pk_id=$1; > ' LANGUAGE SQL STABLE RETURNS NULL ON NULL INPUT; > </code> > > The above code gave error on mine system also PostgreSQL 7.3.4 what I think you want to something like this <code> CREATE OR REPLACE FUNCTION test2(INTEGER) RETURNS public.doof AS ' SELECT * FROM doof WHERE pk_id = $1; ' LANGUAGE SQL STABLE RETURNS NULL ON NULL INPUT; CREATE OR REPLACE FUNCTION test1(INTEGER) RETURNS doof AS ' SELECT * FROM doof WHERE pk_id = $1; ' LANGUAGE SQL STABLE RETURNS NULL ON NULL INPUT; </code> Mine Limited knowledge tells me that this is not a BUG but just an effect of thinking out of the box Shoot back if I was right please. Regards, Vishal Kashyap
В списке pgsql-general по дате отправления: