gh-92780: Improve sqlite3.Connection.create_collation docs (#92790)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Erlend Egeberg Aasland 2022-05-18 13:44:16 +02:00 committed by GitHub
parent 58a3d28039
commit 7ee19e2715
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 11 deletions

View File

@ -518,22 +518,19 @@ Connection Objects
.. method:: create_collation(name, callable)
Creates a collation with the specified *name* and *callable*. The callable will
be passed two string arguments. It should return -1 if the first is ordered
lower than the second, 0 if they are ordered equal and 1 if the first is ordered
higher than the second. Note that this controls sorting (ORDER BY in SQL) so
your comparisons don't affect other SQL operations.
Create a collation named *name* using the collating function *callable*.
*callable* is passed two :class:`string <str>` arguments,
and it should return an :class:`integer <int>`:
Note that the callable will get its parameters as Python bytestrings, which will
normally be encoded in UTF-8.
* ``1`` if the first is ordered higher than the second
* ``-1`` if the first is ordered lower than the second
* ``0`` if they are ordered equal
The following example shows a custom collation that sorts "the wrong way":
The following example shows a reverse sorting collation:
.. literalinclude:: ../includes/sqlite3/collation_reverse.py
To remove a collation, call ``create_collation`` with ``None`` as callable::
con.create_collation("reverse", None)
Remove a collation function by setting *callable* to :const:`None`.
.. versionchanged:: 3.11
The collation name can contain any Unicode character. Earlier, only