SQLite

View Ticket
Login
Ticket Hash: 47b2581aa9bfececa7d95b2ef2aa433418c7a583
Title: Infinite loop on UPDATE
Status: Fixed Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2018-01-16 13:50:15
Version Found In: 3.21.0
User Comments:
drh added on 2018-01-16 12:54:28: (text/x-fossil-wiki)
The UPDATE at the end of the following sequence of SQL statements enters
an infinite loop.

<blockquote><verbatim>
CREATE TABLE t1(a,b);
CREATE INDEX t1b ON t1(a);
CREATE INDEX t1c ON t1(b);
INSERT INTO t1 VALUES(1,2);
UPDATE t1 SET a = a+2 WHERE a>0 OR b>0;
</verbatim></blockquote>

Bisecting shows that this problem was introduced by the single-pass update
optimization of check-in [7ae6104a3e0d1d2] on 2017-01-11 and first released
with version 3.17.0.  The problem was discovered by Harald Klimach and 
reported on the SQLite mailing list.