]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Explicitly state what happens if `order_by` is called more than once. (#8791)
authorEitan Mosenkis <eitan@mosenkis.net>
Mon, 14 Nov 2022 21:11:15 +0000 (23:11 +0200)
committerGitHub <noreply@github.com>
Mon, 14 Nov 2022 21:11:15 +0000 (22:11 +0100)
* Explicitly state what happens if `order_by` is called more than once.

The existing docs cover how to clear existing `order_by` clauses but don't actually describe the behavior of calling `order_by` multiple times with different clauses.

* Also update Select.order_by.

lib/sqlalchemy/orm/query.py
lib/sqlalchemy/sql/selectable.py

index 9ac6d07daeff635fb11008367dd7e150e3038060..2d97754f409c67368aba89cff102dc4d7f671bc0 100644 (file)
@@ -1963,9 +1963,10 @@ class Query(
 
             q = session.query(Entity).order_by(Entity.id, Entity.name)
 
-        All existing ORDER BY criteria may be cancelled by passing
-        ``None`` by itself.  New ORDER BY criteria may then be added by
-        invoking :meth:`_orm.Query.order_by` again, e.g.::
+        Calling this method multiple times is equivalent to calling it once
+        with all the clauses concatenated. All existing ORDER BY criteria may
+        be cancelled by passing ``None`` by itself.  New ORDER BY criteria may
+        then be added by invoking :meth:`_orm.Query.order_by` again, e.g.::
 
             # will erase all ORDER BY and ORDER BY new_col alone
             q = q.order_by(None).order_by(new_col)
index 488dfe721c3f0d400601e25b4d21d4b2989e4a1c..23260a9854c1807a174cf1c96fa904a0453296ce 100644 (file)
@@ -4096,9 +4096,10 @@ class GenerativeSelect(SelectBase, Generative):
 
             stmt = select(table).order_by(table.c.id, table.c.name)
 
-        All existing ORDER BY criteria may be cancelled by passing
-        ``None`` by itself.  New ORDER BY criteria may then be added by
-        invoking :meth:`_sql.Select.order_by` again, e.g.::
+        Calling this method multiple times is equivalent to calling it once
+        with all the clauses concatenated. All existing ORDER BY criteria may
+        be cancelled by passing ``None`` by itself.  New ORDER BY criteria may
+        then be added by invoking :meth:`_orm.Query.order_by` again, e.g.::
 
             # will erase all ORDER BY and ORDER BY new_col alone
             stmt = stmt.order_by(None).order_by(new_col)