Erlend Egeberg Aasland
0920b61a0c
bpo-45512: Use Argument Clinic to set sqlite3 isolation level (GH-29593)
2021-11-18 18:18:09 +09:00
Dong-hee Na
e002bbc6cc
bpo-45512: Simplify manage isolation level (GH-29562)
2021-11-17 21:47:02 +09:00
Erlend Egeberg Aasland
9d6215a54c
bpo-45126: Harden `sqlite3` connection initialisation (GH-28227)
2021-11-16 15:53:35 +01:00
Erlend Egeberg Aasland
822c3dcce3
bpo-45512: Raise exception if sqlite3.Connection.__init__ is called with bad isolation level ( #29561 )
...
* bpo-45512: Raise sqlite3.Connection.__init__ is called with bad isolation level
* Also explicitly test allowed isolation levels
* Use subTest for better error messages if something goes wrong
* Update Lib/test/test_sqlite3/test_dbapi.py
Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
2021-11-15 21:55:38 +09:00
Erlend Egeberg Aasland
b567b9d74b
bpo-45512: Simplify isolation_level handling in `sqlite3` (GH-29053)
2021-11-15 16:50:59 +09:00
Erlend Egeberg Aasland
c1323d4b8c
bpo-45754: Use correct SQLite limit when checking statement length (GH-29489)
2021-11-10 18:46:11 +00:00
Christian Heimes
e9594f6747
bpo-45731: Handle --enable-loadable-sqlite-extensions in configure (GH-29434)
2021-11-06 10:30:37 +01: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
456e27ac0a
bpo-24139: Add support for SQLite extended result codes (GH-28076)
2021-11-02 23:49:38 +00:00
Erlend Egeberg Aasland
401272e6e6
bpo-42064: Adapt `sqlite3` to multi-phase init (PEP 489) (GH-29234)
2021-11-02 16:35:51 +01:00
Erlend Egeberg Aasland
b6b38a8226
bpo-45243: Add support for setting/getting `sqlite3` connection limits (GH-28463)
2021-11-01 22:50:53 +00:00
Erlend Egeberg Aasland
39b4d5938c
bpo-45634: Don't combine error checks when adding `sqlite3` int constants (GH-29251)
2021-10-31 19:01:19 +09:00
Erlend Egeberg Aasland
e2e62b3808
bpo-45581: Raise `MemoryError` in `sqlite3.connect` if SQLite signals memory error (GH-29171)
2021-10-29 22:21:58 +02:00
Erlend Egeberg Aasland
8f24b7dbcb
bpo-42064: Convert `sqlite3` global state to module state (GH-29073)
2021-10-27 13:12:21 +02:00
Erlend Egeberg Aasland
09c04e7f0d
bpo-42064: Add module backref to `sqlite3` callback context (GH-28242)
2021-10-19 15:44:45 +02:00
Erlend Egeberg Aasland
cfb1df3b71
bpo-44991: Normalise function and collation callback naming (GH-28209)
2021-10-12 13:38:49 +02:00
Victor Stinner
d943d19172
bpo-45439: Move _PyObject_CallNoArgs() to pycore_call.h (GH-28895)
...
* Move _PyObject_CallNoArgs() to pycore_call.h (internal C API).
* _ssl, _sqlite and _testcapi extensions now call the public
PyObject_CallNoArgs() function, rather than _PyObject_CallNoArgs().
* _lsprof extension is now built with Py_BUILD_CORE_MODULE macro
defined to get access to internal _PyObject_CallNoArgs().
2021-10-12 08:38:19 +02:00
Victor Stinner
ce3489cfdb
bpo-45439: Rename _PyObject_CallNoArg() to _PyObject_CallNoArgs() (GH-28891)
...
Fix typo in the private _PyObject_CallNoArg() function name: rename
it to _PyObject_CallNoArgs() to be consistent with the public
function PyObject_CallNoArgs().
2021-10-12 00:42:23 +02: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
Erlend Egeberg Aasland
7b88f63e1d
bpo-44958: Revert GH-27844 (GH-28574)
...
This reverts commit 050d103595
, but keeps
the tests.
2021-09-26 22:24:19 +01:00
Erlend Egeberg Aasland
050d103595
bpo-44958: Only reset `sqlite3` statements when needed (GH-27844)
2021-09-21 12:20:34 +01:00
Erlend Egeberg Aasland
a6779715c4
bpo-45041: Simplify `sqlite3.Cursor.executescript()` (GH-28020)
2021-09-19 23:52:36 +01:00
Erlend Egeberg Aasland
771a546713
bpo-45040: Simplify sqlite3 transaction control functions (GH-28019)
2021-09-19 23:51:36 +01:00
Erlend Egeberg Aasland
c78d5ca380
bpo-45126: Fix ref. leak in `sqlite3.Connection.__init__` (GH-28231)
2021-09-12 21:27:42 +09:00
Serhiy Storchaka
92bf8691fb
bpo-43413: Fix handling keyword arguments in subclasses of some buitin classes (GH-26456)
...
* Constructors of subclasses of some buitin classes (e.g. tuple, list,
frozenset) no longer accept arbitrary keyword arguments.
* Subclass of set can now define a __new__() method with additional
keyword parameters without overriding also __init__().
2021-09-12 13:27:50 +03:00
Erlend Egeberg Aasland
979336de34
bpo-42064: Pass module state to trace, progress, and authorizer callbacks (GH-27940)
...
- add print-or-clear traceback helper
- add helpers to clear and visit saved contexts
- modify callbacks to use the new callback_context struct
2021-09-07 15:06:17 +02:00
Erlend Egeberg Aasland
0474d06008
bpo-44991: Normalise `sqlite3` callback naming (GH-28088)
...
- all callbacks are now named xxx_callback
- normalise callable naming in set_*() functions
- normalise context argument naming in callbacks
The sqlite code is being "touched" in bpo-42064 (and related issues);
this style change makes it easier to work with and review.
2021-09-07 13:43:44 +02:00
Erlend Egeberg Aasland
65c5756be9
Remove unused macros from Modules/_sqlite/microprotocols.h (GH-28171)
2021-09-05 12:59:30 +09:00
Petr Viktorin
01dea5f12b
bpo-42064: Offset arguments for PyObject_Vectorcall in the _sqlite module (GH-27931)
...
This allows e.g. methods to be called efficiently by providing
space for a "self" argument; see PY_VECTORCALL_ARGUMENTS_OFFSET docs.
2021-08-31 14:34:44 +02:00
Erlend Egeberg Aasland
001ef4600f
bpo-44991: Make GIL handling more explicit in `sqlite3` callbacks (GH-27934)
...
- acquire the GIL at the very start[1]
- release the GIL at the very end
[1] The trace callback performs a sanity check before acquiring the GIL
Automerge-Triggered-By: GH:encukou
2021-08-31 05:18:43 -07: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
a3c11cebf1
bpo-27334: Fix reference leak introduced by GH-26202 (GH-27942)
2021-08-25 15:57:54 +02: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
Erlend Egeberg Aasland
3df0fc89bc
bpo-44976: Lazy creation of sqlite3 result rows (GH-27884)
2021-08-25 11:28:47 +01:00
Erlend Egeberg Aasland
9ed523159c
bpo-42064: Pass module state to `sqlite3` UDF callbacks (GH-27456)
...
- Establish common callback context struct
- Convert UDF callbacks to fetch module state from callback context
2021-08-24 05:24:09 -07:00
Erlend Egeberg Aasland
6dd1cdb0cf
Remove unused UNKNOWN macros from cursor.h and prepare_protocol.h (GH-27885)
2021-08-22 22:23:45 +09:00
Erlend Egeberg Aasland
878e726701
bpo-44965: Early exit for non-DML statements in sqlite3.Cursor.executemany() (GH-27865)
2021-08-21 19:58:58 +01:00
Erlend Egeberg Aasland
243b6c3b8f
bpo-44079: Strip superfluous statement cache from sqlite3.Connection (GH-25998)
2021-08-19 00:37:53 +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
2d34664051
bpo-31746: Fix broken call in GH-27431 (GH-27464)
2021-07-29 21:47:23 +01: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
d542742128
bpo-42064: Optimise `sqlite3` state access, part 1 (GH-27273)
...
Prepare for module state:
- Add "get state by defining class" and "get state by module def" stubs
- Add AC defining class when needed
- Add state pointer to connection context
- Pass state as argument to utility functions
Automerge-Triggered-By: GH:encukou
2021-07-29 02:21:45 -07: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
890e22957d
bpo-42064: Migrate to `sqlite3_create_collation_v2` (GH-27156)
...
This implies that SQLite now takes care of destroying the callback
context (the PyObject callable it has been passed), so we can strip the
collation dict from the connection object.
2021-07-27 15:54:20 +02:00
Erlend Egeberg Aasland
4c0deb25ac
bpo-42064: Finalise establishing sqlite3 global state (GH-27155)
...
With this, all sqlite3 static globals have been moved to the global state.
There are a couple of global static strings left, but there should be no need for adding them to the state.
https://bugs.python.org/issue42064
2021-07-20 12:59:18 +02:00
Erlend Egeberg Aasland
5007a4f23c
bpo-44641: Use vectorcall in sqlite3 collation callback (GH-27158)
2021-07-15 16:49:14 +01:00
Erlend Egeberg Aasland
81b8c0a385
Fix docstring typo in sqlite3.Connection.executescript/sqlite3.Cursor.executescript (GH-27147)
...
Both `executescript` methods contain the same docstring typo:
_"Executes a multiple SQL statements at once."_ => _"Executes multiple SQL statements at once."_
Automerge-Triggered-By: GH:pablogsal
2021-07-14 14:54:37 -07:00
Erlend Egeberg Aasland
05162993fe
bpo-42064: Move `sqlite3` exceptions to global state, part 2 of 2 (GH-26884)
...
Automerge-Triggered-By: GH:encukou
2021-07-14 04:26:44 -07: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
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
019ad62afd
bpo-42064: Remove stale extern declarations in `sqlite3` headers (GH-26840)
2021-06-23 21:06:53 +09: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
Erlend Egeberg Aasland
00710e6346
bpo-43908: Make heap types converted during 3.10 alpha immutable (GH-26351)
...
* Make functools types immutable
* Multibyte codec types are now immutable
* pyexpat.xmlparser is now immutable
* array.arrayiterator is now immutable
* _thread types are now immutable
* _csv types are now immutable
* _queue.SimpleQueue is now immutable
* mmap.mmap is now immutable
* unicodedata.UCD is now immutable
* sqlite3 types are now immutable
* _lsprof.Profiler is now immutable
* _overlapped.Overlapped is now immutable
* _operator types are now immutable
* winapi__overlapped.Overlapped is now immutable
* _lzma types are now immutable
* _bz2 types are now immutable
* _dbm.dbm and _gdbm.gdbm are now immutable
2021-06-17 11:06:09 +01:00
Erlend Egeberg Aasland
10a5c806d4
bpo-42064: Move sqlite3 types to global state (GH-26537)
...
* Move connection type to global state
* Move cursor type to global state
* Move prepare protocol type to global state
* Move row type to global state
* Move statement type to global state
* ADD_TYPE takes a pointer
* pysqlite_get_state is now static inline
2021-06-15 14:47:34 +02:00
Erlend Egeberg Aasland
1c02655fb0
bpo-44329: Refactor sqlite3 statement creation (GH-26566)
...
Call SQLite API's first, and return early in case of error. At the end,
allocate the object and initialise members. We now avoid unneeded
alloc/dealloc's in case the statement creation fails.
2021-06-08 16:00:56 +01:00
Pablo Galindo
781dc76577
Fix compiler errors for unused variables (GH-26601)
2021-06-08 13:16:24 +01:00
Erlend Egeberg Aasland
0d12f24552
bpo-44326: Remove unused members from pysqlite_Statement (GH-26564)
...
* Remove unused db member of pysqlite_Statement
* Remove unused sql method from statement object
2021-06-06 23:12:07 +01:00
Erlend Egeberg Aasland
505624e917
bpo-44327: Remove unused members from pysqlite_Connection (GH-26565)
...
* Remove timeout_started
* Remove timeout member
2021-06-06 23:11:44 +01:00
Pablo Galindo
6e3b7cf3af
bpo-44304: Ensure the sqlite3 destructor callback is always called with the GIL held (GH-26551)
2021-06-05 23:41:11 +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
7459208de1
bpo-44315: Remove unused connection argument from pysqlite_step() (GH-26535)
2021-06-04 21:42:20 +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
3446516ffa
bpo-44042: Optimize sqlite3 begin transaction (GH-25908)
2021-06-03 22:24:25 +01:00
Erlend Egeberg Aasland
f461a7fc3f
bpo-42862: Use functools.lru_cache iso. _sqlite.Cache in sqlite3 module (GH-24203)
...
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
2021-06-03 20:59:26 +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
fbf25b8c0d
bpo-44165: pysqlite_statement_create now returns a Py object, not an int (GH-26484)
...
GH-26206 was broken by GH-26475.
2021-06-02 14:22:15 +01:00
Erlend Egeberg Aasland
a384b6c040
bpo-44165: Optimise sqlite3 statement preparation by passing string size (GH-26206)
2021-06-02 13:26:06 +01:00
Erlend Egeberg Aasland
fffa0f92ad
bpo-42972: Track sqlite3 statement objects (GH-26475)
...
Allocate and track statement objects in pysqlite_statement_create.
By allocating and tracking creation of statement object in
pysqlite_statement_create(), the caller does not need to worry about GC
syncronization, and eliminates the possibility of getting a badly
created object. All related fault handling is moved to
pysqlite_statement_create().
Co-authored-by: Victor Stinner <vstinner@python.org>
2021-06-01 12:47:37 +02:00
Erlend Egeberg Aasland
d1124b09e8
bpo-42972: Fix sqlite3 traverse/clear functions (GH-26452)
2021-05-31 10:24:56 +02:00
Erlend Egeberg Aasland
d3c277a59c
bpo-42972: Fully implement GC protocol for sqlite3 heap types (GH-26104)
2021-05-25 18:43:56 +01:00
Erlend Egeberg Aasland
0988ed09b4
bpo-44047: Remove unused argument to _pysqlite_seterror (GH-25915)
2021-05-07 16:15:01 +03:00
Erlend Egeberg Aasland
cbb7b9ed4a
bpo-43434: Clean up sqlite3.connect() after GH-25818 (GH-25823)
2021-05-02 23:10:51 +01:00
Erlend Egeberg Aasland
c96cc089f6
bpo-43434: Move sqlite3.connect audit events to sqlite3.Connection.__init__ (GH-25818)
2021-05-02 22:25:17 +01:00
Erlend Egeberg Aasland
7244c0060d
bpo-43762: Add audit events for loading of sqlite3 extensions (GH-25246)
2021-04-27 00:16:46 +01:00
Erlend Egeberg Aasland
e9194ea6ea
bpo-43852: Improve tuple creation in sqlite3 (GH-25421)
2021-04-23 14:21:08 +03: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
def919342f
bpo-43505: Explicitly initialize and shutdown sqlite3 (GH-25404)
2021-04-14 17:50:16 +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
2256a2876b
bpo-43444: Move sqlite3 MODULE_NAME from setup.py to module.h (GH-24801)
2021-03-13 17:33:39 +02: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
Alex Henrie
25e244c925
bpo-39523: Use do-while loop pysqlite_cursor_executescript() (GH-18305)
2021-03-02 09:40:34 +02:00
Erlend Egeberg Aasland
2183d06bc8
bpo-43251: sqlite3_column_name() failures now raise MemoryError (GH-24609)
2021-02-28 19:01:06 +02:00
Erlend Egeberg Aasland
5e48e83688
bpo-43294: Remove unused variables in pysqlite_connection_*() (GH-24658)
2021-02-26 16:30:22 +02:00
Erlend Egeberg Aasland
3150754f91
bpo-43314: Remove SQLITE_OPEN_URI ifdef (GH-24637)
...
SQLite 3.7.15 is required as by GH-24106. SQLITE_OPEN_URI was added in
SQLite 3.7.7.
2021-02-26 02:48:19 +02:00
Erlend Egeberg Aasland
91ea37c84a
bpo-43290: Remove workaround from pysqlite_step() (GH-24638)
...
From the SQLite 3.5.3 changelog:
sqlite3_step() returns SQLITE_MISUSE instead of crashing when called
with a NULL parameter.
The workaround no longer needed because we no longer support
SQLite releases older than 3.7.15.
2021-02-26 01:39:34 +02:00
Erlend Egeberg Aasland
38b6c2acd4
bpo-43269: Remove redundant extern keywords (GH-24605)
2021-02-21 12:07:49 +02:00
Erlend Egeberg Aasland
bf838a6e7e
bpo-43269: Clean up sqlite3 file scope (GH-24578)
2021-02-21 02:29:19 +02:00
Erlend Egeberg Aasland
2bb0bf4dd8
bpo-43258: Make sqlite3 callback functions static (GH-24574)
2021-02-19 13:59: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
cc96231f0a
bpo-43249: Improve scoping in _pysqlite_fetch_one_row() (GH-24565)
2021-02-18 19:13:14 +02:00
Erlend Egeberg Aasland
47feb1feb2
bpo-43249: sqlite3_column_bytes() must follow sqlite_column_blob() (GH-24562)
2021-02-18 17:44:43 +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
Serhiy Storchaka
9073180db5
bpo-43083: Fix error handling in _sqlite3 (GH-24395)
2021-01-31 17:42:38 +02:00
Erlend Egeberg Aasland
a330365ca5
bpo-40956: Fix sqlite3.Cursor.fetchmany() default value (GH-24214)
2021-01-14 01:17:33 +02:00
Erlend Egeberg Aasland
203b2493ae
bpo-40959: Remove unused declarations from sqlite3 headers (GH-20828)
2021-01-06 02:56:05 +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
c7f8d3caf0
bpo-40956: Convert _sqlite3.Cursor to Argument Clinic (GH-24007)
2021-01-06 01:57:25 +02:00
Erlend Egeberg Aasland
84d79cfda9
bpo-40956: Convert _sqlite3.Row to Argument Clinic (GH-23964)
2020-12-29 15:22:55 +02:00
Pablo Galindo
a6d63a20df
Fix compiler warnings regarding loss of data (GH-23983)
2020-12-29 00:28:09 +00:00
Erlend Egeberg Aasland
897387d2c8
bpo-1635741: sqlite3: Fix ref leak introduced by commit bf64d90
(GH-23972)
2020-12-28 03:09:26 +01:00
Erlend Egeberg Aasland
bf64d9064a
bpo-1635741: sqlite3 uses Py_NewRef/Py_XNewRef (GH-23170)
2020-12-27 12:05:33 +01:00
Erlend Egeberg Aasland
3ccef1ca47
bpo-40956: Convert _sqlite3.Connection to Argument Clinic, part 2 (GH-23838)
2020-12-27 17:32:18 +09:00
Dong-hee Na
2179349d8c
bpo-40956: Fix sqlite3 AC code (GH-23837)
2020-12-19 00:41:33 +09:00
Erlend Egeberg Aasland
1ba82bbc50
bpo-40956: Convert _sqlite3.Connection to Argument Clinic (GH-23341)
2020-12-18 23:25:35 +09:00
Erlend Egeberg Aasland
a1f401a58b
bpo-42264: Deprecate sqlite3.OptimizedUnicode (GH-23163)
2020-11-17 17:55:12 +02:00
Erlend Egeberg Aasland
2ffba2a102
bpo-41861, _sqlite3 : Add NEWS entry and rename variables (GH-23337)
2020-11-17 13:52:54 +01:00
Erlend Egeberg Aasland
789359f47c
bpo-1635741: _sqlite3 uses PyModule_AddObjectRef() (GH-23148)
2020-11-04 20:31:51 +01:00
Erlend Egeberg Aasland
7d21027157
bpo-40956: Convert _sqlite3 module level functions to Argument Clinic (GH-22484)
2020-10-31 15:07:44 +09:00
Erlend Egeberg Aasland
644e94272a
bpo-42021: Fix possible ref leaks during _sqlite3 module init (GH-22673)
2020-10-15 21:20:15 +09:00
Erlend Egeberg Aasland
256e54acdb
bpo-41861: Convert _sqlite3 CursorType and ConnectionType to heap types (GH-22478)
2020-10-01 16:03:21 +02:00
Erlend Egeberg Aasland
9031bd4fa4
bpo-41861: Convert _sqlite3 RowType and StatementType to heap types (GH-22444)
2020-10-01 15:24:31 +02:00
Erlend Egeberg Aasland
cb6db8b6ae
bpo-41861: Convert _sqlite3 PrepareProtocolType to heap type (GH-22428)
2020-09-29 00:05:04 +02:00
Erlend Egeberg Aasland
a937ab45d6
bpo-41861: Convert _sqlite3 cache and node static types to heap types (GH-22417)
2020-09-27 14:14:50 +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
Erlend Egeberg Aasland
7f331c898a
bpo-40318: Migrate to SQLite3 trace v2 API (GH-19581)
...
Ref. https://sqlite.org/c3ref/trace_v2.html
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
2020-09-05 21:43:31 +01:00
Serhiy Storchaka
8171580871
bpo-41638: Improve ProgrammingError message for absent parameter. (GH-21999)
...
It contains now the name of the parameter instead of its index when parameters
are supplied as a dict.
2020-09-04 20:55:41 +03:00
Erlend Egeberg Aasland
5eb45d7d4e
bpo-40737: Fix possible reference leak for sqlite3 initialization (GH-20323)
2020-05-26 21:18:19 +09:00
Victor Stinner
4a21e57fe5
bpo-40268: Remove unused structmember.h includes (GH-19530)
...
If only offsetof() is needed: include stddef.h instead.
When structmember.h is used, add a comment explaining that
PyMemberDef is used.
2020-04-15 02:35:41 +02:00
Victor Stinner
62183b8d6d
bpo-40268: Remove explicit pythread.h includes ( #19529 )
...
Remove explicit pythread.h includes: it is always included
by Python.h.
2020-04-15 02:04:42 +02:00
Serhiy Storchaka
8f87eefe7f
bpo-39943: Add the const qualifier to pointers on non-mutable PyBytes data. (GH-19472)
2020-04-12 14:58:27 +03:00
Serhiy Storchaka
cd8295ff75
bpo-39943: Add the const qualifier to pointers on non-mutable PyUnicode data. (GH-19345)
2020-04-11 10:48:40 +03:00
Serhiy Storchaka
b146568dfc
bpo-39652: Truncate the column name after '[' only if PARSE_COLNAMES is set. (GH-18942)
2020-03-21 15:53:28 +02:00
Petr Viktorin
ffd9753a94
bpo-39245: Switch to public API for Vectorcall (GH-18460)
...
The bulk of this patch was generated automatically with:
for name in \
PyObject_Vectorcall \
Py_TPFLAGS_HAVE_VECTORCALL \
PyObject_VectorcallMethod \
PyVectorcall_Function \
PyObject_CallOneArg \
PyObject_CallMethodNoArgs \
PyObject_CallMethodOneArg \
;
do
echo $name
git grep -lwz _$name | xargs -0 sed -i "s/\b_$name\b/$name/g"
done
old=_PyObject_FastCallDict
new=PyObject_VectorcallDict
git grep -lwz $old | xargs -0 sed -i "s/\b$old\b/$new/g"
and then cleaned up:
- Revert changes to in docs & news
- Revert changes to backcompat defines in headers
- Nudge misaligned comments
2020-02-11 17:46:57 +01:00
Victor Stinner
d2ec81a8c9
bpo-39573: Add Py_SET_TYPE() function (GH-18394)
...
Add Py_SET_TYPE() function to set the type of an object.
2020-02-07 09:17:07 +01:00
Victor Stinner
daa9756cb6
bpo-39573: Use Py_TYPE() macro in Modules directory (GH-18393)
...
Replace direct access to PyObject.ob_type with Py_TYPE().
2020-02-07 03:37:06 +01:00
Alex Henrie
78c7183f47
bpo-39496: Remove redundant checks from _sqlite/cursor.c (GH-18270)
2020-02-01 23:45:34 +03:00
Alex Henrie
1f44e775df
bpo-39497: Remove unused variable from pysqlite_cursor_executescript (GH-18271)
2020-01-30 12:39:25 +03:00
Alex Henrie
188bb5b1e8
bpo-39494: Remove extra null terminators from kwlist vars (GH-18267)
2020-01-30 07:12:53 +03:00
Sergey Fedoseev
b6f5b9dd21
Replace _pysqlite_long_from_int64() with PyLong_FromLongLong() (GH-16882)
2019-10-23 11:09:01 +03:00
Serhiy Storchaka
f669581a95
bpo-38185: Fixed case-insensitive string comparison in sqlite3.Row indexing. (GH-16190)
2019-09-17 09:20:56 +03:00
Serhiy Storchaka
8debfa5040
bpo-38175: Fix a memory leak in comparison of sqlite3.Row objects. (GH-16155)
2019-09-16 20:15:18 +03:00
gescheit
b9a0376b0d
closes bpo-37347: Fix refcount problem in sqlite3. (GH-14268)
2019-07-12 20:15:48 -07:00
Jeroen Demeyer
59ad110d7a
bpo-37547: add _PyObject_CallMethodOneArg (GH-14685)
2019-07-11 17:59:05 +09:00
Jeroen Demeyer
762f93ff2e
bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267)
2019-07-08 17:19:25 +09:00
Jeroen Demeyer
196a530e00
bpo-37483: add _PyObject_CallOneArg() function ( #14558 )
2019-07-04 19:31:34 +09:00
Victor Stinner
c6a2320e87
bpo-37406: sqlite3 raises TypeError for wrong operation type (GH-14386)
...
The sqlite3 module now raises TypeError, rather than ValueError, if
operation argument type is not str: execute(), executemany() and
calling a connection.
2019-06-26 03:16:24 +02:00
Steve Dower
60419a7e96
bpo-37363: Add audit events for a range of modules (GH-14301)
2019-06-24 08:42:54 -07:00
Jeroen Demeyer
530f506ac9
bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464)
...
Automatically replace
tp_print -> tp_vectorcall_offset
tp_compare -> tp_as_async
tp_reserved -> tp_as_async
2019-05-30 19:13:39 -07:00
Aviv Palivoda
e6576248e5
bpo-30262: Don't expose private objects in sqlite3 (GH-1440)
...
The Cache and Statement objects are undocumented and implementation
details of the sqlite3 module.
They aren't usable from pure Python code.
2019-05-09 21:05:45 +03:00
Inada Naoki
29198ea1c6
bpo-8677: use PY_SSIZE_T_CLEAN in sqlite (GH-12434)
...
Modules/_sqlite/cursor.c uses "y#" format.
It didn't declare PY_SSIZE_T_CLEAN, but the argument is Py_ssize_t already.
2019-03-19 22:10:18 +09:00
Zackery Spytz
842acaab13
bpo-35504: Fix segfaults and SystemErrors when deleting certain attrs. (GH-11175)
2018-12-17 16:52:45 +02:00
Serhiy Storchaka
fc662ac332
bpo-32788: Better error handling in sqlite3. (GH-3723)
...
Propagate unexpected errors (like MemoryError and KeyboardInterrupt) to user.
2018-12-10 16:06:08 +02:00