From eef02792b933a48634fcea2f3425d32e8a7e19d4 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 25 Nov 2021 07:44:32 +0100 Subject: [PATCH v5 4/6] Add test case for trailing junk after numeric literals PostgreSQL currently accepts numeric literals with trailing non-digits, such as 123abc where the abc is treated as the next token. This may be a bit surprising. This commit adds test cases for this; subsequent commits intend to change this behavior. --- src/test/regress/expected/numerology.out | 55 ++++++++++++++++++++++++ src/test/regress/sql/numerology.sql | 14 ++++++ 2 files changed, 69 insertions(+) diff --git a/src/test/regress/expected/numerology.out b/src/test/regress/expected/numerology.out index 44d6c435de..32c6d80c03 100644 --- a/src/test/regress/expected/numerology.out +++ b/src/test/regress/expected/numerology.out @@ -3,6 +3,61 @@ -- Test various combinations of numeric types and functions. -- -- +-- Trailing junk in numeric literals +-- +SELECT 123abc; + abc +----- + 123 +(1 row) + +SELECT 0x0o; + x0o +----- + 0 +(1 row) + +SELECT 1_2_3; + _2_3 +------ + 1 +(1 row) + +SELECT 0.a; + a +--- + 0 +(1 row) + +SELECT 0.0a; + a +----- + 0.0 +(1 row) + +SELECT .0a; + a +----- + 0.0 +(1 row) + +SELECT 0.0e1a; + a +--- + 0 +(1 row) + +SELECT 0.0e; + e +----- + 0.0 +(1 row) + +SELECT 0.0e+a; +ERROR: syntax error at or near "+" +LINE 1: SELECT 0.0e+a; + ^ +-- -- Test implicit type conversions -- This fails for Postgres v6.1 (and earlier?) -- so let's try explicit conversions for now - tgl 97/05/07 diff --git a/src/test/regress/sql/numerology.sql b/src/test/regress/sql/numerology.sql index fddb58f8fd..70447a95fa 100644 --- a/src/test/regress/sql/numerology.sql +++ b/src/test/regress/sql/numerology.sql @@ -3,6 +3,20 @@ -- Test various combinations of numeric types and functions. -- +-- +-- Trailing junk in numeric literals +-- + +SELECT 123abc; +SELECT 0x0o; +SELECT 1_2_3; +SELECT 0.a; +SELECT 0.0a; +SELECT .0a; +SELECT 0.0e1a; +SELECT 0.0e; +SELECT 0.0e+a; + -- -- Test implicit type conversions -- This fails for Postgres v6.1 (and earlier?) -- 2.33.1