• Tom Lane's avatar
    Avoid unexpected conversion overflow in planner for distant date values. · f2ba1e99
    Tom Lane authored
    The "date" type supports a wider range of dates than int64 timestamps do.
    However, there is pre-int64-timestamp code in the planner that assumes that
    all date values can be converted to timestamp with impunity.  Fortunately,
    what we really need out of the conversion is always a double (float8)
    value; so even when the date is out of timestamp's range it's possible to
    produce a sane answer.  All we need is a code path that doesn't try to
    force the result into int64.  Per trouble report from David Rericha.
    
    Back-patch to all supported versions.  Although this is surely a corner
    case, there's not much point in advertising a date range wider than
    timestamp's if we will choke on such values in unexpected places.
    f2ba1e99
date.c 57.5 KB