Forward-port of commit 59184.

- 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
This commit is contained in:
Gerhard Häring 2007-12-11 21:07:40 +00:00
parent 7a634e6027
commit 99b9df8e11
2 changed files with 14 additions and 4 deletions

View file

@ -237,7 +237,11 @@ int pysqlite_statement_recompile(pysqlite_Statement* self, PyObject* params)
*/
#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);