@@ -111,6 +111,8 @@ pysqlite_connection_init_impl(pysqlite_Connection *self,
111
111
112
112
const char * database = PyBytes_AsString (database_obj );
113
113
114
+ self -> initialized = 1 ;
115
+
114
116
self -> begin_statement = NULL ;
115
117
116
118
Py_CLEAR (self -> statement_cache );
@@ -145,7 +147,7 @@ pysqlite_connection_init_impl(pysqlite_Connection *self,
145
147
Py_INCREF (isolation_level );
146
148
}
147
149
Py_CLEAR (self -> isolation_level );
148
- if (pysqlite_connection_set_isolation_level (self , isolation_level , NULL ) != 0 ) {
150
+ if (pysqlite_connection_set_isolation_level (self , isolation_level , NULL ) < 0 ) {
149
151
Py_DECREF (isolation_level );
150
152
return -1 ;
151
153
}
@@ -193,8 +195,6 @@ pysqlite_connection_init_impl(pysqlite_Connection *self,
193
195
return -1 ;
194
196
}
195
197
196
- self -> initialized = 1 ;
197
-
198
198
return 0 ;
199
199
}
200
200
@@ -371,13 +371,6 @@ pysqlite_connection_close_impl(pysqlite_Connection *self)
371
371
return NULL ;
372
372
}
373
373
374
- if (!self -> initialized ) {
375
- pysqlite_state * state = pysqlite_get_state (NULL );
376
- PyErr_SetString (state -> ProgrammingError ,
377
- "Base Connection.__init__ not called." );
378
- return NULL ;
379
- }
380
-
381
374
pysqlite_do_all_statements (self , ACTION_FINALIZE , 1 );
382
375
connection_close (self );
383
376
@@ -1265,9 +1258,6 @@ int pysqlite_check_thread(pysqlite_Connection* self)
1265
1258
1266
1259
static PyObject * pysqlite_connection_get_isolation_level (pysqlite_Connection * self , void * unused )
1267
1260
{
1268
- if (!pysqlite_check_connection (self )) {
1269
- return NULL ;
1270
- }
1271
1261
return Py_NewRef (self -> isolation_level );
1272
1262
}
1273
1263
@@ -1299,17 +1289,11 @@ pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* iso
1299
1289
return -1 ;
1300
1290
}
1301
1291
if (isolation_level == Py_None ) {
1302
- /* We might get called during connection init, so we cannot use
1303
- * pysqlite_connection_commit() here. */
1304
- if (self -> db && !sqlite3_get_autocommit (self -> db )) {
1305
- int rc ;
1306
- Py_BEGIN_ALLOW_THREADS
1307
- rc = sqlite3_exec (self -> db , "COMMIT" , NULL , NULL , NULL );
1308
- Py_END_ALLOW_THREADS
1309
- if (rc != SQLITE_OK ) {
1310
- return _pysqlite_seterror (self -> db );
1311
- }
1292
+ PyObject * res = pysqlite_connection_commit (self , NULL );
1293
+ if (!res ) {
1294
+ return -1 ;
1312
1295
}
1296
+ Py_DECREF (res );
1313
1297
1314
1298
self -> begin_statement = NULL ;
1315
1299
} else {
0 commit comments