postgresql 'infinity' raises 'OverflowError: date value out of range' if TZ is east of UTC
|Reported by:||Owned by:||mburst|
|Component:||Database layer (models, ORM)||Version:||1.5|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
When a datetime field is set to 'infinity' by an external application, django will throw an 'OverflowError: date value out of range' when the corresponding model object is modified within django the next time. This only occurs, however, if the timezone which is set is not UTC (in my Example 'Europe/Berlin').
The problem is, that django translates infinity to the maximum allowed timestamp of 9999-12-31 23:59:59 but timezone unaware. When Django tries to make the timestamp timezone aware, it uses the local timezone as default, which makes the timestamp in UTC larger than the maximum allowed timestamp, throwing the Exception.
I would guess, that this only applies for Timezones east of UTC.
Change History (4)
comment:2 Changed 3 years ago by
|Component:||Uncategorized → Database layer (models, ORM)|
|Type:||Uncategorized → Bug|