Re: - Mailing list pgsql-general

From Max
Subject Re:
Date
Msg-id B7436C72-BF76-496A-9247-E5245845017E@gmail.com
Whole thread Raw
In response to Re:  (Jeff Davis <pgsql@j-davis.com>)
Responses Re:  (Jeff Davis <pgsql@j-davis.com>)
List pgsql-general
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
>
>
>


pgsql-general by date:

Previous
From: Thomas Kellerer
Date:
Subject: Re: Unable to Start PostgreSQL 8.1.4 on Windows XP
Next
From: "Harpreet Dhaliwal"
Date:
Subject: Re: Connection string