diff options
author | Erlend Egeberg Aasland <erlend.aasland@protonmail.com> | 2022-07-26 08:12:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-26 08:12:50 (GMT) |
commit | a4fd732155771d7bedd7cd7e372b2387e93d1dbc (patch) | |
tree | f16e571d89b4f9a643b95003a4f47436b9a8c528 /Doc/library/sqlite3.rst | |
parent | dd0c1a3577618c30598a0a57f9a91e316605f6b9 (diff) | |
download | cpython-a4fd732155771d7bedd7cd7e372b2387e93d1dbc.zip cpython-a4fd732155771d7bedd7cd7e372b2387e93d1dbc.tar.gz cpython-a4fd732155771d7bedd7cd7e372b2387e93d1dbc.tar.bz2 |
[3.10] gh-95235: Add explicit parameter list to some sqlite3 methods (GH-95240) (#95268)
Co-authored-by: CAM Gerlach <CAM.Gerlach@Gerlach.CAM>.
(cherry picked from commit 5012bedc7ca7d78b5a42bf60eef55bac263f4060)
Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@protonmail.com>
Diffstat (limited to 'Doc/library/sqlite3.rst')
-rw-r--r-- | Doc/library/sqlite3.rst | 132 |
1 files changed, 87 insertions, 45 deletions
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst index 868e2a5..2c7438a 100644 --- a/Doc/library/sqlite3.rst +++ b/Doc/library/sqlite3.rst @@ -258,7 +258,7 @@ Module functions and constants Can be ``"DEFERRED"`` (default), ``"EXCLUSIVE"`` or ``"IMMEDIATE"``; or :const:`None` to disable opening transactions implicitly. See :ref:`sqlite3-controlling-transactions` for more. - :type isolation_level: str | None + :type isolation_level: str | :const:`None` :param check_same_thread: If :const:`True` (default), only the creating thread may use the connection. @@ -288,7 +288,7 @@ Module functions and constants enabling various :ref:`sqlite3-uri-tricks`. :type uri: bool - :rtype: sqlite3.Connection + :rtype: Connection .. audit-event:: sqlite3.connect database sqlite3.connect .. audit-event:: sqlite3.connect/handle connection_handle sqlite3.connect @@ -423,21 +423,35 @@ Connection Objects .. method:: create_function(name, narg, func, *, deterministic=False) - Creates a user-defined function that you can later use from within SQL - statements under the function name *name*. *narg* is the number of - parameters the function accepts (if *narg* is -1, the function may - take any number of arguments), and *func* is a Python callable that is - called as the SQL function. If *deterministic* is true, the created function - is marked as `deterministic <https://sqlite.org/deterministic.html>`_, which - allows SQLite to perform additional optimizations. This flag is supported by - SQLite 3.8.3 or higher, :exc:`NotSupportedError` will be raised if used - with older versions. + Create or remove a user-defined SQL function. - The function can return any of - :ref:`the types natively supported by SQLite <sqlite3-types>`. + :param name: + The name of the SQL function. + :type name: str - .. versionchanged:: 3.8 - The *deterministic* parameter was added. + :param narg: + The number of arguments the SQL function can accept. + If ``-1``, it may take any number of arguments. + :type narg: int + + :param func: + A callable that is called when the SQL function is invoked. + The callable must return :ref:`a type natively supported by SQLite + <sqlite3-types>`. + Set to :const:`None` to remove an existing SQL function. + :type func: :term:`callback` | :const:`None` + + :param deterministic: + If :const:`True`, the created SQL function is marked as + `deterministic <https://sqlite.org/deterministic.html>`_, + which allows SQLite to perform additional optimizations. + :type deterministic: bool + + :raises NotSupportedError: + If *deterministic* is used with SQLite versions older than 3.8.3. + + .. versionadded:: 3.8 + The *deterministic* parameter. Example: @@ -446,15 +460,29 @@ Connection Objects .. method:: create_aggregate(name, /, n_arg, aggregate_class) - Creates a user-defined aggregate function. + Create or remove a user-defined SQL aggregate function. + + :param name: + The name of the SQL aggregate function. + :type name: str + + :param n_arg: + The number of arguments the SQL aggregate function can accept. + If ``-1``, it may take any number of arguments. + :type n_arg: int + + :param aggregate_class: + A class must implement the following methods: - The aggregate class must implement a ``step`` method, which accepts the number - of parameters *n_arg* (if *n_arg* is -1, the function may take - any number of arguments), and a ``finalize`` method which will return the - final result of the aggregate. + * ``step()``: Add a row to the aggregate. + * ``finalize()``: Return the final result of the aggregate as + :ref:`a type natively supported by SQLite <sqlite3-types>`. - The ``finalize`` method can return any of - :ref:`the types natively supported by SQLite <sqlite3-types>`. + The number of arguments that the ``step()`` method must accept + is controlled by *n_arg*. + + Set to :const:`None` to remove an existing SQL aggregate function. + :type aggregate_class: :term:`class` | :const:`None` Example: @@ -643,29 +671,43 @@ Connection Objects .. method:: backup(target, *, pages=-1, progress=None, name="main", sleep=0.250) - This method makes a backup of an SQLite database even while it's being accessed - by other clients, or concurrently by the same connection. The copy will be - written into the mandatory argument *target*, that must be another - :class:`Connection` instance. - - By default, or when *pages* is either ``0`` or a negative integer, the entire - database is copied in a single step; otherwise the method performs a loop - copying up to *pages* pages at a time. - - If *progress* is specified, it must either be ``None`` or a callable object that - will be executed at each iteration with three integer arguments, respectively - the *status* of the last iteration, the *remaining* number of pages still to be - copied and the *total* number of pages. - - The *name* argument specifies the database name that will be copied: it must be - a string containing either ``"main"``, the default, to indicate the main - database, ``"temp"`` to indicate the temporary database or the name specified - after the ``AS`` keyword in an ``ATTACH DATABASE`` statement for an attached - database. - - The *sleep* argument specifies the number of seconds to sleep by between - successive attempts to backup remaining pages, can be specified either as an - integer or a floating point value. + Create a backup of an SQLite database. + + Works even if the database is being accessed by other clients + or concurrently by the same connection. + + :param target: + The database connection to save the backup to. + :type target: Connection + + :param pages: + The number of pages to copy at a time. + If equal to or less than ``0``, + the entire database is copied in a single step. + Defaults to ``-1``. + :type pages: int + + :param progress: + If set to a callable, it is invoked with three integer arguments for + every backup iteration: + the *status* of the last iteration, + the *remaining* number of pages still to be copied, + and the *total* number of pages. + Defaults to :const:`None`. + :type progress: :term:`callback` | :const:`None` + + :param name: + The name of the database to back up. + Either ``"main"`` (the default) for the main database, + ``"temp"`` for the temporary database, + or the name of a custom database as attached using the + ``ATTACH DATABASE`` SQL statment. + :type name: str + + :param sleep: + The number of seconds to sleep between successive attempts + to back up remaining pages. + :type sleep: float Example 1, copy an existing database into another:: |