pgsql: Allow underscores in integer and numeric constants.

From: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Allow underscores in integer and numeric constants.
Date: 2023-02-04 09:51:09
Message-ID: E1pOFCO-001X6k-1M@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Allow underscores in integer and numeric constants.

This allows underscores to be used in integer and numeric literals,
and their corresponding type input functions, for visual grouping.
For example:

1_500_000_000
3.14159_26535_89793
0xffff_ffff
0b_1001_0001

A single underscore is allowed between any 2 digits, or immediately
after the base prefix indicator of non-decimal integers, per SQL:202x
draft.

Peter Eisentraut and Dean Rasheed

Discussion: https://postgr.es/m/84aae844-dc55-a4be-86d9-4f0fa405cc97%40enterprisedb.com

Branch
------
master

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

Modified Files
--------------
doc/src/sgml/syntax.sgml | 36 ++--
src/backend/catalog/sql_features.txt | 1 +
src/backend/parser/parse_node.c | 43 +---
src/backend/parser/scan.l | 27 +--
src/backend/utils/adt/numeric.c | 106 +++++++---
src/backend/utils/adt/numutils.c | 273 ++++++++++++++++++++------
src/fe_utils/psqlscan.l | 16 +-
src/interfaces/ecpg/preproc/pgc.l | 16 +-
src/pl/plpgsql/src/expected/plpgsql_trap.out | 2 +-
src/pl/plpgsql/src/sql/plpgsql_trap.sql | 2 +-
src/test/regress/expected/int2.out | 44 +++++
src/test/regress/expected/int4.out | 44 +++++
src/test/regress/expected/int8.out | 44 +++++
src/test/regress/expected/numeric.out | 62 +++++-
src/test/regress/expected/numerology.out | 92 ++++++++-
src/test/regress/expected/partition_prune.out | 6 +-
src/test/regress/sql/int2.sql | 14 ++
src/test/regress/sql/int4.sql | 14 ++
src/test/regress/sql/int8.sql | 14 ++
src/test/regress/sql/numeric.sql | 22 ++-
src/test/regress/sql/numerology.sql | 24 ++-
src/test/regress/sql/partition_prune.sql | 6 +-
22 files changed, 724 insertions(+), 184 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2023-02-04 17:46:09 pgsql: Rethink treatment of "postponed" quals in deconstruct_jointree()
Previous Message Peter Eisentraut 2023-02-04 07:02:19 pgsql: Remove unused code related to unknown type