diff options
author | jfinkels <jfinkels@users.noreply.github.com> | 2016-03-13 15:40:11 -0400 |
---|---|---|
committer | Jeffrey Finkelstein <jeffrey.finkelstein@gmail.com> | 2016-03-13 16:37:55 -0400 |
commit | 6e5e64e27ef2c6a86c9aebdcefdf2cd726f1476a (patch) | |
tree | 83b1d219dff5f42e8e37c060c3f00d471ad2753a | |
parent | f61194cb865db8b29cc65e47782bb72e54b14ada (diff) | |
download | sqlalchemy-6e5e64e27ef2c6a86c9aebdcefdf2cd726f1476a.tar.gz |
Adds documentation to Query.slice().pr/247
-rw-r--r-- | lib/sqlalchemy/orm/query.py | 31 |
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``. """ |