Thread: Using rowtype parameter
I'm trying to write a stored proc (in pl/Pgl) that can accept rowtypes as arguments:
CREATE or replace FUNCTION www_get_data(user_id "varchar", objectname "varchar", operation "varchar", primarykeyvalue anyelement, rowvalue anyelement)
RETURNS SETOF varchar[] AS
...
RETURNS SETOF varchar[] AS
...
Whenever I try to typecast a rowtype in function call like this:
select www_get_data ('test','USERS','QUERY',CAST(('%','%','','','') as mytable),CAST(('%','%','','','') as mytable))
I get error message:
ERROR: could not determine actual argument type for polymorphic function "www_get_data"
What gives? I thought typecast should suffice? Are there any limitations on using composite data types for anyelement parms?
Peter
"Peter Zeltins" <peter@greatnowhere.com> writes: > I'm trying to write a stored proc (in pl/Pgl) that can accept rowtypes = > as arguments: > CREATE or replace FUNCTION www_get_data(user_id "varchar", objectname = > "varchar", operation "varchar", primarykeyvalue anyelement, rowvalue = > anyelement) > RETURNS SETOF varchar[] AS > select www_get_data ('test','USERS','QUERY',CAST(('%','%','','','') as = > mytable),CAST(('%','%','','','') as mytable)) ANYELEMENT only matches scalar types. I don't think we have any support for accepting an arbitrary row type as a function argument. There's been some speculation about allowing RECORD to do that, but it's not done. regards, tom lane
> ANYELEMENT only matches scalar types. I don't think we have any support > for accepting an arbitrary row type as a function argument. There's > been some speculation about allowing RECORD to do that, but it's not > done. OK, that clears it up. RECORD would actually do nicely. Right now I'll be forced to pass varchar/text arrays which can potentially lead to type conversion issues. Peter