The culprit seems to be 'pysqlite_do_all_statements(self, ACTION_RESET, 0)' in pysqlite_connection_commit, which resets all active statements, but subsequent fetch/fetchall seems to trash the sqlite3 state in the statements. Removing the ACTION_RESET seems to bring back old behaviour (if it's the correct fix is, however, beyond me).
Slightly modified testprogram that shows more wierdness; output from:
c = cursor.execute(' select k from t where k == ?;', (0,))
conn.commit()
print c.fetchall()
is:
[(0,), (0,)]
which is not what I would expect with a primary key... |