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
Sergey Fedoseev
5b25f1d031
bpo-34052: Prevent SQLite functions from setting callbacks on exceptions. (GH-8113)
2018-12-05 19:50:26 +02:00
Serhiy Storchaka
d4f9cf5545
bpo-33029: Fix signatures of getter and setter functions. (GH-10746)
...
Fix also return type for few other functions (clear, releasebuffer).
2018-11-27 19:34:35 +02:00
Serhiy Storchaka
62be74290a
bpo-33012: Fix invalid function cast warnings with gcc 8. (GH-6749)
...
Fix invalid function cast warnings with gcc 8
for method conventions different from METH_NOARGS, METH_O and
METH_VARARGS excluding Argument Clinic generated code.
2018-11-27 13:27:31 +02:00
Berker Peksag
b10a64d117
bpo-34743: Fix test_database_source_name under SQLite 3.7.9 (GH-9426)
2018-09-20 14:14:33 +03:00
Berker Peksag
8d1e190fc5
bpo-32215: Fix performance regression in sqlite3 (GH-8511)
2018-09-20 14:10:49 +03:00