summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-09-24 09:40:41 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-09-24 09:40:41 +0000
commitcbbc9fc9a921b1aa8dab7f69b9027365050467cf (patch)
tree6d4e49ef494b85f1018b13738394b8ba3ba91050 /lib/sqlalchemy/engine.py
parenta9d104157440883ed1ac0a32409b923a9cd7f3a9 (diff)
downloadsqlalchemy-cbbc9fc9a921b1aa8dab7f69b9027365050467cf.tar.gz
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r--lib/sqlalchemy/engine.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py
index df508f654..ad88bcc3c 100644
--- a/lib/sqlalchemy/engine.py
+++ b/lib/sqlalchemy/engine.py
@@ -178,7 +178,7 @@ class SQLEngine(schema.SchemaEngine):
def post_exec(self, connection, cursor, statement, parameters, many = False, echo = None, **kwargs):
pass
- def execute(self, statement, parameters, connection = None, echo = None, **kwargs):
+ def execute(self, statement, parameters, connection = None, echo = None, typemap = None, **kwargs):
if parameters is None:
parameters = {}
@@ -198,14 +198,14 @@ class SQLEngine(schema.SchemaEngine):
else:
c.execute(statement, parameters)
self.post_exec(connection, c, statement, parameters, echo = echo, **kwargs)
- return ResultProxy(c, self, self.echo)
+ return ResultProxy(c, self.echo, typemap = typemap)
def log(self, msg):
print msg
class ResultProxy:
- def __init__(self, cursor, engine, echo = False):
+ def __init__(self, cursor, echo = False, typemap = None):
self.cursor = cursor
self.echo = echo
metadata = cursor.description
@@ -213,17 +213,17 @@ class ResultProxy:
i = 0
if metadata is not None:
for item in metadata:
- print repr(item)
- #rec = (engine.type_descriptor(item[1]), i)
- rec = (None, i)
+ if typemap is not None:
+ rec = (typemap.get(item[0], types.NULLTYPE), i)
+ else:
+ rec = (types.NULLTYPE, i)
self.props[item[0]] = rec
self.props[i] = rec
i+=1
def _get_col(self, row, key):
rec = self.props[key]
- #return rec[0].convert_result_value(row[rec[1]])
- return row[rec[1]]
+ return rec[0].convert_result_value(row[rec[1]])
def fetchall(self):
l = []
@@ -245,9 +245,11 @@ class RowProxy:
def __init__(self, parent, row):
self.parent = parent
self.row = row
+ def __eq__(self, other):
+ return (other is self) or (other == tuple([self.parent._get_col(self.row, key) for key in range(0, len(self.row))]))
def __repr__(self):
- return repr(self.row)
+ return repr(tuple([self.parent._get_col(self.row, key) for key in range(0, len(self.row))]))
def __getitem__(self, key):
return self.parent._get_col(self.row, key)
-NULLTYPEENGINE = types.NullTypeEngine()
+