summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-07-17 01:17:33 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-07-17 01:17:33 +0000
commit4dc42faab3734ccad7dd8951d6f190e9868dc37f (patch)
treec2a565895b3cdf8adbcfebb45c5c2436f7ab8acd /lib/sqlalchemy/engine.py
parent639216e4782532e37d50f3fd36f4660b3e75b441 (diff)
downloadsqlalchemy-4dc42faab3734ccad7dd8951d6f190e9868dc37f.tar.gz
basic eager loading
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r--lib/sqlalchemy/engine.py26
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]]