From: | Max <xdmaxx(at)gmail(dot)com> |
---|---|
To: | |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: |
Date: | 2006-08-15 16:46:18 |
Message-ID: | B7436C72-BF76-496A-9247-E5245845017E@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Harpreet Dhaliwal | 2006-08-15 16:48:55 | Re: Connection string |
Previous Message | Thomas Kellerer | 2006-08-15 16:38:34 | Re: Unable to Start PostgreSQL 8.1.4 on Windows XP |