To make "to_date" work as "make_date" with negative years these llines:
https://github.com/postgres/postgres/blob/fb544735f11480a697fcab791c058adc166be1fa/src/backend/utils/adt/formatting.c#L4559-L4560 :
if (tmfc.bc && tm->tm_year > 0)
tm->tm_year = -(tm->tm_year - 1);
must be changed to:
{
}
else if (tm->tm_year < 0) {
tm->tm_year ++;
pgsql-bugs by date:
Соглашаюсь с условиями обработки персональных данных