"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]>

Reply via email to