summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-07-24 14:20:52 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2017-07-24 14:23:36 +0100
commit775de754cf9bace67bb1dbd1f064886ee835e663 (patch)
treedebf14baee5497d990a0cbe9fd611be02d38087e
parentb7bd5eceed4d76e438ad8b077a7ff48234631fd8 (diff)
downloadpsycopg2-fix-578.tar.gz
Added back timestamptz[] default castfix-578
It was registered as side effect of an excessive definition that got cleaned up in 338dbe70a6c78c7edddea985e2386ebd864378c6. Looking at other removed redundant type oids, this was the only one missing from the `string_types` map. Close #578.
-rw-r--r--NEWS7
-rw-r--r--psycopg/typecast_array.c1
-rw-r--r--psycopg/typecast_builtins.c1
-rwxr-xr-xtests/test_dates.py5
4 files changed, 14 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 81d5fe2..6c67cb5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,13 @@
Current release
---------------
+What's new in psycopg 2.7.3
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Restored default :sql:`timestamptz[]` typecasting to Python `!datetime`.
+ Regression introduced in Psycopg 2.7.2 (:ticket:`#578`).
+
+
What's new in psycopg 2.7.2
^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/psycopg/typecast_array.c b/psycopg/typecast_array.c
index adf07ee..10c2b37 100644
--- a/psycopg/typecast_array.c
+++ b/psycopg/typecast_array.c
@@ -288,6 +288,7 @@ typecast_GENERIC_ARRAY_cast(const char *str, Py_ssize_t len, PyObject *curs)
#define typecast_UNICODEARRAY_cast typecast_GENERIC_ARRAY_cast
#define typecast_BOOLEANARRAY_cast typecast_GENERIC_ARRAY_cast
#define typecast_DATETIMEARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_DATETIMETZARRAY_cast typecast_GENERIC_ARRAY_cast
#define typecast_DATEARRAY_cast typecast_GENERIC_ARRAY_cast
#define typecast_TIMEARRAY_cast typecast_GENERIC_ARRAY_cast
#define typecast_INTERVALARRAY_cast typecast_GENERIC_ARRAY_cast
diff --git a/psycopg/typecast_builtins.c b/psycopg/typecast_builtins.c
index 9ffec03..3ed7689 100644
--- a/psycopg/typecast_builtins.c
+++ b/psycopg/typecast_builtins.c
@@ -57,6 +57,7 @@ static typecastObject_initlist typecast_builtins[] = {
{"STRINGARRAY", typecast_STRINGARRAY_types, typecast_STRINGARRAY_cast, "STRING"},
{"BOOLEANARRAY", typecast_BOOLEANARRAY_types, typecast_BOOLEANARRAY_cast, "BOOLEAN"},
{"DATETIMEARRAY", typecast_DATETIMEARRAY_types, typecast_DATETIMEARRAY_cast, "DATETIME"},
+ {"DATETIMETZARRAY", typecast_DATETIMETZARRAY_types, typecast_DATETIMETZARRAY_cast, "DATETIMETZ"},
{"TIMEARRAY", typecast_TIMEARRAY_types, typecast_TIMEARRAY_cast, "TIME"},
{"DATEARRAY", typecast_DATEARRAY_types, typecast_DATEARRAY_cast, "DATE"},
{"INTERVALARRAY", typecast_INTERVALARRAY_types, typecast_INTERVALARRAY_cast, "INTERVAL"},
diff --git a/tests/test_dates.py b/tests/test_dates.py
index 0b790d0..9ce74d8 100755
--- a/tests/test_dates.py
+++ b/tests/test_dates.py
@@ -317,6 +317,11 @@ class DatetimeTests(ConnectingTestCase, CommonDatetimeTestsMixin):
from datetime import datetime
self._test_type_roundtrip_array(datetime(2010, 5, 3, 10, 20, 30))
+ def test_type_roundtrip_datetimetz_array(self):
+ from datetime import datetime
+ self._test_type_roundtrip_array(
+ datetime(2010, 5, 3, 10, 20, 30, tzinfo=FixedOffsetTimezone(0)))
+
def test_type_roundtrip_time_array(self):
from datetime import time
self._test_type_roundtrip_array(time(10, 20, 30))