On 03/29/2017 08:41 PM, Hick Gunter wrote:
Can you support this notion with the byte code program of the affected
statement?
In the sqlite shell type
.explain
explain <your query>
and post the output or send it to me off list.
NOTE: I am not an SQLite developer, but will need to upgrade sometime later, so
getting ahead of possible changes would be helpful.
-----Ursprüngliche Nachricht-----
Von: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] Im
Auftrag von Bob Friesenhahn
Gesendet: Mittwoch, 29. März 2017 15:34
An: SQLite mailing list <sqlite-users@mailinglists.sqlite.org>
Betreff: Re: [sqlite] VT table behavior change between 3.10 and 3.17
On Wed, 29 Mar 2017, Hick Gunter wrote:
To avoid anomalies when changing "key fields", SQLite will scan through the
whole cursor first, saving the rowids and new contents of the record(s) satisfying the
WHERE clause. It will then close the cursor and call xUpdate for the affected records.
The main sequence is:
xBegin() - xOpen() - xFilter() - xNext()... - xClose() - xUpdate()...
- xSync() - xCommit()
If this is supposed to be the case, then it seems that xClose() is not being
called before xUpdate() with 3.17.
Consider the order of the xClose() and xUpdate() calls in the above to
be undefined. I suspect it changed for *some* UPDATE statements as part
of the single-pass-UPDATE optimization that went into 3.17.0.
Dan.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users