"Rick Keiner" <[EMAIL PROTECTED]> wrote: > Yes, apparently. The :memory: DB doesn't show the storage being reclaimed by > the OS. In fact, after some more analysis, it's not reusing storage already > allocated. :( Could that be? > > After checking the vacuum.c code. It's not doing anything for an in-memory > DB. Would that be handled elsewhere? > > /* Get the full pathname of the database file and create a > ** temporary filename in the same directory as the original file. > */ > pMain = db->aDb[0].pBt; > zFilename = sqlite3BtreeGetFilename(pMain); > assert( zFilename ); > if( zFilename[0]=='\0' ){ > /* The in-memory database. Do nothing. Return directly to avoid causing > ** an error trying to DETACH the vacuum_db (which never got attached) > ** in the exit-handler. > */ > return SQLITE_OK; > } >
Auto-vacuum and VACUUM, in spite of similar names, are very different mechanisms. You enable autovacuum by issuing a pragma: PRAGMA auto_vacuum=ON; prior to creating any tables in your :memory: database. -- D. Richard Hipp <[EMAIL PROTECTED]>