Erlend Egeberg Aasland
6c5a312fb6
bpo-45677: Reword first section of `sqlite3` docs ( #29326 )
...
* bpo-45677: Avoid addressing the reader as 'you' in sqlite3 docs
* Adjust wording
* Adjust wording again
* Typo
* Update Doc/library/sqlite3.rst
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
* Address review: adjust wording
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Lib/sqlite3/__init__.py
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Lib/sqlite3/__init__.py
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Apply Alex' suggestion, and apply 80 char limit to PR
* Minor adjustment
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2021-11-15 14:22:42 -08:00
Erlend Egeberg Aasland
c273986711
bpo-45613: Set `sqlite3.threadsafety` dynamically (GH-29227)
...
Use the compile-time selected default SQLite threaded mode to set the
DB-API 2.0 attribute 'threadsafety'
Mappings:
- SQLITE_THREADSAFE=0 => threadsafety=0
- SQLITE_THREADSAFE=1 => threadsafety=3
- SQLITE_THREADSAFE=2 => threadsafety=1
2021-11-03 21:01:37 +00:00
Erlend Egeberg Aasland
62bf263a77
bpo-10572: Move `sqlite3` tests to `Lib/test` (GH-29304)
...
Automerge-Triggered-By: GH:brettcannon
2021-10-29 15:08:19 -07:00
Erlend Egeberg Aasland
4dd1e84789
bpo-45612: Add sqlite3 module docstring (GH-29224)
2021-10-28 21:55:27 +02:00
Erlend Egeberg Aasland
8deb7afbaa
bpo-16379: Fix SQLite version checks in test_module_constants() (GH-28809)
...
Automerge-Triggered-By: GH:pablogsal
2021-10-07 12:48:13 -07:00
Erlend Egeberg Aasland
3f2c433da5
bpo-45041: Restore `sqlite3` executescript behaviour for `SELECT` queries (GH-28509)
...
* bpo-45041: Restore sqlite3 executescript behaviour for select queries
* Add regression test
2021-10-07 10:16:45 +01:00
Christian Clauss
745c9d9dfc
Fix typos in the Lib directory (GH-28775)
...
Fix typos in the Lib directory as identified by codespell.
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2021-10-06 16:13:48 -07:00
Erlend Egeberg Aasland
3e3ff09058
bpo-44958: Fix ref. leak introduced in GH-27844 (GH-28490)
...
Modify managed_connect() helper to support in-memory databases. Use it
for the regression tests added in GH-27844.
Automerge-Triggered-By: GH:pablogsal
2021-09-21 06:15:54 -07:00
Erlend Egeberg Aasland
050d103595
bpo-44958: Only reset `sqlite3` statements when needed (GH-27844)
2021-09-21 12:20:34 +01:00
Konstantin Popov
d081eab7df
Fix typo in Lib/sqlite3/test/test_types.py (GH-28226)
...
preceeding -> preceding
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-09-15 22:09:08 +02:00
Serhiy Storchaka
3e19409d64
bpo-45181: Simplify loading sqlite3 tests (GH-28304)
...
Use unittest discover instead of manually enumerating all
test modules and classes.
Also add support for filtering them by pattern.
2021-09-13 14:16:26 +03:00
Erlend Egeberg Aasland
e34bb40919
bpo-45041: Increase coverage for sqlite3.Cursor.executescript() (GH-28074)
2021-08-30 22:14:27 +01:00
Erlend Egeberg Aasland
86d8b46523
bpo-16379: expose SQLite error codes and error names in `sqlite3` (GH-27786)
2021-08-30 19:32:21 +01:00
Erlend Egeberg Aasland
f62763d267
bpo-43398: Add test for defect connection factories (GH-27966)
2021-08-30 18:49:34 +01:00
Serhiy Storchaka
07d3d54f4e
bpo-25130: Make SQLite tests more compatible with PyPy (GH-28021)
2021-08-29 13:07:40 +03:00
Erlend Egeberg Aasland
7ecd3425d4
bpo-27334: roll back transaction if sqlite3 context manager fails to commit (GH-26202)
...
Co-authored-by: Luca Citi
Co-authored-by: Berker Peksag <berker.peksag@gmail.com>
2021-08-25 11:59:42 +01:00
Serhiy Storchaka
0eec6276fd
bpo-44859: Improve error handling in sqlite3 and and raise more accurate exceptions. (GH-27654)
...
* MemoryError is now raised instead of sqlite3.Warning when
memory is not enough for encoding a statement to UTF-8
in Connection.__call__() and Cursor.execute().
* UnicodEncodeError is now raised instead of sqlite3.Warning when
the statement contains surrogate characters
in Connection.__call__() and Cursor.execute().
* TypeError is now raised instead of ValueError for non-string
script argument in Cursor.executescript().
* ValueError is now raised for script containing the null
character instead of truncating it in Cursor.executescript().
* Correctly handle exceptions raised when getting boolean value
of the result of the progress handler.
* Add many tests covering different corner cases.
Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
2021-08-08 08:49:44 +03:00
Serhiy Storchaka
7d747f26e6
bpo-44839: Raise more specific errors in sqlite3 (GH-27613)
...
MemoryError raised in user-defined functions will now preserve
its type. OverflowError will now be converted to DataError.
Previously both were converted to OperationalError.
2021-08-06 21:28:47 +03:00
Erlend Egeberg Aasland
8f010dc920
bpo-44822: Don't truncate `str`s with embedded NULL chars returned by `sqlite3` UDF callbacks (GH-27588)
2021-08-05 10:22:08 +03:00
Erlend Egeberg Aasland
7e311e496b
bpo-31746: Prevent segfaults when sqlite3.Connection is uninitialised (GH-27431)
2021-07-29 20:45:32 +01:00
Erlend Egeberg Aasland
5269c09145
bpo-44688: Remove ASCII limitation from `sqlite3` collation names (GH-27395)
2021-07-29 09:47:56 +02:00
Erlend Egeberg Aasland
b19f455339
bpo-44491: Allow clearing the sqlite3 authoriser callback (GH-26863)
2021-06-24 15:35:57 +01:00
Erlend Egeberg Aasland
2c1ae09764
bpo-43553: Improve `sqlite3` test coverage (GH-26886)
2021-06-24 12:56:56 +01:00
Erlend Egeberg Aasland
a50e28377b
bpo-42064: Move `sqlite3` exceptions to global state, part 1 of 2 (GH-26745)
...
Also adds a test to verify the (borrowed) exceptions in `sqlite3.Connection`.
2021-06-23 05:56:40 -07:00
Erlend Egeberg Aasland
5f0fc30de4
bpo-44430: Refactor `sqlite3` threading tests (GH-26748)
...
1. Rewrite ThreadTests with a _run_test() helper method that does the heavy lifting
2. Add test.support.threading_helper.reap_threads to _run_test()
3. Use _run_test() in all threading tests
4. Add test case for sqlite3.Connection.set_trace_callback
5. Add test case for sqlite3.Connection.create_collation
2021-06-20 20:26:36 +01:00
Erlend Egeberg Aasland
7d0a47e1af
bpo-44087: Disallow instantiation of sqlite3.Statement (GH-26567)
2021-06-20 20:24:32 +01:00
Erlend Egeberg Aasland
185ecdc146
bpo-40956: Convert sqlite3.connect and sqlite3.Connection.__init__ to AC (GH-24421)
2021-06-20 20:24:00 +01:00
Pablo Galindo
fa106a685c
bpo-44304: Fix crash in the sqlite3 module when the GC clears Statement objects (GH-26545)
2021-06-05 03:50:39 +01:00
Erlend Egeberg Aasland
006fd869e4
bpo-43853: Handle sqlite3_value_text() errors (GH-25422)
2021-06-04 19:34:00 +01:00
Erlend Egeberg Aasland
8363ac8607
bpo-44041: Add test for sqlite3 column count (GH-25907)
2021-06-04 18:36:08 +01:00
Erlend Egeberg Aasland
d88b47b5a3
bpo-42213: Remove redundant cyclic GC hack in sqlite3 (GH-26517)
...
The sqlite3 module now fully implements the GC protocol, so there's no
need for this workaround anymore.
- Add and use managed resource helper for connections using TESTFN
- Sort test imports
- Split open-tests into their own test case
Automerge-Triggered-By: GH:vstinner
2021-06-03 09:38:19 -07:00
Erlend Egeberg Aasland
82ad22a97d
bpo-42213: Check connection in sqlite3.Connection.__enter__ (GH-26512)
...
Try to harden connection close:
- add tests that exercise stuff against a closed database
- add wrapper for sqlite3_close_v2()
- check connection on __enter__
- explicitly free pending statements before close()
- sqlite3_close_v2() always returns SQLITE_OK
2021-06-03 17:53:47 +02:00
Erlend Egeberg Aasland
be7e467bcf
sqlite3 test suite now works with SQLITE_DQS=0 (GH-26032)
2021-05-14 19:27:21 +09:00
Erlend Egeberg Aasland
5cb601f956
bpo-43296: Handle sqlite3_value_blob() errors (GH-24674)
2021-04-15 00:09:11 +03:00
Erlend Egeberg Aasland
c1ae741997
bpo-43265: Improve sqlite3.Connection.backup error handling (GH-24586)
2021-04-14 14:45:49 +03:00
Erlend Egeberg Aasland
6f1e8ccffa
bpo-43752: Fix sqlite3 regression for zero-sized blobs with converters (GH-25228)
2021-04-14 14:18:49 +03:00
Erlend Egeberg Aasland
e161ec5dd7
bpo-43369: sqlite3_column_{text,blob} failures now raise MemoryError (GH-24723)
2021-03-04 11:50:25 +02:00
Mariusz Felisiak
3b4b2cf418
bpo-43368: Fix fetching empty bytes in sqlite3 (GH-24706)
...
Regression introduced in 47feb1feb2
.
2021-03-03 16:16:24 +02:00
Erlend Egeberg Aasland
979b23cbe4
bpo-43258: Don't allocate sqlite3 aggregate context for empty queries (GH-24569)
2021-02-19 13:20:32 +02:00
Erlend Egeberg Aasland
ea46579067
bpo-40956: Fix segfault when Connection.backup is called without target (GH-24503)
2021-02-11 01:04:02 +02:00
Erlend Egeberg Aasland
d16f6176ab
bpo-24464: Fix sqlite3.enable_shared_cache() deprecation wrapper (GH-24170)
2021-01-09 13:25:55 +02:00
Erlend Egeberg Aasland
deab1e54ff
bpo-42847: Normalise Lib/sqlite3/test/* file encodings (GH-24147)
...
Convert from ISO-8859-1 to UTF-8.
2021-01-07 02:36:35 +02:00
Erlend Egeberg Aasland
849e339a92
bpo-40823: Use loadTestsFromTestCase() iso. makeSuite() in sqlite3 tests (GH-20538)
2021-01-07 02:05:07 +02:00
Erlend Egeberg Aasland
ddb5e11683
bpo-24464: Deprecate sqlite3.enable_shared_cache (GH-24008)
2021-01-06 02:36:04 +02:00
Erlend Egeberg Aasland
cf0b23908c
bpo-40810: Require SQLite 3.7.15 (GH-24106)
2021-01-06 02:02:43 +02:00
Erlend Egeberg Aasland
f7f0ed59bc
bpo-40810: Fix CheckTraceCallbackContent for SQLite pre 3.7.15 (GH-20530)
...
Ref. [SQLite 3.7.15 changelog](https://sqlite.org/changes.html#version_3_7_15 ):
_"Avoid invoking the sqlite3_trace() callback multiple times when a statement is automatically reprepared due to SQLITE_SCHEMA errors."_
2021-01-04 15:16:43 -08:00
Erlend Egeberg Aasland
a1f401a58b
bpo-42264: Deprecate sqlite3.OptimizedUnicode (GH-23163)
2020-11-17 17:55:12 +02:00
Peter McCormick
bfee9fad84
bpo-41815: SQLite: segfault if backup called on closed database (GH-22322)
...
# [bpo-41815](): SQLite: fix segfault if backup called on closed database
Attempting to backup a closed database will trigger segfault:
```python
import sqlite3
target = sqlite3.connect(':memory:')
source = sqlite3.connect(':memory:')
source.close()
source.backup(target)
```
2020-09-19 20:40:46 -07:00
Serhiy Storchaka
0b419b7910
bpo-41662: Fix bugs in binding parameters in sqlite3 (GH-21998)
...
* When the parameters argument is a list, correctly handle the case
of changing it during iteration.
* When the parameters argument is a custom sequence, no longer
override an exception raised in ``__len__()``.
2020-09-17 10:35:44 +03:00
Erlend Egeberg Aasland
207c321f13
bpo-40744: Drop support for SQLite pre 3.7.3 (GH-20909)
...
Remove code required to support SQLite pre 3.7.3.
Co-written-by: Berker Peksag <berker.peksag@gmail.com>
Co-written-by: Sergey Fedoseev <fedoseev.sergey@gmail.com>
2020-09-07 22:26:54 +01:00