Re: Parser does not like %ROWTYPE in the RETURNS clause
От | Ron St-Pierre |
---|---|
Тема | Re: Parser does not like %ROWTYPE in the RETURNS clause |
Дата | |
Msg-id | 3FE9CFCE.3080908@syscor.com обсуждение исходный текст |
Ответ на | Parser does not like %ROWTYPE in the RETURNS clause of a function declaration (BUG?) ("ezra epstein" <ee_newsgroup_post@prajnait.com>) |
Список | pgsql-general |
ezra epstein wrote: >Aother head banger for me. > >Below is a complete example of the code > >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??? > >And when we schema qualify the name of the table then the % is ok, but >ROWTYPE is not. > >Is this a well-known limitation or a new (7.4) bug? I tried combing the >docs to no avail. > >Thanks, > > Ezra E. > ><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> > > > >---------------------------(end of broadcast)--------------------------- >TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org > > > > Try replacing the rowtype with SETOF doof: CREATE OR REPLACE FUNCTION test(INTEGER) RETURNS SETOF doof AS ' SELECT * FROM doof WHERE pk_id=$1; ' LANGUAGE SQL STABLE RETURNS NULL ON NULL INPUT; Hope that helps. Ron
В списке pgsql-general по дате отправления: