pgsql: Fix is_digit labeling of to_timestamp's FFn format codes.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix is_digit labeling of to_timestamp's FFn format codes.
Date: 2024-12-07 18:12:45
Message-ID: E1tJzIK-001a5X-W6@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix is_digit labeling of to_timestamp's FFn format codes.

These format codes produce or consume strings of digits, so they
should be labeled with is_digit = true, but they were not.
This has effect in only one place, where is_next_separator()
is checked to see if the preceding format code should slurp up
all the available digits. Thus, with a format such as '...SSFF3'
with remaining input '12345', the 'SS' code would consume all
five digits (and then complain about seconds being out of range)
when it should eat only two digits.

Per report from Nick Davies. This bug goes back to d589f9446
where the FFn codes were introduced, so back-patch to v13.

Discussion: https://postgr.es/m/AM8PR08MB6356AC979252CFEA78B56678B6312@AM8PR08MB6356.eurprd08.prod.outlook.com

Branch
------
REL_13_STABLE

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

Modified Files
--------------
src/backend/utils/adt/formatting.c | 26 +++++++++++++-------------
src/test/regress/expected/horology.out | 11 +++++++++++
src/test/regress/sql/horology.sql | 1 +
3 files changed, 25 insertions(+), 13 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2024-12-07 20:56:46 pgsql: Ensure that pg_amop/amproc entries depend on their lefttype/righ
Previous Message Peter Eisentraut 2024-12-07 12:06:54 pgsql: doc: remove LC_COLLATE and LC_CTYPE from SHOW command