Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


SQLITE3_AUTOVACUUM_PAGES(3)                           Library Functions Manual

NAME
     sqlite3_autovacuum_pages - autovacuum compaction amount callback

SYNOPSIS
     #include <sqlite3.h>

     int
     sqlite3_autovacuum_pages(sqlite3 *db,
         unsigned int(*)(void*,const
         char*,unsigned int,unsigned int,unsigned int), void*,
         void(*)(void*));

DESCRIPTION
     The sqlite3_autovacuum_pages(D,C,P,X) interface registers a callback
     function C that is invoked prior to each autovacuum of the database file.
     The callback is passed a copy of the generic data pointer (P), the
     schema-name of the attached database that is being autovacuumed, the size
     of the database file in pages, the number of free pages, and the number
     of bytes per page, respectively.  The callback should return the number
     of free pages that should be removed by the autovacuum.  If the callback
     returns zero, then no autovacuum happens.  If the value returned is
     greater than or equal to the number of free pages, then a complete
     autovacuum happens.

     If there are multiple ATTACH-ed database files that are being modified as
     part of a transaction commit, then the autovacuum pages callback is
     invoked separately for each file.

     The callback is not reentrant. The callback function should not attempt
     to invoke any other SQLite interface.  If it does, bad things may happen,
     including segmentation faults and corrupt database files.  The callback
     function should be a simple function that does some arithmetic on its
     input parameters and returns a result.

     The X parameter to sqlite3_autovacuum_pages(D,C,P,X) is an optional
     destructor for the P parameter.  If X is not NULL, then X(P) is invoked
     whenever the database connection closes or when the callback is
     overwritten by another invocation of sqlite3_autovacuum_pages().

     There is only one autovacuum pages callback per database connection.
     Each call to the sqlite3_autovacuum_pages() interface overrides all
     previous invocations for that database connection.  If the callback
     argument (C) to sqlite3_autovacuum_pages(D,C,P,X) is a NULL pointer, then
     the autovacuum steps callback is cancelled.  The return value from
     sqlite3_autovacuum_pages() is normally SQLITE_OK, but might be some other
     error code if something goes wrong.  The current implementation will only
     return SQLITE_OK or SQLITE_MISUSE, but other return codes might be added
     in future releases.

     If no autovacuum pages callback is specified (the usual case) or a NULL
     pointer is provided for the callback, then the default behavior is to
     vacuum all free pages.  So, in other words, the default behavior is the
     same as if the callback function were something like this:


         unsigned int demonstration_autovac_pages_callback(       void *pClientData,
           const char *zSchema,       unsigned int nDbPage,       unsigned
     int nFreePage,       unsigned int nBytePerPage     ){       return
     nFreePage;     }


IMPLEMENTATION NOTES
     These declarations were extracted from the interface documentation at
     line 6668.

     SQLITE_API int sqlite3_autovacuum_pages(
       sqlite3 *db,
       unsigned int(*)(void*,const char*,unsigned int,unsigned int,unsigned int),
       void*,
       void(*)(void*)
     );

NetBSD 10.99                    August 24, 2023                   NetBSD 10.99