Registers a callable to convert the custom Python type *type* into one of
SQLite's supported types. The callable *callable* accepts as single parameter
the Python value, and must return a value of the following types: int,
- float, str, bytes (UTF-8 encoded) or buffer.
+ float, str or bytes.
.. function:: complete_statement(sql)
as the SQL function.
The function can return any of the types supported by SQLite: bytes, str, int,
- float, buffer and None.
+ float and None.
Example:
final result of the aggregate.
The ``finalize`` method can return any of the types supported by SQLite:
- bytes, str, int, float, buffer and None.
+ bytes, str, int, float and None.
Example:
+-------------------------------+-------------+
| :class:`float` | ``REAL`` |
+-------------------------------+-------------+
-| :class:`bytes` (UTF8-encoded) | ``TEXT`` |
-+-------------------------------+-------------+
| :class:`str` | ``TEXT`` |
+-------------------------------+-------------+
-| :class:`buffer` | ``BLOB`` |
+| :class:`bytes` | ``BLOB`` |
+-------------------------------+-------------+
+-------------+---------------------------------------------+
| ``TEXT`` | depends on text_factory, str by default |
+-------------+---------------------------------------------+
-| ``BLOB`` | buffer |
+| ``BLOB`` | :class:`bytes` |
+-------------+---------------------------------------------+
The type system of the :mod:`sqlite3` module is extensible in two ways: you can
As described before, SQLite supports only a limited set of types natively. To
use other Python types with SQLite, you must **adapt** them to one of the
sqlite3 module's supported types for SQLite: one of NoneType, int, float,
-str, bytes, buffer.
+str, bytes.
The :mod:`sqlite3` module uses Python object adaptation, as described in
:pep:`246` for this. The protocol to use is :class:`PrepareProtocol`.