I was looking at master and noticed that the sqlite3_exec call from attachTableInternal() in virtual_table.cpp consistently fails for all tables created with at least one primary key (because WITHOUT ROWID is added to the statement). (Note that the error is not printed, a VLOG() call must be added manually)
An example of this is user_group; the query being executed is the following one:
CREATE VIRTUAL TABLE temp.user_groups USING user_groups(
uid
BIGINT,
gid
BIGINT, PRIMARY KEY (
uid
,
gid
)) WITHOUT ROWID
sqlite3_exec returns with SQLITE_ERROR, and the error description is the following one: "near "WITHOUT": syntax error"
I have also noticed that for the same error, I can't use primary keys in tables added from extensions. Am I missing something?