summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfinkels <jfinkels@users.noreply.github.com>2016-03-13 15:40:11 -0400
committerJeffrey Finkelstein <jeffrey.finkelstein@gmail.com>2016-03-13 16:37:55 -0400
commit6e5e64e27ef2c6a86c9aebdcefdf2cd726f1476a (patch)
tree83b1d219dff5f42e8e37c060c3f00d471ad2753a
parentf61194cb865db8b29cc65e47782bb72e54b14ada (diff)
downloadsqlalchemy-6e5e64e27ef2c6a86c9aebdcefdf2cd726f1476a.tar.gz
Adds documentation to Query.slice().pr/247
-rw-r--r--lib/sqlalchemy/orm/query.py31
1 files changed, 28 insertions, 3 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index f68a30917..b12f6d6b5 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -2466,9 +2466,35 @@ class Query(object):
@_generative(_no_statement_condition)
def slice(self, start, stop):
- """apply LIMIT/OFFSET to the ``Query`` based on a "
- "range and return the newly resulting ``Query``."""
+ """Computes the "slice" of the :class:`.Query` represented by
+ the given indices and returns the resulting :class:`.Query`.
+ The start and stop indices behave like the argument to Python's
+ built-in :func:`range` function. This method provides an
+ alternative to using ``LIMIT``/``OFFSET`` to get a slice of the
+ query.
+
+ For example, ::
+
+ session.query(User).order_by(User.id).slice(1, 3)
+
+ renders as
+
+ .. sourcecode:: sql
+
+ SELECT users.id AS users_id,
+ users.name AS users_name
+ FROM users ORDER BY users.id
+ LIMIT ? OFFSET ?
+ (2, 1)
+
+ .. seealso::
+
+ :meth:`.Query.limit`
+
+ :meth:`.Query.offset`
+
+ """
if start is not None and stop is not None:
self._offset = (self._offset or 0) + start
self._limit = stop - start
@@ -2483,7 +2509,6 @@ class Query(object):
@_generative(_no_statement_condition)
def limit(self, limit):
"""Apply a ``LIMIT`` to the query and return the newly resulting
-
``Query``.
"""