diff options
author | Marko Kreen | 2007-07-23 14:16:22 +0000 |
---|---|---|
committer | Marko Kreen | 2007-07-23 14:16:22 +0000 |
commit | a03667304da8e8b3a28d8f76fdb6cac14d0e967f (patch) | |
tree | 10e424fe6c81467d8882b5d0e57dcd002a1e07cf /python/skytools/sqltools.py | |
parent | 868c7b200a9fa6ea9ac1fb4dcf2beb16422d6d37 (diff) |
skytools: separate psycopg specific code
Diffstat (limited to 'python/skytools/sqltools.py')
-rw-r--r-- | python/skytools/sqltools.py | 50 |
1 files changed, 1 insertions, 49 deletions
diff --git a/python/skytools/sqltools.py b/python/skytools/sqltools.py index 11e259af..ba1df74d 100644 --- a/python/skytools/sqltools.py +++ b/python/skytools/sqltools.py @@ -12,45 +12,10 @@ __all__ = [ "exists_function", "exists_language", "Snapshot", "magic_insert", "db_copy_from_dict", "db_copy_from_list", "CopyPipe", "full_copy", "DBObject", "DBSchema", "DBTable", "DBFunction", "DBLanguage", - "db_install", "connect_database" + "db_install", ] -try: - ##from psycopg2.psycopg1 import connect as _pgconnect - # psycopg2.psycopg1.cursor is too backwards compatible, - # to the point of avoiding optimized access. - - ## only backwards compat thing we need is dict* methods - import psycopg2.extensions, psycopg2.extras - class _CompatRow(psycopg2.extras.DictRow): - def __setitem__(self, k, v): - if type(k) != int: - if k not in self._index: - self._index[k] = len(self._index) - k = self._index[k] - while k >= len(self): - self.append(None) - return list.__setitem__(self, k, v) - class _CompatCursor(psycopg2.extras.DictCursor): - """Regular psycopg2 DictCursor with dict* methods.""" - def __init__(self, *args, **kwargs): - psycopg2.extras.DictCursor.__init__(self, *args, **kwargs) - self.row_factory = _CompatRow - dictfetchone = psycopg2.extras.DictCursor.fetchone - dictfetchall = psycopg2.extras.DictCursor.fetchall - dictfetchmany = psycopg2.extras.DictCursor.fetchmany - class _CompatConnection(psycopg2.extensions.connection): - """Connection object that uses _CompatCursor.""" - def cursor(self): - return psycopg2.extensions.connection.cursor(self, cursor_factory = _CompatCursor) - def _pgconnect(cstr): - """Create a psycopg2 connection.""" - return _CompatConnection(cstr) -except ImportError: - # use psycopg 1 - from psycopg import connect as _pgconnect - # # Fully qualified table name # @@ -448,16 +413,3 @@ def db_install(curs, list, log = None): if log: log.info('%s is installed' % obj.name) -def connect_database(connstr): - """Create a db connection with connect_timeout option. - - Default connect_timeout is 15, to change put it directly into dsn. - """ - - # allow override - if connstr.find("connect_timeout") < 0: - connstr += " connect_timeout=15" - - # create connection - return _pgconnect(connstr) - |