summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-02-10 14:55:37 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-02-10 14:55:37 +0000
commit2d03b0848353dd483beb5800582bb1c94e96497b (patch)
tree409ddaa374e71e0700263ed35506bcbe134989f7
parent10b14a6c5c73a2db7517f705d857051ca107d504 (diff)
downloadsqlalchemy-2d03b0848353dd483beb5800582bb1c94e96497b.tar.gz
- Restored the keys() method to ResultProxy.
-rw-r--r--CHANGES4
-rw-r--r--lib/sqlalchemy/engine/base.py9
-rw-r--r--test/sql/test_query.py4
3 files changed, 14 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index 51a47ffb9..a9f22f242 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 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):