diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-12-18 06:13:42 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-12-18 06:13:42 +0000 |
commit | df68f307775a545e067f3a8a3f6bcc9e1f11d9b2 (patch) | |
tree | a0405894532079a4fdda9d1a7a840ce212b8c6be /lib/sqlalchemy/engine/base.py | |
parent | faf4aca165cef9bbd8d90b7a4f4ccf2b3d986ea1 (diff) | |
download | sqlalchemy-df68f307775a545e067f3a8a3f6bcc9e1f11d9b2.tar.gz |
get most oracle tests in sql working again....
Diffstat (limited to 'lib/sqlalchemy/engine/base.py')
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 3219e6c5b..783d60cf4 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1656,8 +1656,17 @@ class BufferedColumnResultProxy(ResultProxy): _process_row = BufferedColumnRow def _get_col(self, row, key): - rec = self._key_cache[key] - return row[rec[2]] + try: + rec = self._key_cache[key] + return row[rec[2]] + except TypeError: + # the 'slice' use case is very infrequent, + # so we use an exception catch to reduce conditionals in _get_col + if isinstance(key, slice): + indices = key.indices(len(row)) + return tuple([self._get_col(row, i) for i in xrange(*indices)]) + else: + raise def fetchall(self): l = [] |