mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-25 10:23:43 +03:00
parent
1454b14ae0
commit
1a0c02a6f4
8
NEWS
8
NEWS
|
@ -1,10 +1,16 @@
|
||||||
Current release
|
Current release
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
What's new in psycopg 2.9.2
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Raise `ValueError` for dates >= Y10k (:ticket:`#1307`)
|
||||||
|
|
||||||
|
|
||||||
What's new in psycopg 2.9.1
|
What's new in psycopg 2.9.1
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Fix regression with named `sql.Placeholder` (:ticket:`1291`).
|
Fix regression with named `sql.Placeholder` (:ticket:`#1291`).
|
||||||
|
|
||||||
|
|
||||||
What's new in psycopg 2.9
|
What's new in psycopg 2.9
|
||||||
|
|
|
@ -71,7 +71,6 @@ typecast_PYDATE_cast(const char *str, Py_ssize_t len, PyObject *curs)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (y > 9999) y = 9999;
|
|
||||||
obj = PyObject_CallFunction(
|
obj = PyObject_CallFunction(
|
||||||
(PyObject*)PyDateTimeAPI->DateType, "iii", y, m, d);
|
(PyObject*)PyDateTimeAPI->DateType, "iii", y, m, d);
|
||||||
}
|
}
|
||||||
|
@ -172,8 +171,6 @@ _parse_noninftz(const char *str, Py_ssize_t len, PyObject *curs)
|
||||||
mm += 1;
|
mm += 1;
|
||||||
ss -= 60;
|
ss -= 60;
|
||||||
}
|
}
|
||||||
if (y > 9999)
|
|
||||||
y = 9999;
|
|
||||||
|
|
||||||
tzinfo_factory = ((cursorObject *)curs)->tzinfo_factory;
|
tzinfo_factory = ((cursorObject *)curs)->tzinfo_factory;
|
||||||
if (n >= 5 && tzinfo_factory != Py_None) {
|
if (n >= 5 && tzinfo_factory != Py_None) {
|
||||||
|
|
|
@ -115,12 +115,26 @@ class DatetimeTests(ConnectingTestCase, CommonDatetimeTestsMixin):
|
||||||
self.DATETIME = psycopg2.extensions.PYDATETIME
|
self.DATETIME = psycopg2.extensions.PYDATETIME
|
||||||
self.INTERVAL = psycopg2.extensions.PYINTERVAL
|
self.INTERVAL = psycopg2.extensions.PYINTERVAL
|
||||||
|
|
||||||
|
def test_parse_10k_date(self):
|
||||||
|
# datetime does not support dates larger than date.max
|
||||||
|
self.assertEqual(self.DATE('9999-12-31', self.curs), date(9999, 12, 31))
|
||||||
|
self.assertRaises(ValueError, self.DATE, '10000-01-01', self.curs)
|
||||||
|
|
||||||
def test_parse_bc_date(self):
|
def test_parse_bc_date(self):
|
||||||
# datetime does not support BC dates
|
# datetime does not support BC dates
|
||||||
|
self.assertEqual(self.DATE('0001-01-01', self.curs), date(1, 1, 1))
|
||||||
self.assertRaises(ValueError, self.DATE, '00042-01-01 BC', self.curs)
|
self.assertRaises(ValueError, self.DATE, '00042-01-01 BC', self.curs)
|
||||||
|
|
||||||
|
def test_parse_10k_datetime(self):
|
||||||
|
# datetime does not support dates larger than date.max
|
||||||
|
self.assertEqual(self.DATETIME('9999-12-31 23:59:59', self.curs),
|
||||||
|
datetime(9999, 12, 31, 23, 59, 59))
|
||||||
|
self.assertRaises(ValueError, self.DATE, '10000-01-01', self.curs)
|
||||||
|
|
||||||
def test_parse_bc_datetime(self):
|
def test_parse_bc_datetime(self):
|
||||||
# datetime does not support BC dates
|
# datetime does not support BC dates
|
||||||
|
self.assertEqual(self.DATETIME('0001-01-01 13:30:29', self.curs),
|
||||||
|
datetime(1, 1, 1, 13, 30, 29))
|
||||||
self.assertRaises(ValueError, self.DATETIME,
|
self.assertRaises(ValueError, self.DATETIME,
|
||||||
'00042-01-01 13:30:29 BC', self.curs)
|
'00042-01-01 13:30:29 BC', self.curs)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user