diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-07-17 01:17:33 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-07-17 01:17:33 +0000 |
commit | 4dc42faab3734ccad7dd8951d6f190e9868dc37f (patch) | |
tree | c2a565895b3cdf8adbcfebb45c5c2436f7ab8acd /lib/sqlalchemy/engine.py | |
parent | 639216e4782532e37d50f3fd36f4660b3e75b441 (diff) | |
download | sqlalchemy-4dc42faab3734ccad7dd8951d6f190e9868dc37f.tar.gz |
basic eager loading
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r-- | lib/sqlalchemy/engine.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 0814caf57..6ea026159 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -132,3 +132,29 @@ class SQLEngine(schema.SchemaEngine): def log(self, msg): print msg + + +class ResultProxy: + def __init__(self, cursor): + self.cursor = cursor + metadata = cursor.description + self.props = {} + i = 0 + for item in metadata: + self.props[item[0]] = i + self.props[i] = i + i+=1 + + def fetchone(self): + row = self.cursor.fetchone() + if row is not None: + return RowProxy(self, row) + else: + return None + +class RowProxy: + def __init__(self, parent, row): + self.parent = parent + self.row = row + def __getitem__(self, key): + return self.row[self.parent.props[key]] |