Internally, that statement executes: SELECT ... FROM ftsindex5, (SELECT 1234 AS modified) WHERE rowid=modified And it turns out that you can't use an unqualified "rowid" in any SELECT statement with more than one table in the join or you get the error. This is an anachronism I think. There was a time when all tables/views/sub-selects in SQLite had an accessible rowid - even (SELECT 1234). So this case couldn't come up then. But now it can. Dan.