summaryrefslogtreecommitdiffstats
path: root/Modules/_sqlite/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_sqlite/connection.c')
-rw-r--r--Modules/_sqlite/connection.c25
1 files changed, 2 insertions, 23 deletions
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 3b287b0..e124b17 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -1337,7 +1337,6 @@ pysqlite_connection_call(pysqlite_Connection *self, PyObject *args,
PyObject* sql;
pysqlite_Statement* statement;
PyObject* weakref;
- int rc;
if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
return NULL;
@@ -1351,31 +1350,11 @@ pysqlite_connection_call(pysqlite_Connection *self, PyObject *args,
_pysqlite_drop_unused_statement_references(self);
- statement = PyObject_GC_New(pysqlite_Statement, pysqlite_StatementType);
- if (!statement) {
+ statement = pysqlite_statement_create(self, sql);
+ if (statement == NULL) {
return NULL;
}
- statement->db = NULL;
- statement->st = NULL;
- statement->sql = NULL;
- statement->in_use = 0;
- statement->in_weakreflist = NULL;
-
- rc = pysqlite_statement_create(statement, self, sql);
- if (rc != SQLITE_OK) {
- if (rc == PYSQLITE_TOO_MUCH_SQL) {
- PyErr_SetString(pysqlite_Warning, "You can only execute one statement at a time.");
- } else if (rc == PYSQLITE_SQL_WRONG_TYPE) {
- if (PyErr_ExceptionMatches(PyExc_TypeError))
- PyErr_SetString(pysqlite_Warning, "SQL is of wrong type. Must be string.");
- } else {
- (void)pysqlite_statement_reset(statement);
- _pysqlite_seterror(self->db, NULL);
- }
- goto error;
- }
-
weakref = PyWeakref_NewRef((PyObject*)statement, NULL);
if (weakref == NULL)
goto error;