Support plpgsql variable names that conflict with unreserved SQL keywords. A variable name matching a statement-introducing keyword, such as "comment" or "update", caused parse failures if one tried to write a statement using that keyword. Commit bb1b8f69 already addressed this scenario for the case of variable names matching unreserved plpgsql keywords, but we didn't think about unreserved core-grammar keywords. The same heuristic (viz, it can't be a variable name unless the next token is assignment or '[') should work fine for that case too, and as a bonus the code gets shorter and less duplicative.
Per bug #15555 from Feike Steenbergen. Since this hasn't been complained of before, and is easily worked around anyway, I won't risk a back-patch. Discussion: https://postgr.es/m/[email protected] Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/4879a5172af01dc05b6350dfa97ea1ac9a4c603c Modified Files -------------- src/pl/plpgsql/src/pl_comp.c | 13 +++--- src/pl/plpgsql/src/pl_scanner.c | 74 +++++++++++++++-------------------- src/pl/plpgsql/src/plpgsql.h | 2 +- src/test/regress/expected/plpgsql.out | 21 ++++++++++ src/test/regress/sql/plpgsql.sql | 14 +++++++ 5 files changed, 75 insertions(+), 49 deletions(-)
