summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine.py
diff options
context:
space:
mode:
authorRobert Leftwich <rtl@pobox.com>2006-01-29 12:30:32 +0000
committerRobert Leftwich <rtl@pobox.com>2006-01-29 12:30:32 +0000
commitd2a548d33107b0dd6d37b50e92ce39bf827461b0 (patch)
tree6b9326156ed6fa8ad2f86ba2acf9ee835ac0eb8c /lib/sqlalchemy/engine.py
parent9db98d2deeec3d77a9ba3447bdd46ef7067f257e (diff)
downloadsqlalchemy-d2a548d33107b0dd6d37b50e92ce39bf827461b0.tar.gz
Reworked RowProxy to restore column order preservation and to remove some dictionary-like behaviour that was unnecessary and caused breakage in existing code. Added tests for column preservation.
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r--lib/sqlalchemy/engine.py33
1 files changed, 10 insertions, 23 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py
index 3a3af2ce9..445ddae24 100644
--- a/lib/sqlalchemy/engine.py
+++ b/lib/sqlalchemy/engine.py
@@ -688,36 +688,23 @@ class RowProxy:
"""RowProxy objects are constructed by ResultProxy objects."""
self.__parent = parent
self.__row = row
- def keys(self):
- return self.__parent.keys
def __iter__(self):
- for k in self.keys():
- yield k
+ for i in range(0, len(self.__row)):
+ yield self.__parent._get_col(self.__row, i)
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(dict(self.iteritems()))
+ 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)
def __getattr__(self, name):
try:
- return self[name]
+ return self.__parent._get_col(self.__row, name)
except:
raise AttributeError
- def iteritems(self):
- for k in self:
- yield (k, self[k])
- def iterkeys(self):
- return self.__iter__()
- def itervalues(self):
- for _, v in self.iteritems():
- yield v
- def values(self):
- return [v for _, v in self.iteritems()]
- def items(self):
- return list(self.iteritems())
- def __len__(self):
- return len(self.keys())
-
-
-
+ def keys(self):
+ return self.__parent.keys
+ def values(self):
+ return list(self)
+ def __len__(self):
+ return len(self.__row)