• Monty's avatar
    MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range · dfdedd46
    Monty authored
    This patch extends the timestamp from
    2038-01-19 03:14:07.999999 to 2106-02-07 06:28:15.999999
    for 64 bit hardware and OS where 'long' is 64 bits.
    This is true for 64 bit Linux but not for Windows.
    
    This is done by treating the 32 bit stored int as unsigned instead of
    signed.  This is safe as MariaDB has never accepted dates before the epoch
    (1970).
    The benefit of this approach that for normal timestamp the storage is
    compatible with earlier version.
    
    However for tables using system versioning we before stored a
    timestamp with the year 2038 as the 'max timestamp', which is used to
    detect current values.  This patch stores the new 2106 year max value
    as the max timestamp. This means that old tables using system
    versioning needs to be updated with mariadb-upgrade when moving them
    to 11.4. That will be done in a separate commit.
    dfdedd46
sysvars_server_embedded.result 142 KB