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/



Reply via email to