ERROR: fmgr_info: function 0: cache lookup failed
Hi,
I want retrieve ROW of tables by their OID,
to do thise I made as folowing :
CREATE TABLE tab1 (X int4, Y varchar);
CREATE
CREATE FUNCTION tabrecord (OID) returns RECORD AS 'BEGIN RETURN(SELECT *
FROM tab1 WHERE OID = $1) END;' language 'plpgsql';
NOTICE: ProcedureCreate: type 'record' is not yet defined
NOTICE: ProcedureCreate: type 'record' is not yet defined
CREATE
select tabrecord (2542 :: oid);
ERROR: fmgr_info: function 0: cache lookup failed
ERROR: fmgr_info: function 0: cache lookup failed
could you help me to solve this problem please,
Mourad.
Currently, you must do:
CREATE FUNCTION tabrecord (OID) returns tab1 AS '...
But it wouldn't help you much since the only thing you can do with this
function is:
select x(tabrecord(2542)),y(tabrecord(2542))
On Wed, 4 Jul 2001, Mourad EL HADJ MIMOUNE wrote:
Show quoted text
Hi,
I want retrieve ROW of tables by their OID,
to do thise I made as folowing :
CREATE TABLE tab1 (X int4, Y varchar);
CREATECREATE FUNCTION tabrecord (OID) returns RECORD AS 'BEGIN RETURN(SELECT *
FROM tab1 WHERE OID = $1) END;' language 'plpgsql';
NOTICE: ProcedureCreate: type 'record' is not yet defined
NOTICE: ProcedureCreate: type 'record' is not yet defined
CREATEselect tabrecord (2542 :: oid);
ERROR: fmgr_info: function 0: cache lookup failed
ERROR: fmgr_info: function 0: cache lookup failedcould you help me to solve this problem please,
Mourad.
Alex Pilosov <alex@pilosoft.com> writes:
Currently, you must do:
CREATE FUNCTION tabrecord (OID) returns tab1 AS '...
Right, "returns record" is bogus. The reason for the peculiar
error message seems to be that plpgsql is sloppy about checking
pg_type.typisdefined before believing that it has a valid type name.
I suspect this oversight is widespread :-(
regards, tom lane