On 8/31/07, Jeff Davis <pgsql@j-davis.com> wrote:
> On Fri, 2007-08-31 at 13:51 -0400, Merlin Moncure wrote:
> > > how about this:
> > > create view log_yadda sa
> > > select yadda where (select func());
> > >
> > > the parens around the function call force it to be evaluated as a scalar.
> >
> > if you declare func() immutable, you can (maybe) remove the parens
> > because the planner folds the call to a constant. This is faster in
> > some cases because
> >
>
> I like this approach. I'm a little concerned about PREPARE, however. I
> think that might only execute the function once and then not on
> subsequent calls, which would then not be audited.
At present, immutable functions are only treated as constants during a
query, which is what we want (no problems with prepare). I am a
little bit concered about interactions with queries wrapping the
view...you'll just have to try and see.
merlin