pgsql: Fix PL/pgSQL's handling of integer ranges containing underscores

From: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix PL/pgSQL's handling of integer ranges containing underscores
Date: 2024-06-04 10:54:50
Message-ID: E1sERoY-002wEz-6v@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix PL/pgSQL's handling of integer ranges containing underscores.

Commit faff8f8e47 allowed integer literals to contain underscores, but
failed to update the lexer's "numericfail" rule. As a result, a
decimal integer literal containing underscores would fail to parse, if
used in an integer range with no whitespace after the first number,
such as "1_001..1_003" in a PL/pgSQL FOR loop.

Fix and backpatch to v16, where support for underscores in integer
literals was added.

Report and patch by Erik Wienhold.

Discussion: https://postgr.es/m/808ce947-46ec-4628-85fa-3dd600b2c154%40ewie.name

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/cd2624fd97b0c36b68da278abc5362647f69b07d

Modified Files
--------------
src/backend/parser/scan.l | 2 +-
src/fe_utils/psqlscan.l | 2 +-
src/interfaces/ecpg/preproc/pgc.l | 2 +-
src/test/regress/expected/numerology.out | 11 +++++++++++
src/test/regress/sql/numerology.sql | 9 +++++++++
5 files changed, 23 insertions(+), 3 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2024-06-04 22:02:36 pgsql: Fix pl/tcl's handling of errors from Tcl_ListObjGetElements().
Previous Message Dean Rasheed 2024-06-04 08:34:10 pgsql: Fix another couple of outdated comments for MERGE RETURNING.