SQLite

View Ticket
Login
Ticket Hash: bb4bdb9f7f654b0bb9f34cfbacf5462acb4ce09d
Title: Zeroblob truncated by an index on an expression
Status: Fixed Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Virtual_Machine Resolution: Fixed
Last Modified: 2019-01-25 20:09:23
Version Found In:
User Comments:
drh added on 2019-01-25 20:01:15: (text/x-fossil-wiki)
When a table has an index on an expression, then inserting a zeroblob into
an indexed column of that table might cause the zeroblob to be truncated.

<blockquote><verbatim>
CREATE TABLE t1(a,b,c);
CREATE INDEX t1bbc ON t1(b, b+c);
INSERT INTO t1(a,b,c) VALUES(1,zeroblob(8),3);
SELECT a, b, length(b), c FROM t1;
</verbatim></blockquote>

The correct answer is

<blockquote><verbatim>
1,X'0000000000000000',8,3
</verbatim></blockquote>

But the answer returned is:

<blockquote><verbatim>
1,X'',0,3
</verbatim></blockquote>

This issue was discovered during internal testing.  There have been no
reports of this from the wild.