I have private tables such as this (Very simplified):
CREATE TABLE private.t_foo ( ...
);
REVOKE ALL ON private.t_foo FROM public;
Different users have access to different data in the table, so I do
this view:
CREATE VIEW foo AS SELECT * FROM private.t_foo WHERE private.haveaccess();
GRANT ALL ON foo TO public;
Using rules I then make the view updatable (In reality views fetch and
write data to multiple tables usually). This works fine, but I have some
thought on performance in the future.
The function private.haveaccess()'s result depends on the currently
logged in user, is it still possible to create an expression index over
that function?
// Fredrik Olsson