Adjust date/time input parsing code to correctly distinguish the four
Tom Lane <tgl@sss.pgh.pa.us>
Adjust date/time input parsing code to correctly distinguish the four SQLSTATE error codes required by SQL99 (invalid format, datetime field overflow, interval field overflow, invalid time zone displacement value). Also emit a HINT about DateStyle in cases where it seems appropriate. Per recent gripes.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/date.c | modified | +27 −33 |
| src/backend/utils/adt/datetime.c | modified | +346 −201 |
| src/backend/utils/adt/nabstime.c | modified | +21 −19 |
| src/backend/utils/adt/timestamp.c | modified | +29 −34 |
| src/include/utils/datetime.h | modified | +25 −8 |
| src/test/regress/expected/abstime.out | modified | +3 −2 |
| src/test/regress/expected/abstime-solaris-1947.out | modified | +3 −2 |
| src/test/regress/expected/date.out | modified | +1 −1 |
| src/test/regress/expected/horology-no-DST-before-1970.out | modified | +2 −1 |
| src/test/regress/expected/horology.out | modified | +2 −1 |
| src/test/regress/expected/horology-solaris-1947.out | modified | +2 −1 |
| src/test/regress/expected/timestamp.out | modified | +2 −2 |
| src/test/regress/expected/timestamptz.out | modified | +2 −2 |