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
Sergey Fedoseev
b229b072a9
Remove creation of a list for row_cast_map in pysqlite_cursor_init() (GH-8494)
...
This list is never used: if detect_types is on, this list will be
replaced with another one before row_cast_map is used, if
detect_types is off, row_cast_map is not used at all.
2018-07-31 00:11:50 +03:00
Sergey Fedoseev
aee632dfbb
Remove some unused code in _pysqlite_query_execute() (GH-8495)
...
Unused since commit ab994ed8b9
.
2018-07-27 13:06:03 +03:00
Benjamin Peterson
7762e4d387
prefix internal sqlite symbols with _pysqlite_ (GH-8215)
2018-07-09 21:20:23 -07:00
Benjamin Peterson
d6d4432724
delete some unused pysqlite forward declarations (GH-8211)
2018-07-09 20:41:26 -07:00
Sergey Fedoseev
0830858aee
bpo-34041: Allow creating deterministic functions in Connection.create_function() (GH-8086)
2018-07-08 10:09:20 +03:00
jdemeyer
66ecefcfe7
Remove tp_print implementation (GH-7857)
2018-06-23 21:08:43 +09:00
Victor Stinner
ca405017d5
bpo-27645, sqlite: Fix integer overflow on sleep ( #6594 )
...
Use the _PyTime_t type and round away from zero (ROUND_UP,
_PyTime_ROUND_TIMEOUT) the sleep duration, when converting a Python
object to seconds and then to milliseconds. Raise an OverflowError in
case of overflow.
Previously the (int)double conversion rounded towards zero
(ROUND_DOWN).
2018-04-30 12:22:17 +02:00
Siddhesh Poyarekar
55edd0c185
bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. (GH-6030)
...
METH_NOARGS functions need only a single argument but they are cast
into a PyCFunction, which takes two arguments. This triggers an
invalid function cast warning in gcc8 due to the argument mismatch.
Fix this by adding a dummy unused argument.
2018-04-29 21:59:33 +03:00
Takuya Akiba
030345c0bf
Fix error message in sqlite connection thread check. (GH-6028)
2018-03-26 18:14:00 +03:00
Aviv Palivoda
bbf7bb7a63
bpo-27645: Fix version number in 'database in transaction' fallback (GH-6131)
...
It was actually fixed in SQLite 3.8.8, not 3.8.7.
2018-03-18 03:48:55 +03:00
Emanuele Gaifas
d7aed4102d
bpo-27645: Add support for native backup facility of SQLite (GH-4238)
2018-03-11 01:08:31 +03:00
Benjamin Peterson
0a37a30037
closes bpo-32460: ensure all non-static globals have initializers ( #5061 )
2017-12-31 10:04:13 -08:00
Serhiy Storchaka
e2f92de6a9
Add the const qualifier to "char *" variables that refer to literal strings. ( #4370 )
2017-11-11 13:06:26 +02:00
Anders Lorentsen
a22a127458
bpo-31843: sqlite3.connect() now accepts PathLike objects as database name ( #4299 )
2017-11-06 16:47:43 -08:00
Oren Milman
edb13ae48c
bpo-31764: Prevent a crash in sqlite3.Cursor.close() in case the Cursor object is uninitialized ( #3958 )
2017-11-06 16:09:49 -08:00
Oren Milman
e56ab746a9
bpo-31770: Prevent a crash and refleaks when calling sqlite3.Cursor.__init__() more than once ( #3968 )
2017-11-06 16:01:47 -08:00
Oren Milman
93c5a5df8e
bpo-31740: Prevent refleaks when sqlite3.Connection.__init__() is called more than once (GH-3944)
2017-10-10 12:27:46 -07:00
Benjamin Peterson
c8a6e5b18d
sqlite: delete some bsddb cargo-culted code to work around Python 2.3/2.4 bugs
2017-09-22 23:25:28 -07:00
Benjamin Peterson
525269430a
closes bpo-31525: require sqlite3_prepare_v2 ( #3666 )
...
This is based on
40b349cadb (diff-0489411409cd2934730e88bf7767790)
,
though we can be a bit more aggressive about deleting code.
2017-09-20 07:36:18 -07:00
Antoine Pitrou
a6a4dc816d
bpo-31370: Remove support for threads-less builds ( #3385 )
...
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Serhiy Storchaka
6cca5c8459
bpo-30592: Fixed error messages for some builtins. ( #1996 )
...
Error messages when pass keyword arguments to some builtins that
don't support keyword arguments contained double parenthesis: "()()".
The regression was introduced by bpo-30534.
2017-06-08 14:41:19 +03:00
Serhiy Storchaka
0b3ec19225
Use NULL rather than 0. ( #778 )
...
There was few cases of using literal 0 instead of NULL in the context of
pointers. While this was a legitimate C code, using NULL rather than 0 makes
the code clearer.
2017-03-23 17:53:47 +02:00
Serhiy Storchaka
aefa7ebf0f
bpo-6532: Make the thread id an unsigned integer. ( #781 )
...
* bpo-6532: Make the thread id an unsigned integer.
From C API side the type of results of PyThread_start_new_thread() and
PyThread_get_thread_ident(), the id parameter of
PyThreadState_SetAsyncExc(), and the thread_id field of PyThreadState
changed from "long" to "unsigned long".
* Restore a check in thread_get_ident().
2017-03-23 14:48:39 +01:00
Aviv Palivoda
86a670543f
bpo-9303: Migrate sqlite3 module to _v2 API to enhance performance ( #359 )
2017-03-03 13:58:17 +03:00
Berker Peksag
4a926caf8e
bpo-28518: Start a transaction implicitly before a DML statement ( #245 )
...
Patch by Aviv Palivoda.
2017-02-26 18:22:38 +03:00
Serhiy Storchaka
228b12edcc
Issue #28999 : Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever
...
possible. Patch is writen with Coccinelle.
2017-01-23 09:47:21 +02:00
Berker Peksag
00b1ae0dfc
Issue #28985 : Update authorizer constants in sqlite3 module
...
Dates and version information from the changelog:
* 2006-08-12 (3.3.7) added SQLITE_CREATE_VTABLE, SQLITE_DROP_VTABLE
* 2006-10-09 (3.3.8) added SQLITE_FUNCTION
* 2009-01-12 (3.6.8) added SQLITE_SAVEPOINT
* 2014-02-03 (3.8.3) added SQLITE_RECURSIVE
Patch by Dingyuan Wang.
2017-01-02 06:38:10 +03:00
Serhiy Storchaka
5ab81d787f
Issue #28959 : Added private macro PyDict_GET_SIZE for retrieving the size of dict.
2016-12-16 16:18:57 +02:00
Victor Stinner
070c4d7ca7
Issue #28915 : Use _PyObject_CallNoArg()
...
Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func).
2016-12-09 12:29:18 +01:00
Serhiy Storchaka
85b0f5beb1
Added the const qualifier to char* variables that refer to readonly internal
...
UTF-8 represenatation of Unicode objects.
2016-11-20 10:16:47 +02:00
Serhiy Storchaka
06515833fe
Replaced outdated macros _PyUnicode_AsString and _PyUnicode_AsStringAndSize
...
with PyUnicode_AsUTF8 and PyUnicode_AsUTF8AndSize.
2016-11-20 09:13:07 +02:00
Serhiy Storchaka
3b73ea1278
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:19:20 +02:00
Serhiy Storchaka
f4934ea77d
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:17:58 +02:00
Serhiy Storchaka
22805ca54e
Issue #27897 : Fixed possible crash in sqlite3.Connection.create_collation()
...
if pass invalid string-like object as a name. Patch by Xiang Zhang.
2016-09-27 00:14:24 +03:00
Serhiy Storchaka
407ac47690
Issue #27897 : Fixed possible crash in sqlite3.Connection.create_collation()
...
if pass invalid string-like object as a name. Patch by Xiang Zhang.
2016-09-27 00:10:03 +03:00
Berker Peksag
59da4b324f
Issue #28037 : Use sqlite3_get_autocommit() instead of setting Connection->inTransaction manually
...
Patch adapted from 9b79188edb
2016-09-12 07:16:43 +03:00
Berker Peksag
9af13ca565
Issue #28036 : Remove unused pysqlite_flush_statement_cache function
2016-09-11 15:37:30 +03:00
Berker Peksag
ab994ed8b9
Issue #10740 : sqlite3 no longer implicitly commit an open transaction before DDL statements
...
This commit contains the following commits from ghaering/pysqlite:
* f254c53494
* 796b3afe38
* cae87ee686
* 3567b31bb5
With the following additions:
* Fixed a refcount error
* Fixed a compiler warning
* Made the string comparison a little more robust
* Added a whatsnew entry
2016-09-11 12:57:15 +03:00
Serhiy Storchaka
2891492d23
Issue #27881 : Fixed possible bugs when setting sqlite3.Connection.isolation_level.
...
Based on patch by Xiang Zhang.
2016-09-01 22:18:03 +03:00
Benjamin Peterson
47ff0734b8
more PY_LONG_LONG to long long
2016-09-08 09:15:54 -07:00
Victor Stinner
3466bde1cc
Avoid calling functions with an empty string as format string
...
Directly pass NULL rather than an empty string.
2016-09-05 18:16:01 -07:00
Benjamin Peterson
ed4aa83ff7
require a long long data type ( closes #27961 )
2016-09-05 17:44:18 -07:00
Serhiy Storchaka
af0628e045
Issue #27881 : Fixed possible bugs when setting sqlite3.Connection.isolation_level.
...
Based on patch by Xiang Zhang.
2016-09-01 22:21:05 +03:00
Serhiy Storchaka
8631da64bb
Issue #27861 : Fixed a crash in sqlite3.Connection.cursor() when a factory
...
creates not a cursor. Patch by Xiang Zhang.
2016-08-29 15:11:52 +03:00
Serhiy Storchaka
ef113cd4cc
Issue #27861 : Fixed a crash in sqlite3.Connection.cursor() when a factory
...
creates not a cursor. Patch by Xiang Zhang.
2016-08-29 14:29:55 +03:00
Berker Peksag
6ed442c48d
Issue #10513 : Merge from 3.5
2016-08-26 22:08:51 +03:00
Berker Peksag
cc9afa9b51
Issue #10513 : Fix a regression in Connection.commit()
...
Statements should not be reset after a commit.
Backported from 029050896b
2016-08-26 22:07:51 +03:00
Berker Peksag
d7f3cdd07d
Issue #21718 : Merge from 3.5
2016-08-21 19:41:38 +03:00
Berker Peksag
6afe85827c
Issue #21718 : cursor.description is now available for queries using CTEs
...
According to PEP 249, cursor.description must be
available for any SELECT statements, such as those
that use CTEs.
Backported from f67fa9c898
Additional test cases added by me.
2016-08-21 19:38:47 +03:00
Berker Peksag
e0b70cd8a9
Issue #16864 : Cursor.lastrowid now supports REPLACE statement
...
Initial patch by Alex LordThorsen.
2016-06-14 15:25:36 +03:00
Berker Peksag
f84f259b0b
Merge from 3.5
2016-06-12 19:18:17 +03:00
Berker Peksag
0e1d6802ff
Fix typo in _sqlite/module.h
2016-06-12 19:17:49 +03:00
Berker Peksag
0f355c0022
Issue #27190 : Merge from 3.5
2016-06-12 14:10:24 +03:00
Berker Peksag
7bea2347c7
Issue #27190 : Raise NotSupportedError if sqlite3 is older than 3.3.1
...
Patch by Dave Sawyer.
2016-06-12 14:09:51 +03:00
Serhiy Storchaka
f01e408c16
Issue #26200 : Added Py_SETREF and replaced Py_XSETREF with Py_SETREF
...
in places where Py_DECREF was used.
2016-04-10 18:12:01 +03:00
Serhiy Storchaka
57a01d3a0e
Issue #26200 : Added Py_SETREF and replaced Py_XSETREF with Py_SETREF
...
in places where Py_DECREF was used.
2016-04-10 18:05:40 +03:00
Berker Peksag
fe21de9836
Issue #26687 : Use Py_RETURN_NONE macro in sqlite3 module
2016-04-09 07:34:39 +03:00
Serhiy Storchaka
ec39756960
Issue #22570 : Renamed Py_SETREF to Py_XSETREF.
2016-04-06 09:50:03 +03:00
Serhiy Storchaka
48842714b9
Issue #22570 : Renamed Py_SETREF to Py_XSETREF.
2016-04-06 09:45:48 +03:00
Serhiy Storchaka
726fc139a5
Issue #20440 : More use of Py_SETREF.
...
This patch is manually crafted and contains changes that couldn't be handled
automatically.
2015-12-27 15:44:33 +02:00
Serhiy Storchaka
191321d11b
Issue #20440 : More use of Py_SETREF.
...
This patch is manually crafted and contains changes that couldn't be handled
automatically.
2015-12-27 15:41:34 +02:00
Serhiy Storchaka
2d06e84455
Issue #25923 : Added the const qualifier to static constant arrays.
2015-12-25 19:53:18 +02:00
Serhiy Storchaka
5a57ade58e
Issue #20440 : Massive replacing unsafe attribute setting code with special
...
macro Py_SETREF.
2015-12-24 10:35:59 +02:00
Serhiy Storchaka
e79ec70801
Issue #24257 : Fixed incorrect uses of PyObject_IsInstance().
...
Fixed segmentation fault in sqlite3.Row constructor with faked cursor type.
Fixed system error in the comparison of faked types.SimpleNamespace.
2015-05-22 11:13:20 +03:00
Serhiy Storchaka
08d230a540
Issue #24257 : Fixed incorrect uses of PyObject_IsInstance().
...
Fixed segmentation fault in sqlite3.Row constructor with faked cursor type.
Fixed system error in the comparison of faked types.SimpleNamespace.
2015-05-22 11:02:49 +03:00
Larry Hastings
3b12e957a7
Issue #20274 : When calling a _sqlite.Connection, it now complains if passed
...
any keyword arguments. Previously it silently ignored them.
Also: merge related change from 3.4, also reported on Issue #20274 .
2015-05-08 07:45:10 -07:00
Larry Hastings
01b0883602
Issue #20274 : Remove ignored and erroneous "kwargs" parameters from three
...
METH_VARARGS methods on _sqlite.Connection.
2015-05-08 07:37:49 -07:00
Serhiy Storchaka
72e731cc03
Issue #13583 : sqlite3.Row now supports slice indexing.
...
Tests by Jessica McKellar.
2015-03-31 13:33:11 +03:00
Serhiy Storchaka
009b811d67
Removed unintentional trailing spaces in non-external and non-generated C files.
2015-03-18 21:53:15 +02:00
Victor Stinner
4a7cc88472
Issue #23571 : PyObject_Call(), PyCFunction_Call() and call_function() now
...
raise a SystemError if a function returns a result and raises an exception.
The SystemError is chained to the previous exception.
Refactor also PyObject_Call() and PyCFunction_Call() to make them more readable.
Remove some checks which became useless (duplicate checks).
Change reviewed by Serhiy Storchaka.
2015-03-06 23:35:27 +01:00
Serhiy Storchaka
483405bcca
Issue #22883 : Got rid of outdated references to PyInt and PyString in comments.
2015-02-17 10:14:30 +02:00
Serhiy Storchaka
26861b0b29
Issue #23450 : Fixed possible integer overflows.
2015-02-16 20:52:17 +02:00
Serhiy Storchaka
3dd3e26680
Issue #22896 : Avoid to use PyObject_AsCharBuffer(), PyObject_AsReadBuffer()
...
and PyObject_AsWriteBuffer().
2015-02-03 01:25:42 +02:00
Serhiy Storchaka
4fdb68491e
Issue #22896 : Avoid to use PyObject_AsCharBuffer(), PyObject_AsReadBuffer()
...
and PyObject_AsWriteBuffer().
2015-02-03 01:21:08 +02:00
Serhiy Storchaka
2c16df269a
Issue #21147 : sqlite3 now raises an exception if the request contains a null
...
character instead of truncate it. Based on patch by Victor Stinner.
2014-09-11 13:30:48 +03:00
Serhiy Storchaka
42d67af87f
Issue #21147 : sqlite3 now raises an exception if the request contains a null
...
character instead of truncate it. Based on patch by Victor Stinner.
2014-09-11 13:29:05 +03:00
Victor Stinner
cfcde8ca40
Issue #22218 : Fix "comparison between signed and unsigned integers" warning in
...
Modules/_sqlite/cursor.c.
2014-08-17 21:09:30 +02:00
Serhiy Storchaka
3d4b2d4df2
Issue #21975 : Fixed crash when using uninitialized sqlite3.Row (in particular
...
when unpickling pickled sqlite3.Row). sqlite3.Row is now initialized in the
__new__() method.
2014-08-06 17:50:39 +03:00
Victor Stinner
297d104248
Issue #21858 : Better handling of Python exceptions in the sqlite3 module.
2014-06-26 23:32:00 +02:00
Serhiy Storchaka
47a981337a
Issue #10203 : sqlite3.Row now truly supports sequence protocol. In particulr
...
it supports reverse() and negative indices. Original patch by Claudiu Popa.
2014-05-28 12:58:34 +03:00
Serhiy Storchaka
dfe98a102e
Issue #20437 : Fixed 22 potential bugs when deleting objects references.
2014-02-09 13:46:20 +02:00
Serhiy Storchaka
505ff755d7
Issue #20437 : Fixed 21 potential bugs when deleting objects references.
2014-02-09 13:33:53 +02:00
Victor Stinner
08263f10f8
(Merge 3.3) Issue #20026 : Fix the sqlite module to handle correctly invalid
...
isolation level (wrong type).
2013-12-19 16:39:00 +01:00
Victor Stinner
cb1f74ec40
Issue #20026 : Fix the sqlite module to handle correctly invalid isolation level
...
(wrong type).
2013-12-19 16:38:03 +01:00
Victor Stinner
afccb0a821
sqlite: Use Py_ssize_t to store a size instead of an int
...
Fix a compiler warning on Windows 64-bit
2013-11-18 02:07:29 +01:00
Victor Stinner
3f658bec35
sqlite: raise an OverflowError if a string or a BLOB is longer than INT_MAX
...
bytes
Fix compiler warnings on Windows 64-bit
2013-11-18 01:36:29 +01:00
Victor Stinner
83e30bf4bd
Fix a compiler warning on Windows 64-bit: _sqlite module
2013-11-18 01:27:30 +01:00
Victor Stinner
83ed42bfbf
sqlite: raise an OverflowError if the result is longer than INT_MAX bytes
...
Fix a compiler warning on Windows 64-bit
2013-11-18 01:24:31 +01:00
Martin v. Löwis
e75fc14813
Issue #19514 : Deduplicate some _Py_IDENTIFIER declarations.
...
Patch by Andrei Dorian Duma.
2013-11-07 18:46:53 +01:00
Victor Stinner
85a12a8beb
Issue #19437 : Fix pysqlite_cursor_iternext() of sqlite3, when the row factory
...
fails, don't consume the row (restore it) and fail immediatly (don't call
pysqlite_step())
2013-11-05 14:50:30 +01:00
Victor Stinner
b3e1ef1ce0
Issue #19437 : Fix pysqlite_connection_call() of sqlite3, return NULL when
...
PyList_Append() fails
2013-11-05 14:46:13 +01:00
Victor Stinner
dd4b299df1
Issue #19437 : Fix pysqlite_cursor_iternext() of sqlite3, handle
...
_pysqlite_fetch_one_row() failure
2013-11-05 14:30:11 +01:00
Serhiy Storchaka
c679227e31
Issue #1772673 : The type of `char*` arguments now changed to `const char*`.
2013-10-19 21:03:34 +03:00
Victor Stinner
340f712b84
(Merge 3.3) Fix compilation of the _sqlite module if threads are disabled
2013-08-28 01:45:39 +02:00
Victor Stinner
b84fc0fd9f
Fix compilation of the _sqlite module if threads are disabled
2013-08-28 01:44:42 +02:00
Serhiy Storchaka
cbad3a367e
Issue #18701 : Remove sqlitecompat.h.
2013-08-17 01:01:23 +03:00
Serhiy Storchaka
8fa8ee3970
Issue #18701 : Remove support of old CPython versions (<3.0) from C code.
2013-08-17 00:48:02 +03:00
Victor Stinner
ffff763161
Issue #18519 : Fix test_sqlite on old versions of libsqlite3
...
With old SQLite versions, _sqlite3_result_error() sets a new Python exception,
so don't restore the previous exception.
2013-08-02 01:48:10 +02:00
Victor Stinner
d4095d95f8
Issue #18519 : the Python authorizer callback of sqlite3 must not raise Python exceptions
...
The exception is printed if sqlite3.enable_callback_tracebacks(True) has been
called, otherwise the exception is cleared.
2013-07-26 22:23:33 +02:00
Victor Stinner
3a8573230c
Issue #18488 : Fix _pysqlite_final_callback()
...
Restore behaviour of Python 3.3: print the finalizer() error if
sqlite3.enable_callback_tracebacks() has been called, clear the error
otherwise.
But keep (save/restore) also the AttributeError raised in
_pysqlite_step_callback().
2013-07-22 08:34:32 +02:00
Victor Stinner
41801f5812
Issue #18519 , #18408 : Fix sqlite authorizer callback
...
If a previous call to the authorizer callback failed and raised an exception,
don't call the Python authorizer callback, but just return SQLITE_DENY.
2013-07-21 13:05:38 +02:00
Victor Stinner
4abda5d5b0
Issue #18408 : Fix _pysqlite_fetch_one_row(), in debug mode, don't call
...
type_call() with an exception set
2013-07-18 01:54:37 +02:00