diff options
author | Erlend Egeberg Aasland <erlend.aasland@innova.no> | 2021-06-01 10:47:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-01 10:47:37 (GMT) |
commit | fffa0f92adaaed0bcb3907d982506f78925e9052 (patch) | |
tree | 585aa05ef6e6f3d72ed652e2beb3ecb79c448b4e /Modules/_sqlite/statement.h | |
parent | a6a20658814e8668966fc86de0e80a4772864781 (diff) | |
download | cpython-fffa0f92adaaed0bcb3907d982506f78925e9052.zip cpython-fffa0f92adaaed0bcb3907d982506f78925e9052.tar.gz cpython-fffa0f92adaaed0bcb3907d982506f78925e9052.tar.bz2 |
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>
Diffstat (limited to 'Modules/_sqlite/statement.h')
-rw-r--r-- | Modules/_sqlite/statement.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/Modules/_sqlite/statement.h b/Modules/_sqlite/statement.h index 56ff727..e8c86a0 100644 --- a/Modules/_sqlite/statement.h +++ b/Modules/_sqlite/statement.h @@ -29,9 +29,6 @@ #include "connection.h" #include "sqlite3.h" -#define PYSQLITE_TOO_MUCH_SQL (-100) -#define PYSQLITE_SQL_WRONG_TYPE (-101) - typedef struct { PyObject_HEAD @@ -45,7 +42,7 @@ typedef struct extern PyTypeObject *pysqlite_StatementType; -int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* connection, PyObject* sql); +pysqlite_Statement *pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql); int pysqlite_statement_bind_parameter(pysqlite_Statement* self, int pos, PyObject* parameter); void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* parameters); |