From a5cbd5264fa6947d09629470f8eeeb3edfa81787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 26 Sep 2010 10:47:37 +0200 Subject: [PATCH] Old versions of psycopg2 don't have PYDATE, PYDATETIME and PYTIME --- trytond/backend/postgresql/database.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/trytond/backend/postgresql/database.py b/trytond/backend/postgresql/database.py index 3015b2b186..7c459e6600 100644 --- a/trytond/backend/postgresql/database.py +++ b/trytond/backend/postgresql/database.py @@ -9,7 +9,11 @@ from psycopg2.extensions import cursor as PsycopgCursor from psycopg2.extensions import ISOLATION_LEVEL_SERIALIZABLE from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT from psycopg2.extensions import register_type, register_adapter -from psycopg2.extensions import UNICODE, AsIs, PYDATE, PYDATETIME, PYTIME +from psycopg2.extensions import UNICODE, AsIs +try: + from psycopg2.extensions import PYDATE, PYDATETIME, PYTIME +except ImportError: + PYDATE, PYDATETIME, PYTIME = None, None, None from psycopg2 import IntegrityError as DatabaseIntegrityError from psycopg2 import OperationalError as DatabaseOperationalError import time @@ -395,9 +399,12 @@ class Cursor(CursorInterface): return select register_type(UNICODE) -register_type(PYDATE) -register_type(PYDATETIME) -register_type(PYTIME) +if PYDATE: + register_type(PYDATE) +if PYDATETIME: + register_type(PYDATETIME) +if PYTIME: + register_type(PYTIME) register_adapter(Session, AsIs) register_adapter(float, lambda value: AsIs(repr(value))) register_adapter(Decimal, lambda value: AsIs(str(value)))