By default SQLite limits the number of attached databases to 10. I would like to raise this limit to 24, which is possible according to the SQLite documentation. However, given that SQLite is wrapped in a XOJO class I can’t call the sqlite3_limit function suggested. Can anyone point me at an option I can use to adjust this limit.
The c API call is:
int sqlite3_limit(sqlite3*, int id, int newVal);
and the parameter SQLITE_LIMIT_ATTACHED (which has a value of 7).
The compiled in limit is 10
You won’t be able to raise it above that - per the docs for sqlite3_limit SQLITE_LIMIT_ATTACHED is the category ID
The MAX is a compiled in value SQLITE_MAX_ATTACHED which is 10 For each limit category SQLITE_LIMIT_NAME there is a hard upper bound set at compile-time by a C preprocessor macro called SQLITE_MAX_NAME. Attempts to increase a limit above its hard upper bound are silently truncated to the hard upper bound.
So it’s only a matter of altering the default and re-compiling. The true hard limit for this parameter is 125
I could really do with the limit being 25, otherwise I’m going to have to merge a whole load of databases, rather than running queries on a set of unions. Obviously a huge overhead.
/*
** The maximum number of attached databases. This must be between 0
** and 62. The upper bound on 62 is because a 64-bit integer bitmap
** is used internally to track attached databases.
*/ #ifndef SQLITE_MAX_ATTACHED