Handle integer overflow in interval justification functions.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 54bd1e43ca56e323aef309dc2dc0e1391825ce68
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2022-02-28T20:36:54Z
Releases: 15.0
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: https://postgr.es/m/CAAvxfHeNqsJ2xYFbPUf_8nNQUiJqkag04NW6aBQQ0dbZsxfWHA@mail.gmail.com

Files

Discussion