pgsql: Handle integer overflow in interval justification functions.

Started by Tom Laneover 4 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Handle integer overflow in interval justification functions.

justify_interval, justify_hours, and justify_days didn't check for
overflow when promoting hours to days or days to months; but that's
possible when the upper field's value is already large. Detect and
report any such overflow.

Also, we can avoid unnecessary overflow in some cases in justify_interval
by pre-justifying the days field. (Thanks to Nathan Bossart for this
idea.)

Joe Koshakow

Discussion: /messages/by-id/CAAvxfHeNqsJ2xYFbPUf_8nNQUiJqkag04NW6aBQQ0dbZsxfWHA@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/54bd1e43ca56e323aef309dc2dc0e1391825ce68

Modified Files
--------------
src/backend/utils/adt/timestamp.c | 35 +++++++++++++++++++++++++++++----
src/test/regress/expected/interval.out | 36 ++++++++++++++++++++++++++++++++++
src/test/regress/sql/interval.sql | 12 ++++++++++++
3 files changed, 79 insertions(+), 4 deletions(-)