Improve tests of date_trunc() with infinity and unsupported units
Michael Paquier <michael@paquier.xyz>
Improve tests of date_trunc() with infinity and unsupported units Commit d85ce012f99f has added some new error handling code to date_trunc() of timestamp, timestamptz, and interval with infinite values. However, the new test cases added by that commit did not actually test all of the new code, missing coverage for the following cases: 1) For timestamp without time zone: 1-1) infinite value with valid unit 1-2) infinite value with unsupported unit 1-3) finite value with unsupported unit, for a code path older than d85ce012f99f. 2) For timestamp with time zone, without a time zone specified for the truncation: 2-1) infinite value with valid unit 2-2) infinite value with unsupported unit 2-3) finite value with unsupported unit, for a code path older than d85ce012f99f. 3) For timestamp with time zone, with a time zone specified for the truncation: 3-1) infinite value with valid unit. 3-2) infinite value with unsupported unit. This commit also provides coverage for the bug fixed in 2242b26ce472, through cases 2-1) and 3-1), when using an infinite value with a valid unit, with[out] the optional time zone parameter used for the truncation. Author: Peter Eisentraut <peter@eisentraut.org> Discussion: https://postgr.es/m/2d320b6f-b4af-4fbc-9eec-5d0fa15d187b@eisentraut.org Discussion: https://postgr.es/m/4bf60a84-2862-4a53-acd5-8eddf134a60e@eisentraut.org Backpatch-through: 18
Files
| Path | Change | +/− |
|---|---|---|
| src/test/regress/expected/timestamp.out | modified | +10 −0 |
| src/test/regress/expected/timestamptz.out | modified | +18 −0 |
| src/test/regress/sql/timestamp.sql | modified | +3 −1 |
| src/test/regress/sql/timestamptz.sql | modified | +5 −2 |
Discussion
- date_trunc invalid units with infinite value 8 messages · 2024-12-01 → 2025-08-12
- Datum as struct 16 messages · 2025-07-31 → 2025-08-21