Thx.
But I know how to write procedure and function, but my problem is to
know how to access the current row fields during a SELECT inside a
function:
So, in a function, can I write :
/* ... */ permission (/* ... */)
/* ... */
IF (ROW.perm_field1 = 1)
statement
IF (some_operation(ROW.perm_field2))
statement
/* ... */
RETURN TRUE or FALSE;
/* ... */
Or am I obligated to pass to my function the tablename and the id
field to execute a second query, then retrieving the row fields and
then computing permissions and then returning true or false ?
Thx for Help
Max
Le 15 août 06 à 18:27, Jeff Davis a écrit :
On Tue, 2006-08-15 at 18:05 +0200, Max wrote:
Do you know if it is possible to write such things :
SELECT * FROM tablename WHERE permission(some parameters) == TRUE;
with the function 'permission' returning TRUE or FALSE after a check
on different perm_fields of the current row.
Yes, you can do that. The best place to start is:
http://www.postgresql.org/docs/8.1/static/plpgsql.html
You want to create a pretty basic function that returns "boolean" and
takes a few parameters. Note that SQL does not have the C-style "=="
equality test. In SQL just write "= true". Better yet, since your
function returns boolean just do "WHERE permission(...)" with "..."
replaced by your parameters.
If you have trouble after trying out some examples at that link, post
back to the list with what you tried.
Regards,
Jeff Davis