8000 Add a couple more tests for interval input decoding. · postgrespro/postgres@1b208eb · GitHub
[go: up one dir, main page]

Skip to content
  • Commit 1b208eb

    Browse files
    committed
    Add a couple more tests for interval input decoding.
    Cover some cases that would have been broken by a proposed patch, but we failed to notice for lack of test coverage. I'm pushing this separately mainly to memorialize that it *is* our historical behavior. Discussion: https://postgr.es/m/1344498.1648920056@sss.pgh.pa.us
    1 parent 14bf1e8 commit 1b208eb

    File tree

    2 files changed

    +32
    -0
    lines changed

    2 files changed

    +32
    -0
    lines changed

    src/test/regress/expected/interval.out

    Lines changed: 20 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -826,6 +826,16 @@ SELECT interval '+1 -1:00:00',
    826826
    1 day -01:00:00 | -1 days +01:00:00 | 1 year 2 mons -3 days +04:05:06.789 | -1 years -2 mons +3 days -04:05:06.789
    827827
    (1 row)
    828828

    829+
    -- cases that trigger sign-matching rules in the sql style
    830+
    SELECT interval '-23 hours 45 min 12.34 sec',
    831+
    interval '-1 day 23 hours 45 min 12.34 sec',
    832+
    interval '-1 year 2 months 1 day 23 hours 45 min 12.34 sec',
    833+
    interval '-1 year 2 months 1 day 23 hours 45 min +12.34 sec';
    834+
    interval | interval | interval | interval
    835+
    --------------+----------------------+-----------------------------+-----------------------------
    836+
    -22:14:47.66 | -1 days +23:45:12.34 | -10 mons +1 day 23:45:12.34 | -10 mons +1 day 23:45:12.34
    837+
    (1 row)
    838+
    829839
    -- test output of couple non-standard interval values in the sql style
    830840
    SET IntervalStyle TO sql_standard;
    831841
    SELECT interval '1 day -1 hours',
    @@ -837,6 +847,16 @@ SELECT interval '1 day -1 hours',
    837847
    +0-0 +1 -1:00:00 | +0-0 -1 +1:00:00 | +1-2 -3 +4:05:06.789 | -1-2 +3 -4:05:06.789
    838848
    (1 row)
    839849

    850+
    -- cases that trigger sign-matching rules in the sql style
    851+
    SELECT interval '-23 hours 45 min 12.34 sec',
    852+
    interval '-1 day 23 hours 45 min 12.34 sec',
    853+
    interval '-1 year 2 months 1 day 23 hours 45 min 12.34 sec',
    854+
    interval '-1 year 2 months 1 day 23 hours 45 min +12.34 sec';
    855+
    interval | interval | interval | interval
    856+
    --------------+----------------+----------------------+-----------------------
    857+
    -23:45:12.34 | -1 23:45:12.34 | -1-2 -1 -23:45:12.34 | -0-10 +1 +23:45:12.34
    858+
    (1 row)
    859+
    840860
    -- test outputting iso8601 intervals
    841861
    SET IntervalStyle to iso_8601;
    842862
    select interval '0' AS "zero",

    src/test/regress/sql/interval.sql

    Lines changed: 12 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -258,13 +258,25 @@ SELECT interval '+1 -1:00:00',
    258258
    interval '+1-2 -3 +4:05:06.789',
    259259
    interval '-1-2 +3 -4:05:06.789';
    260260

    261+
    -- cases that trigger sign-matching rules in the sql style
    262+
    SELECT interval '-23 hours 45 min 12.34 sec',
    263+
    interval '-1 day 23 hours 45 min 12.34 sec',
    264+
    interval '-1 year 2 months 1 day 23 hours 45 min 12.34 sec',
    265+
    interval '-1 year 2 months 1 day 23 hours 45 min +12.34 sec';
    266+
    261267
    -- test output of couple non-standard interval values in the sql style
    262268
    SET IntervalStyle TO sql_standard;
    263269
    SELECT interval '1 day -1 hours',
    264270
    interval '-1 days +1 hours',
    265271
    interval '1 years 2 months -3 days 4 hours 5 minutes 6.789 seconds',
    266272
    - interval '1 years 2 months -3 days 4 hours 5 minutes 6.789 seconds';
    267273

    274+
    -- cases that trigger sign-matching rules in the sql style
    275+
    SELECT interval '-23 hours 45 min 12.34 sec',
    276+
    interval '-1 day 23 hours 45 min 12.34 sec',
    277+
    interval '-1 year 2 months 1 day 23 hours 45 min 12.34 sec',
    278+
    interval '-1 year 2 months 1 day 23 hours 45 min +12.34 sec';
    279+
    268280
    -- test outputting iso8601 intervals
    269281
    SET IntervalStyle to iso_8601;
    270282
    select interval '0' AS "zero",

    0 commit comments

    Comments
     (0)
    0