From: Philip Jenvey Date: Sat, 23 Apr 2011 20:10:53 +0000 (-0700) Subject: utilize the zxjdbc PostgresqlHandler for better Decimal handling. hopefully X-Git-Tag: rel_0_7_0~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a2cd333143656a76d3e2207519f2f7694065629;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git utilize the zxjdbc PostgresqlHandler for better Decimal handling. hopefully this won't be necessary eventually (refs http://bugs.jython.org/issue1499) --- diff --git a/lib/sqlalchemy/dialects/postgresql/zxjdbc.py b/lib/sqlalchemy/dialects/postgresql/zxjdbc.py index a9a38d234b..f64b42acbd 100644 --- a/lib/sqlalchemy/dialects/postgresql/zxjdbc.py +++ b/lib/sqlalchemy/dialects/postgresql/zxjdbc.py @@ -13,12 +13,29 @@ The official Postgresql JDBC driver is at http://jdbc.postgresql.org/. """ from sqlalchemy.connectors.zxJDBC import ZxJDBCConnector -from sqlalchemy.dialects.postgresql.base import PGDialect +from sqlalchemy.dialects.postgresql.base import PGDialect, PGExecutionContext + +class PGExecutionContext_zxjdbc(PGExecutionContext): + + def create_cursor(self): + cursor = self._dbapi_connection.cursor() + cursor.datahandler = self.dialect.DataHandler(cursor.datahandler) + return cursor + class PGDialect_zxjdbc(ZxJDBCConnector, PGDialect): jdbc_db_name = 'postgresql' jdbc_driver_name = 'org.postgresql.Driver' + execution_ctx_cls = PGExecutionContext_zxjdbc + + supports_native_decimal = True + + def __init__(self, *args, **kwargs): + super(PGDialect_zxjdbc, self).__init__(*args, **kwargs) + from com.ziclix.python.sql.handler import PostgresqlDataHandler + self.DataHandler = PostgresqlDataHandler + def _get_server_version_info(self, connection): return tuple(int(x) for x in connection.connection.dbversion.split('.'))