From: Mike Bayer Date: Wed, 10 Feb 2010 14:55:37 +0000 (+0000) Subject: - Restored the keys() method to ResultProxy. X-Git-Tag: rel_0_6beta2~213 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2d03b0848353dd483beb5800582bb1c94e96497b;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Restored the keys() method to ResultProxy. --- diff --git a/CHANGES b/CHANGES index 51a47ffb9a..a9f22f242a 100644 --- a/CHANGES +++ b/CHANGES @@ -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 6886adee89..844183628d 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 2500cde60f..345ecef67a 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):