summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/mapping/mapper.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/mapping/mapper.py')
-rw-r--r--lib/sqlalchemy/mapping/mapper.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/sqlalchemy/mapping/mapper.py b/lib/sqlalchemy/mapping/mapper.py
index a0de86df4..f8faea855 100644
--- a/lib/sqlalchemy/mapping/mapper.py
+++ b/lib/sqlalchemy/mapping/mapper.py
@@ -9,6 +9,7 @@ import sqlalchemy.sql as sql
import sqlalchemy.schema as schema
import sqlalchemy.engine as engine
import sqlalchemy.util as util
+import util as mapperutil
import sync
from sqlalchemy.exceptions import *
import objectstore
@@ -419,7 +420,7 @@ class Mapper(object):
e.g. result = usermapper.select_by(user_name = 'fred')
"""
- return self.select_whereclause(self._by_clause(*args, **params))
+ return mapperutil.SelectResults(self, self._by_clause(*args, **params))
def selectfirst_by(self, *args, **params):
"""works like select_by(), but only returns the first result by itself, or None if no
@@ -428,7 +429,7 @@ class Mapper(object):
def selectone_by(self, *args, **params):
"""works like selectfirst_by(), but throws an error if not exactly one result was returned."""
- ret = self.select_by(*args, **params)
+ ret = list(self.select_by(*args, **params)[0:2])
if len(ret) == 1:
return ret[0]
raise InvalidRequestError('Multiple rows returned for selectone_by')
@@ -491,7 +492,7 @@ class Mapper(object):
"""works like select(), but only returns the first result by itself, or None if no
objects returned."""
params['limit'] = 1
- ret = self.select(*args, **params)
+ ret = self.select_whereclause(*args, **params)
if ret:
return ret[0]
else:
@@ -499,7 +500,7 @@ class Mapper(object):
def selectone(self, *args, **params):
"""works like selectfirst(), but throws an error if not exactly one result was returned."""
- ret = self.select(*args, **params)
+ ret = list(self.select(*args, **params)[0:2])
if len(ret) == 1:
return ret[0]
raise InvalidRequestError('Multiple rows returned for selectone')
@@ -517,7 +518,7 @@ class Mapper(object):
if arg is not None and isinstance(arg, sql.Selectable):
return self.select_statement(arg, **kwargs)
else:
- return self.select_whereclause(arg, **kwargs)
+ return mapperutil.SelectResults(self, arg, ops=kwargs)
def select_whereclause(self, whereclause=None, params=None, **kwargs):
statement = self._compile(whereclause, **kwargs)