SQLite Forum

"database or disk is full" with in-memory database. Suggested next steps?
Login
THe memdb.c code returns that result code (SQLITE_FULL) when the database is full (no more memory is available or the number of pages is exceeded).

The solution is to buy more ram and/or to make sure that, once you have more ram, it can be accessed by the process.

If the process is using 32-bit addresses then the maximum memdb size is 1 GB.  
If the process is using 64-bit addresses then the maximum memdb size is 1,048,576 TB.  
If the process is using 48bit addresses then the maximum memdb size is 32 TB.

Presently, current computer technology uses 48-bits or less.

Limits on ram usage per process can also be set in the Operating System.

In this case it sounds like the memdb is limited to 1 GB either because (1) it ram out virtual memory (2) it is only using 32-bit address space, or (3) the Operating System has been configured to not permit the process access to more memory.

Note also that the memdb max size is configurable