diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-10 14:55:37 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-10 14:55:37 +0000 |
commit | 2d03b0848353dd483beb5800582bb1c94e96497b (patch) | |
tree | 409ddaa374e71e0700263ed35506bcbe134989f7 | |
parent | 10b14a6c5c73a2db7517f705d857051ca107d504 (diff) | |
download | sqlalchemy-2d03b0848353dd483beb5800582bb1c94e96497b.tar.gz |
- Restored the keys() method to ResultProxy.
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 9 | ||||
-rw-r--r-- | test/sql/test_query.py | 4 |
3 files changed, 14 insertions, 3 deletions
@@ -49,7 +49,9 @@ CHANGES not part of the FunctionElement base class, allowing a "type" to be handled in a custom constructor or class-level variable. - + + - Restored the keys() method to ResultProxy. + - mysql - Fixed reflection bug whereby when COLLATE was present, nullable flag and server defaults would not be reflected. diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 6886adee8..844183628 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1859,7 +1859,14 @@ class ResultProxy(object): self._metadata = None else: self._metadata = ResultMetaData(self, metadata) - + + def keys(self): + """Return the current set of string keys for rows.""" + if self._metadata: + return self._metadata.keys + else: + return [] + @util.memoized_property def rowcount(self): """Return the 'rowcount' for this result. diff --git a/test/sql/test_query.py b/test/sql/test_query.py index 2500cde60..345ecef67 100644 --- a/test/sql/test_query.py +++ b/test/sql/test_query.py @@ -645,7 +645,9 @@ class QueryTest(TestBase): def test_keys(self): users.insert().execute(user_id=1, user_name='foo') - r = users.select().execute().first() + r = users.select().execute() + eq_([x.lower() for x in r.keys()], ['user_id', 'user_name']) + r = r.first() eq_([x.lower() for x in r.keys()], ['user_id', 'user_name']) def test_items(self): |