We use (for years now) an in-memory DB with both tables and virtual tables in our app.
We recently started experimenting with multiple connections to the same in-memory DB, thanks to URI filenames and shared cache, to perform queries in parallel. This seems to work well with regular tables, and we get close to a 3x speedup using 4-5 threads on some use cases (running many queries). But now we're trying to configure virtual tables and multiple connections to that unique in-memory DB, and we're having some trouble. We're not sure yet it's not related to our code, which so far assumed a single connection was in use accessing the vtables, but I'd like to get a reality check for that use case from experts. On the first connection, we declare the virtual module and its virtual tables. This also adds the vtables to sqlite_master. But then on additional connections to that same in-memory DB, we also need to declare a vmodule and vtables, right? Yet it's already in sqlite_master, and it fails on the "create virtual table" statement. Is this use case supported by SQLite? Has any one tried this successfully? Any chance this might work in the near future? Thanks for any input on this. --DD PS: assume read-only use cases for now, and no concurrent writes during these // queries.