Thread: BUG #8361: 9.3~beta2-2: Wrong `interval' format with aggregate functions.

BUG #8361: 9.3~beta2-2: Wrong `interval' format with aggregate functions.

From
jbglaw@lug-owl.de
Date:
The following bug has been logged on the website:

Bug reference:      8361
Logged by:          Jan-Benedict Glaw
Email address:      jbglaw@lug-owl.de
PostgreSQL version: Unsupported/Unknown
Operating system:   Debian unstable/experimental
Description:

Hi!


I just found intervals that are shown with more than 24 hours in the `hours'
field. Their overall shown value matches EXTRACT (expoch from xxxx), but the
printed value looks bogus:


buildmaster=> select avg(lastbuild_same) from test_values ;
          avg
-----------------------
 1 day 26:16:18.678927
(1 row)




Notice the "26" there. It's actually 2 days 2h 16min 18sec.


Short SQL snippet can be found at
http://lug-owl.de/~jbglaw/intervals_not_printed_correctly.sql


Would be nice if somebody would test this with further PostgreSQL versions
and specifically with the most recent development branch.


Thanks,
Jan-Benedict
jbglaw@lug-owl.de writes:
> I just found intervals that are shown with more than 24 hours in the `hours'
> field.

This is not erroneous.  "24 hours" is not necessarily equivalent to "1
day", so the interval type doesn't automatically transpose one to the
other.  If you want that sort of conversion, see the justify_days(),
justify_hours(), and justify_interval() functions.

            regards, tom lane