The following SQL generates an assertion fault in FTS4:
CREATE VIRTUAL TABLE ft USING fts4(a, b, c);
INSERT INTO ft(rowid, a, b, c) VALUES(1, 'unus duo', NULL, NULL);
INSERT INTO ft(rowid, a, b, c) VALUES(2, NULL, NULL, NULL);
UPDATE ft SET b='septum' WHERE rowid = 1;
UPDATE ft SET c='octo' WHERE rowid = 1;
Bisecting shows that this problem first appeared with
check-in [a1d08fd3d0419da8] on 2015-09-29 and was released
with version 3.9.0.
This is a simplification of a problem discovered in the wild and reported
to SQLite developers through private channels.