hi ,
is there any way to build "dynamic functions" in plpgsql ?
my problem is, i have a table defining attributes like
CREATE TABLE attribute.attribute ( name NAME PRIMARY KEY, descr VARCHAR(256), regex
VARCHAR(50)NOT NULL, minlen INTEGER NOT NULL DEFAULT 0, maxlen INTEGER NOT NULL DEFAULT 64 -- validate
NAME // not implemented );
and a function like
CREATE OR REPLACE FUNCTION
attribute.match(TEXT,TEXT,BOOLEAN) RETURNS INTEGER AS '
.. check the value (against the regex etc) ..
END; ' LANGUAGE plpgsql
in some cases i would like to check the values also against a function for
example
CREATE FUNCTION attribute.check_range(TEXT) RETURNS INTEGER AS '
BEGIN IF $1 ... THEN RETURN -1; END IF; RETURN 0;
END; '
....
so that i can do the following in my match function
CREATE OR REPLACE FUNCTION
attribute.match(TEXT,TEXT,BOOLEAN) RETURNS INTEGER AS '
.. check the value (against the regex etc) .. IF attrib.validate NOT IS NULL THEN cmd := atrib.validate || ''('' $1
'')''||; -- ?? -- EXECUTE ''SELECT '' || cmd; // SELECT does not work in EXECUTE -- ?? END IF
END; ' LANGUAGE plpgsql
is there a way to get a result back from EXECUTE ?
i hope you can understand my description of the problem
i am using postgresQL 7.4 on debian
thanx
sepp
_________________________________________________________________
Recherchieren Sie auf eigene Faust mit der wohl besten Suchmaschine im Netz.
http://search.msn.at/