diff options
-rw-r--r-- | Lib/sqlite3/test/test_regression.py | 11 | ||||
-rw-r--r-- | Modules/_sqlite/cursor.c | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Lib/sqlite3/test/test_regression.py b/Lib/sqlite3/test/test_regression.py index ff35673..3d71809 100644 --- a/Lib/sqlite3/test/test_regression.py +++ b/Lib/sqlite3/test/test_regression.py @@ -475,6 +475,17 @@ class RegressionTests(unittest.TestCase): con.execute("drop table t") con.commit() + def test_executescript_step_through_select(self): + with managed_connect(":memory:", in_mem=True) as con: + values = [(v,) for v in range(5)] + with con: + con.execute("create table t(t)") + con.executemany("insert into t values(?)", values) + steps = [] + con.create_function("step", 1, lambda x: steps.append((x,))) + con.executescript("select step(t) from t") + self.assertEqual(steps, values) + if __name__ == "__main__": unittest.main() diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c index 38ccdcf..ca74a68 100644 --- a/Modules/_sqlite/cursor.c +++ b/Modules/_sqlite/cursor.c @@ -760,7 +760,7 @@ pysqlite_cursor_executescript_impl(pysqlite_Cursor *self, &tail); if (rc == SQLITE_OK) { do { - (void)sqlite3_step(stmt); + rc = sqlite3_step(stmt); } while (rc == SQLITE_ROW); rc = sqlite3_finalize(stmt); } |