| 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: | Whole Thread | Raw Message | 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
| 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 |