mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Reject out-of-range dates in to_date().
Dates outside the supported range could be entered, but would not print reasonably, and operations such as conversion to timestamp wouldn't behave sanely either. Since this has the potential to result in undumpable table data, it seems worth back-patching. Hitoshi Harada
This commit is contained in:
parent
7127293a5d
commit
5c4eb9166e
@ -3332,6 +3332,12 @@ to_date(PG_FUNCTION_ARGS)
|
||||
|
||||
do_to_timestamp(date_txt, fmt, &tm, &fsec);
|
||||
|
||||
if (!IS_VALID_JULIAN(tm.tm_year, tm.tm_mon, tm.tm_mday))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
|
||||
errmsg("date out of range: \"%s\"",
|
||||
text_to_cstring(date_txt))));
|
||||
|
||||
result = date2j(tm.tm_year, tm.tm_mon, tm.tm_mday) - POSTGRES_EPOCH_JDATE;
|
||||
|
||||
PG_RETURN_DATEADT(result);
|
||||
|
Loading…
x
Reference in New Issue
Block a user