Le 07/02/2025 à 23:00, Pavel Stehule a écrit :
Hi
I rewrote this patch. Instead of enhancing the main SQL parser, it
does post parser checks of the parse tree.
Now the patch is significantly less invasive (changes are just in
plpgsql - mostly in grammar), and it is smaller (without regress tests
it has half size).
This patch allows the detection of usage of undocumented syntax for
plpgsql expressions. Using this undocumented
syntax can be the reason why badly written code (missing semicolon)
can be quietly executed without any raising of error.
Only patch 01 is important - patches 02, 03 are prepared for review.
Patch 02 activates a new check by default, and fixes the regress test
to be executed. This is important for checking for possible false alarms.
Patch 03 disables this check and returns regress tests to their
original state.
Regards
Pavel
Hi Pavel,
I'm reviewing this patch too and I'm facing some documentation issues
in patch
v20250207-0001-use-strict-rules-for-parsing-PL-pgSQL-expressions.patch
+ it doesn't to allow to detect broken code.
I'm not very good at english but I think it should be: it doesn't allow
to detect broken code.
Here I think the sentence is not complete:
+ This check is allowed only <varname>plpgsql.extra_errors</varname>.
Do you mean: This check is allowed only when
<varname>plpgsql.extra_errors</varname> is set to 'strict_expr_check'.
Please fix these to be sure of what the code is supposed to do.
Thanks
--
Gilles Darold
http://www.darold.net/