gh-131002: clarify how to enforce sqlite3 column types for generated fields (#131006)

This commit is contained in:
Erlend E. Aasland 2025-03-17 23:26:27 +01:00 committed by GitHub
parent 149fbb01f2
commit f48887fb97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 21 additions and 18 deletions

View File

@ -290,9 +290,6 @@ Module functions
:const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES`
to enable this.
Column names takes precedence over declared types if both flags are set.
Types cannot be detected for generated fields (for example ``max(data)``),
even when the *detect_types* parameter is set; :class:`str` will be
returned instead.
By default (``0``), type detection is disabled.
:param isolation_level:
@ -436,21 +433,6 @@ Module constants
old style (pre-Python 3.12) transaction control behaviour.
See :ref:`sqlite3-transaction-control-isolation-level` for more information.
.. data:: PARSE_COLNAMES
Pass this flag value to the *detect_types* parameter of
:func:`connect` to look up a converter function by
using the type name, parsed from the query column name,
as the converter dictionary key.
The type name must be wrapped in square brackets (``[]``).
.. code-block:: sql
SELECT p as "p [point]" FROM test; ! will look up converter "point"
This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|``
(bitwise or) operator.
.. data:: PARSE_DECLTYPES
Pass this flag value to the *detect_types* parameter of
@ -472,6 +454,27 @@ Module constants
This flag may be combined with :const:`PARSE_COLNAMES` using the ``|``
(bitwise or) operator.
.. note::
Generated fields (for example ``MAX(p)``) are returned as :class:`str`.
Use :const:`!PARSE_COLNAMES` to enforce types for such queries.
.. data:: PARSE_COLNAMES
Pass this flag value to the *detect_types* parameter of
:func:`connect` to look up a converter function by
using the type name, parsed from the query column name,
as the converter dictionary key.
The query column name must be wrapped in double quotes (``"``)
and the type name must be wrapped in square brackets (``[]``).
.. code-block:: sql
SELECT MAX(p) as "p [point]" FROM test; ! will look up converter "point"
This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|``
(bitwise or) operator.
.. data:: SQLITE_OK
SQLITE_DENY
SQLITE_IGNORE