Thread: Question to CREATE FUNCTION

Question to CREATE FUNCTION

From
"Cornelia Boenigk"
Date:
Hi all

I defined the following function:

CREATE FUNCTION ka(member)
RETURNS member AS
'UPDATE member SET m_email = ''unbekannt'' WHERE m_email = NULL:
SELECT * FROM member;'
LANGUAGE 'sql';

If I call
SELECT ka(member) FROM member;
      ka
-------------
 12257440
.....

I get this number as many times as the table consists rows (no matter
weather they were updated or not). Could anybody tell me what kind of
result this is? What does this number mean?

If I use the notation with $1 like in the Programmers Guide in chapter
13.1.3 I get a parsing error. (??)

Could anybody explain this behaviour?

Thanks and greetings
Conni



Re: Question to CREATE FUNCTION

From
Masse Jacques
Date:
See 7.2 Doc $ 12.2.3


"In the present release of PostgreSQL there are some unpleasant restrictions
on how functions returning composite types can be used. Briefly, when
calling a function that returns a row, we cannot retrieve the entire row. We
must either project a single attribute out of the row or pass the entire row
into another function. (Trying to display the entire row value will yield a
meaningless number.) "

___________________________________________
Jacques Massé
Tel. 33 (0)5 57 89 08 11 - Fax 33 (0)5 57 89 08 01