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


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to