summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-09-23 21:13:10 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-09-23 21:13:10 +0000
commita7866293516d41971e0baa3ad4d2da56326d019b (patch)
tree0095ef6bfdeb1e82b7bb16344600867fba4d6f9d /lib/sqlalchemy/engine
parent88e98c367ec1c9a99ff20e20944d03624a45dbd0 (diff)
downloadsqlalchemy-a7866293516d41971e0baa3ad4d2da56326d019b.tar.gz
added scalar() to ResultProxy
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r--lib/sqlalchemy/engine/base.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index 28d5ea94e..1285e8490 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -593,6 +593,7 @@ class ResultProxy:
rec = self.props[key]
self.__key_cache[key] = rec
return rec
+
def _has_key(self, row, key):
try:
self._convert_key(key)
@@ -624,7 +625,7 @@ class ResultProxy:
return self.executioncontext.supports_sane_rowcount()
def fetchall(self):
- """fetches all rows, just like DBAPI cursor.fetchall()."""
+ """fetch all rows, just like DBAPI cursor.fetchall()."""
l = []
while True:
v = self.fetchone()
@@ -633,7 +634,7 @@ class ResultProxy:
l.append(v)
def fetchone(self):
- """fetches one row, just like DBAPI cursor.fetchone()."""
+ """fetch one row, just like DBAPI cursor.fetchone()."""
row = self.cursor.fetchone()
if row is not None:
if self.echo: self.engine.log(repr(row))
@@ -644,6 +645,18 @@ class ResultProxy:
# and not just plain tuples ?
self.close()
return None
+
+ def scalar(self):
+ """fetch the first column of the first row, and close the result set."""
+ row = self.cursor.fetchone()
+ try:
+ if row is not None:
+ if self.echo: self.engine.log(repr(row))
+ return row[0]
+ else:
+ return None
+ finally:
+ self.close()
class RowProxy:
"""proxies a single cursor row for a parent ResultProxy."""