• B
    The following patches eliminate the overflows in the j2date() and date2j() · a286f732
    Bruce Momjian 提交于
    functions which limited the maximum date for a timestamp to AD 1465001.
    The new limit is AD 5874897.
    The files affected are:
    
    doc/src/sgml/datatype.sgml:
        Documentation change due to patch. Included is a notice about
        the reduced range when using an eight-byte integer for timestamps.
    
    src/backend/utils/adt/datetime.c:
        Replacement functions for j2date() and date2j() functions.
    
    src/include/utils/datetime.h:
        Corrected a bug with the limit on the earliest possible date,
        Nov 23,-4713 has a Julian day count of -1. The earliest possible
        date should be Nov 24, -4713 with a day count of 0.
    
    src/test/regress/expected/horology-no-DST-before-1970.out:
    src/test/regress/expected/horology-solaris-1947.out:
    src/test/regress/expected/horology.out:
        Copies of expected output for regression testing.
        Note: Only horology.out has been physically tested. I do not have access
        to a Solaris box and I don't know how to provoke the "pre-1970" test.
    
    src/test/regress/sql/horology.sql:
        Added some test cases to check extended range.
    
    John Cochran
    a286f732
horology.sql 15.1 KB