⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlite3.h

📁 sqlite最新源码
💻 H
📖 第 1 页 / 共 5 页
字号:
/*** CAPI3REF: Memory Allocation Routines {H10155} <S20120>** EXPERIMENTAL**** An instance of this object defines the interface between SQLite** and low-level memory allocation routines.**** This object is used in only one place in the SQLite interface.** A pointer to an instance of this object is the argument to** [sqlite3_config()] when the configuration option is** [SQLITE_CONFIG_MALLOC].  By creating an instance of this object** and passing it to [sqlite3_config()] during configuration, an** application can specify an alternative memory allocation subsystem** for SQLite to use for all of its dynamic memory needs.**** Note that SQLite comes with a built-in memory allocator that is** perfectly adequate for the overwhelming majority of applications** and that this object is only useful to a tiny minority of applications** with specialized memory allocation requirements.  This object is** also used during testing of SQLite in order to specify an alternative** memory allocator that simulates memory out-of-memory conditions in** order to verify that SQLite recovers gracefully from such** conditions.**** The xMalloc, xFree, and xRealloc methods must work like the** malloc(), free(), and realloc() functions from the standard library.**** xSize should return the allocated size of a memory allocation** previously obtained from xMalloc or xRealloc.  The allocated size** is always at least as big as the requested size but may be larger.**** The xRoundup method returns what would be the allocated size of** a memory allocation given a particular requested size.  Most memory** allocators round up memory allocations at least to the next multiple** of 8.  Some allocators round up to a larger multiple or to a power of 2.**** The xInit method initializes the memory allocator.  (For example,** it might allocate any require mutexes or initialize internal data** structures.  The xShutdown method is invoked (indirectly) by** [sqlite3_shutdown()] and should deallocate any resources acquired** by xInit.  The pAppData pointer is used as the only parameter to** xInit and xShutdown.*/typedef struct sqlite3_mem_methods sqlite3_mem_methods;struct sqlite3_mem_methods {  void *(*xMalloc)(int);         /* Memory allocation function */  void (*xFree)(void*);          /* Free a prior allocation */  void *(*xRealloc)(void*,int);  /* Resize an allocation */  int (*xSize)(void*);           /* Return the size of an allocation */  int (*xRoundup)(int);          /* Round up request size to allocation size */  int (*xInit)(void*);           /* Initialize the memory allocator */  void (*xShutdown)(void*);      /* Deinitialize the memory allocator */  void *pAppData;                /* Argument to xInit() and xShutdown() */};/*** CAPI3REF: Configuration Options {H10160} <S20000>** EXPERIMENTAL**** These constants are the available integer configuration options that** can be passed as the first argument to the [sqlite3_config()] interface.**** New configuration options may be added in future releases of SQLite.** Existing configuration options might be discontinued.  Applications** should check the return code from [sqlite3_config()] to make sure that** the call worked.  The [sqlite3_config()] interface will return a** non-zero [error code] if a discontinued or unsupported configuration option** is invoked.**** <dl>** <dt>SQLITE_CONFIG_SINGLETHREAD</dt>** <dd>There are no arguments to this option.  This option disables** all mutexing and puts SQLite into a mode where it can only be used** by a single thread.</dd>**** <dt>SQLITE_CONFIG_MULTITHREAD</dt>** <dd>There are no arguments to this option.  This option disables** mutexing on [database connection] and [prepared statement] objects.** The application is responsible for serializing access to** [database connections] and [prepared statements].  But other mutexes** are enabled so that SQLite will be safe to use in a multi-threaded** environment as long as no two threads attempt to use the same** [database connection] at the same time.  See the [threading mode]** documentation for additional information.</dd>**** <dt>SQLITE_CONFIG_SERIALIZED</dt>** <dd>There are no arguments to this option.  This option enables** all mutexes including the recursive** mutexes on [database connection] and [prepared statement] objects.** In this mode (which is the default when SQLite is compiled with** [SQLITE_THREADSAFE=1]) the SQLite library will itself serialize access** to [database connections] and [prepared statements] so that the** application is free to use the same [database connection] or the** same [prepared statement] in different threads at the same time.** See the [threading mode] documentation for additional information.</dd>**** <dt>SQLITE_CONFIG_MALLOC</dt>** <dd>This option takes a single argument which is a pointer to an** instance of the [sqlite3_mem_methods] structure.  The argument specifies** alternative low-level memory allocation routines to be used in place of** the memory allocation routines built into SQLite.</dd>**** <dt>SQLITE_CONFIG_GETMALLOC</dt>** <dd>This option takes a single argument which is a pointer to an** instance of the [sqlite3_mem_methods] structure.  The [sqlite3_mem_methods]** structure is filled with the currently defined memory allocation routines.** This option can be used to overload the default memory allocation** routines with a wrapper that simulations memory allocation failure or** tracks memory usage, for example.</dd>**** <dt>SQLITE_CONFIG_MEMSTATUS</dt>** <dd>This option takes single argument of type int, interpreted as a ** boolean, which enables or disables the collection of memory allocation ** statistics. When disabled, the following SQLite interfaces become ** non-operational:**   <ul>**   <li> [sqlite3_memory_used()]**   <li> [sqlite3_memory_highwater()]**   <li> [sqlite3_soft_heap_limit()]**   <li> [sqlite3_status()]**   </ul>** </dd>**** <dt>SQLITE_CONFIG_SCRATCH</dt>** <dd>This option specifies a static memory buffer that SQLite can use for** scratch memory.  There are three arguments:  A pointer to the memory, the** size of each scratch buffer (sz), and the number of buffers (N).  The sz** argument must be a multiple of 16. The sz parameter should be a few bytes** larger than the actual scratch space required due internal overhead.** The first** argument should point to an allocation of at least sz*N bytes of memory.** SQLite will use no more than one scratch buffer at once per thread, so** N should be set to the expected maximum number of threads.  The sz** parameter should be 6 times the size of the largest database page size.** Scratch buffers are used as part of the btree balance operation.  If** The btree balancer needs additional memory beyond what is provided by** scratch buffers or if no scratch buffer space is specified, then SQLite** goes to [sqlite3_malloc()] to obtain the memory it needs.</dd>**** <dt>SQLITE_CONFIG_PAGECACHE</dt>** <dd>This option specifies a static memory buffer that SQLite can use for** the database page cache with the default page cache implemenation.  ** This configuration should not be used if an application-define page** cache implementation is loaded using the SQLITE_CONFIG_PCACHE option.** There are three arguments to this option: A pointer to the** memory, the size of each page buffer (sz), and the number of pages (N).** The sz argument must be a power of two between 512 and 32768.  The first** argument should point to an allocation of at least sz*N bytes of memory.** SQLite will use the memory provided by the first argument to satisfy its** memory needs for the first N pages that it adds to cache.  If additional** page cache memory is needed beyond what is provided by this option, then** SQLite goes to [sqlite3_malloc()] for the additional storage space.** The implementation might use one or more of the N buffers to hold ** memory accounting information. </dd>**** <dt>SQLITE_CONFIG_HEAP</dt>** <dd>This option specifies a static memory buffer that SQLite will use** for all of its dynamic memory allocation needs beyond those provided** for by [SQLITE_CONFIG_SCRATCH] and [SQLITE_CONFIG_PAGECACHE].** There are three arguments: A pointer to the memory, the number of** bytes in the memory buffer, and the minimum allocation size.  If** the first pointer (the memory pointer) is NULL, then SQLite reverts** to using its default memory allocator (the system malloc() implementation),** undoing any prior invocation of [SQLITE_CONFIG_MALLOC].  If the** memory pointer is not NULL and either [SQLITE_ENABLE_MEMSYS3] or** [SQLITE_ENABLE_MEMSYS5] are defined, then the alternative memory** allocator is engaged to handle all of SQLites memory allocation needs.</dd>**** <dt>SQLITE_CONFIG_MUTEX</dt>** <dd>This option takes a single argument which is a pointer to an** instance of the [sqlite3_mutex_methods] structure.  The argument specifies** alternative low-level mutex routines to be used in place** the mutex routines built into SQLite.</dd>**** <dt>SQLITE_CONFIG_GETMUTEX</dt>** <dd>This option takes a single argument which is a pointer to an** instance of the [sqlite3_mutex_methods] structure.  The** [sqlite3_mutex_methods]** structure is filled with the currently defined mutex routines.** This option can be used to overload the default mutex allocation** routines with a wrapper used to track mutex usage for performance** profiling or testing, for example.</dd>**** <dt>SQLITE_CONFIG_LOOKASIDE</dt>** <dd>This option takes two arguments that determine the default** memory allcation lookaside optimization.  The first argument is the** size of each lookaside buffer slot and the second is the number of** slots allocated to each database connection.</dd>**** <dt>SQLITE_CONFIG_PCACHE</dt>** <dd>This option takes a single argument which is a pointer to** an [sqlite3_pcache_methods] object.  This object specifies the interface** to a custom page cache implementation.  SQLite makes a copy of the** object and uses it for page cache memory allocations.</dd>**** <dt>SQLITE_CONFIG_GETPCACHE</dt>** <dd>This option takes a single argument which is a pointer to an** [sqlite3_pcache_methods] object.  SQLite copies of the current** page cache implementation into that object.</dd>**** </dl>*/#define SQLITE_CONFIG_SINGLETHREAD  1  /* nil */#define SQLITE_CONFIG_MULTITHREAD   2  /* nil */#define SQLITE_CONFIG_SERIALIZED    3  /* nil */#define SQLITE_CONFIG_MALLOC        4  /* sqlite3_mem_methods* */#define SQLITE_CONFIG_GETMALLOC     5  /* sqlite3_mem_methods* */#define SQLITE_CONFIG_SCRATCH       6  /* void*, int sz, int N */#define SQLITE_CONFIG_PAGECACHE     7  /* void*, int sz, int N */#define SQLITE_CONFIG_HEAP          8  /* void*, int nByte, int min */#define SQLITE_CONFIG_MEMSTATUS     9  /* boolean */#define SQLITE_CONFIG_MUTEX        10  /* sqlite3_mutex_methods* */#define SQLITE_CONFIG_GETMUTEX     11  /* sqlite3_mutex_methods* *//* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ #define SQLITE_CONFIG_LOOKASIDE    13  /* int int */#define SQLITE_CONFIG_PCACHE       14  /* sqlite3_pcache_methods* */#define SQLITE_CONFIG_GETPCACHE    15  /* sqlite3_pcache_methods* *//*** CAPI3REF: Configuration Options {H10170} <S20000>** EXPERIMENTAL**** These constants are the available integer configuration options that** can be passed as the second argument to the [sqlite3_db_config()] interface.**** New configuration options may be added in future releases of SQLite.** Existing configuration options might be discontinued.  Applications** should check the return code from [sqlite3_db_config()] to make sure that** the call worked.  The [sqlite3_db_config()] interface will return a** non-zero [error code] if a discontinued or unsupported configuration option** is invoked.**** <dl>** <dt>SQLITE_DBCONFIG_LOOKASIDE</dt>** <dd>This option takes three additional arguments that determine the ** [lookaside memory allocator] configuration for the [database connection].** The first argument (the third parameter to [sqlite3_db_config()] is a** pointer to a memory buffer to use for lookaside memory.  The first** argument may be NULL in which case SQLite will allocate the lookaside** buffer itself using [sqlite3_malloc()].  The second argument is the** size of each lookaside buffer slot and the third argument is the number of** slots.  The size of the buffer in the first argument must be greater than** or equal to the product of the second and third arguments.</dd>**** </dl>*/#define SQLITE_DBCONFIG_LOOKASIDE    1001  /* void* int int *//*** CAPI3REF: Enable Or Disable Extended Result Codes {H12200} <S10700>**** The sqlite3_extended_result_codes() routine enables or disables the** [extended result codes] feature of SQLite. The extended result** codes are disabled by default for historical compatibility considerations.**** INVARIANTS:**** {H12201} Each new [database connection] shall have the**          [extended result codes] feature disabled by default.**** {H12202} The [sqlite3_extended_result_codes(D,F)] interface shall enable**          [extended result codes] for the  [database connection] D**          if the F parameter is true, or disable them if F is false.*/int sqlite3_extended_result_codes(sqlite3*, int onoff);/*** CAPI3REF: Last Insert Rowid {H12220} <S10700>**** Each entry in an SQLite table has a unique 64-bit signed** integer key called the [ROWID | "rowid"]. The rowid is always available** as an undeclared column named ROWID, OID, or _ROWID_ as long as those** names are not also used by explicitly declared columns. If** the table has a column of type [INTEGER PRIMARY KEY] then that column** is another alias for the rowid.**** This routine returns the [rowid] of the most recent** successful [INSERT] into the database from the [database connection]** in the first argument.  If no successful [INSERT]s** have ever occurred on that database connection, zero is returned.**** If an [INSERT] occurs within a trigger, then the [rowid] of the inserted** row is returned by this r

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -