|Title:||"<" or "<=" comparison of rowid and non-numeric text value sometimes gets the wrong answer.|
|Last Modified:||2019-05-08 14:03:50|
|Version Found In:|
dan added on 2019-05-08 11:37:44:
In the following, the second SELECT statement returns 0 rows:
CREATE TABLE t14(x INTEGER PRIMARY KEY); INSERT INTO t14(x) VALUES (100); SELECT * FROM t14 WHERE x < 'a' ORDER BY rowid ASC; SELECT * FROM t14 WHERE x < 'a' ORDER BY rowid DESC;
dan added on 2019-05-08 11:40:33:
This has been a problem since before version 3.8.0.
dan added on 2019-05-08 11:54:06:
Fixed by [658b84d7].
drh added on 2019-05-08 14:03:50:
This problem was originally reported on the SQLite mailing list by Manuel Rigger.
The original problem report used PRAGMA reverse_unordered_selects. However, as the script above shows, the problem has nothing to do with reverse_unordered_selects. The problem was a defect in the implementation of some of the (rarely used) comparison opcodes in the bytecode engine.