Message286525
Let me give a summary.
Before 3.6.0 (before 284676cf2ac8):
implicit begin: st in (INSERT, UPDATE, DELETE, REPLACE)
implicit commit: st not in (SELECT, INSERT, UPDATE, DELETE, REPLACE)
In 3.6.0 (after 284676cf2ac8):
implicit begin: (not sqlite3_stmt_readonly(st)) and (not in (CREATE, DROP, REINDEX))
implicit commit: no
With Palivoda's sqlite-ddl-dml-3.patch:
implicit begin: st in (INSERT, UPDATE, DELETE, REPLACE)
implicit commit: no
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some possible subsequent steps base on this issue:
1, remove sqlite3_stmt_readonly(), see issue29355.
Base on sqlite-ddl-dml-3.patch, only change a single line of code:
+ if (self->is_dml) {
- if (!sqlite3_stmt_readonly(self->statement->st)) {
Then restore the behavior before 3.6.0, this is even better than using sqlite3_stmt_readonly().
2, enhance backward compatibility.
Please read msg284585, msg286217, msg286293 in a row.
If we implicitly commit before executing some statements (and print a warning), we can improve compatibility largely, the cost is almost free.
3, docments enhancement.
see issue8145, issue29121. |
|
Date |
User |
Action |
Args |
2017-01-31 12:38:15 | malin | set | recipients:
+ malin, ghaering, jaraco, ned.deily, r.david.murray, socketpair, berker.peksag, serhiy.storchaka, xiang.zhang, palaviv, Big Stone, fschulze, callidomus, Cédric Bellegarde |
2017-01-31 12:38:15 | malin | set | messageid: <1485866295.69.0.658152607731.issue28518@psf.upfronthosting.co.za> |
2017-01-31 12:38:15 | malin | link | issue28518 messages |
2017-01-31 12:38:15 | malin | create | |
|