]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
r815@lightspeed: robert | 2006-01-11 10:15:14 +1100
authorRobert Leftwich <rtl@pobox.com>
Tue, 10 Jan 2006 23:15:54 +0000 (23:15 +0000)
committerRobert Leftwich <rtl@pobox.com>
Tue, 10 Jan 2006 23:15:54 +0000 (23:15 +0000)
 Replaced use of repr() with custom identifiers in identity related areas to improve performance

lib/sqlalchemy/mapping/objectstore.py
lib/sqlalchemy/schema.py

index 5ca78b6f4b375ad924cfd494e19dd84bc92e9718..5581d60ca5c12824d6f2e969dff2dd3da67adbc8 100644 (file)
@@ -34,7 +34,8 @@ def get_id_key(ident, class_, table):
     selectable - a Selectable object which represents all the object's column-based fields.
     this Selectable may be synonymous with the table argument or can be a larger construct
     containing that table. return value: a tuple object which is used as an identity key. """
-    return (class_, repr(table), tuple(ident))
+    return (class_, "Table(%d)" % id(table), tuple(ident))
+    
 def get_row_key(row, class_, table, primary_key):
     """returns an identity-map key for use in storing/retrieving an item from the identity
     map, given a result set row.
@@ -50,7 +51,7 @@ def get_row_key(row, class_, table, primary_key):
     this Selectable may be synonymous with the table argument or can be a larger construct
     containing that table. return value: a tuple object which is used as an identity key.
     """
-    return (class_, repr(table), tuple([row[column] for column in primary_key]))
+    return (class_, "Table(%d)" % id(table), tuple([row[column] for column in primary_key]))
 
 def begin():
     """begins a new UnitOfWork transaction.  the next commit will affect only
index b0cf931d8846da1ef633b16656a5f6e232426ceb..511592e09a43282a5e37721207ccf9936ac78902 100644 (file)
@@ -40,7 +40,7 @@ class SchemaItem(object):
 
     def hash_key(self):
         """returns a string that identifies this SchemaItem uniquely"""
-        return repr(self)
+        return "%s(%d)" % (self.__class__.__name__, id(self))
 
     def __repr__(self):
         return "%s()" % self.__class__.__name__