Mercurial > cpython-lru_cache-weakref
diff Modules/_sqlite/statement.c @ 44022:52bbe3365c72 2.5
- Backported a workaround for a bug in SQLite 3.2.x/3.3.x versions where a
statement recompilation with no bound parameters lead to a segfault
- Backported a fix necessary because of an SQLite API change in version 3.5.
This prevents segfaults when executing empty queries, like our test suite
does.
| author | Gerhard Häring <gh@ghaering.de> |
|---|---|
| date | Sun, 25 Nov 2007 17:40:35 +0000 |
| parents | 7da4af95ebad |
| children | 787b969d37f0 |
line wrap: on
line diff
--- a/Modules/_sqlite/statement.c Sat Nov 24 14:31:16 2007 +0000 +++ b/Modules/_sqlite/statement.c Sun Nov 25 17:40:35 2007 +0000 @@ -237,7 +237,11 @@ */ #ifdef SQLITE_VERSION_NUMBER #if SQLITE_VERSION_NUMBER >= 3002002 - (void)sqlite3_transfer_bindings(self->st, new_st); + /* The check for the number of parameters is necessary to not trigger a + * bug in certain SQLite versions (experienced in 3.2.8 and 3.3.4). */ + if (sqlite3_bind_parameter_count(self->st) > 0) { + (void)sqlite3_transfer_bindings(self->st, new_st); + } #endif #else statement_bind_parameters(self, params);
