Avoid integer overflow hazard in interval_time().

Dean Rasheed <dean.a.rasheed@gmail.com>

Commit: 3850d4dec1d91c4fdce274f42986840444d5593e
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Date: 2023-11-09T12:10:14Z
Releases: 17.0
Avoid integer overflow hazard in interval_time().

When casting an interval to a time, the original code suffered from
64-bit integer overflow for inputs with a sufficiently large negative
"time" field, leading to bogus results.

Fix by rewriting the algorithm in a simpler form, that more obviously
cannot overflow. While at it, improve the test coverage to include
negative interval inputs.

Discussion: https://postgr.es/m/CAEZATCXoUKHkcuq4q63hkiPsKZJd0kZWzgKtU%2BNT0aU4wbf_Pw%40mail.gmail.com

Files

Discussion