• Tom Lane's avatar
    I think I've finally identified the cause of the off-by-one-second · 87de80e9
    Tom Lane authored
    issue in timestamp conversion that we hacked around for so long by
    ignoring the seconds field from localtime().  It's simple: you have
    to watch out for platform-specific roundoff error when reducing a
    possibly-fractional timestamp to integral time_t form.  In particular
    we should subtract off the already-determined fractional fsec field.
    This should be enough to get an exact answer with int64 timestamps;
    with float timestamps, throw in a rint() call just to be sure.
    87de80e9
timestamp.c 85.1 KB