Re: check_function_bodies not doing much

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Marcelo Lacerda <marceloslacerda(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: check_function_bodies not doing much
Date: 2018-08-07 19:31:30
Message-ID: 14795.1533670290@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Marcelo Lacerda <marceloslacerda(at)gmail(dot)com> writes:
> I was trying to get postgres to warn me that I'm referencing a table that
> it doesn't exists inside a function so I was told on the IRC to check the
> setting "check_function_bodies", however when I use it in a plpgsql
> function it doesn't actually check if the tables in the body exist. Is this
> the correct behavior?

Yes. It's supposed to be a syntax check, not a check that the function
would work when executed. (Depending on the particular PL you're using,
which you didn't mention, it might be a pretty weak syntax check too.)

An example of why a thorough check would be inadvisable is that a trigger
function might contain references to OLD and NEW that are in code paths
protected by checks on the trigger event type. That could be perfectly
OK, but a static check couldn't tell.

I believe there are some external tools floating around that check things
more aggressively, and hence with a higher rate of false positives.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David G. Johnston 2018-08-07 19:38:02 Re: check_function_bodies not doing much
Previous Message Pavel Stehule 2018-08-07 19:25:30 Re: check_function_bodies not doing much