xref: /netbsd-src/external/public-domain/sqlite/man/SQLITE_CONFIG_SINGLETHREAD.3 (revision b9988867a8ad969c45a52aa7628bc932ec98d46b)
1.Dd January 24, 2024
2.Dt SQLITE_CONFIG_SINGLETHREAD 3
3.Os
4.Sh NAME
5.Nm SQLITE_CONFIG_SINGLETHREAD ,
6.Nm SQLITE_CONFIG_MULTITHREAD ,
7.Nm SQLITE_CONFIG_SERIALIZED ,
8.Nm SQLITE_CONFIG_MALLOC ,
9.Nm SQLITE_CONFIG_GETMALLOC ,
10.Nm SQLITE_CONFIG_SCRATCH ,
11.Nm SQLITE_CONFIG_PAGECACHE ,
12.Nm SQLITE_CONFIG_HEAP ,
13.Nm SQLITE_CONFIG_MEMSTATUS ,
14.Nm SQLITE_CONFIG_MUTEX ,
15.Nm SQLITE_CONFIG_GETMUTEX ,
16.Nm SQLITE_CONFIG_LOOKASIDE ,
17.Nm SQLITE_CONFIG_PCACHE ,
18.Nm SQLITE_CONFIG_GETPCACHE ,
19.Nm SQLITE_CONFIG_LOG ,
20.Nm SQLITE_CONFIG_URI ,
21.Nm SQLITE_CONFIG_PCACHE2 ,
22.Nm SQLITE_CONFIG_GETPCACHE2 ,
23.Nm SQLITE_CONFIG_COVERING_INDEX_SCAN ,
24.Nm SQLITE_CONFIG_SQLLOG ,
25.Nm SQLITE_CONFIG_MMAP_SIZE ,
26.Nm SQLITE_CONFIG_WIN32_HEAPSIZE ,
27.Nm SQLITE_CONFIG_PCACHE_HDRSZ ,
28.Nm SQLITE_CONFIG_PMASZ ,
29.Nm SQLITE_CONFIG_STMTJRNL_SPILL ,
30.Nm SQLITE_CONFIG_SMALL_MALLOC ,
31.Nm SQLITE_CONFIG_SORTERREF_SIZE ,
32.Nm SQLITE_CONFIG_MEMDB_MAXSIZE
33.Nd configuration options
34.Sh SYNOPSIS
35.In sqlite3.h
36.Fd #define SQLITE_CONFIG_SINGLETHREAD
37.Fd #define SQLITE_CONFIG_MULTITHREAD
38.Fd #define SQLITE_CONFIG_SERIALIZED
39.Fd #define SQLITE_CONFIG_MALLOC
40.Fd #define SQLITE_CONFIG_GETMALLOC
41.Fd #define SQLITE_CONFIG_SCRATCH
42.Fd #define SQLITE_CONFIG_PAGECACHE
43.Fd #define SQLITE_CONFIG_HEAP
44.Fd #define SQLITE_CONFIG_MEMSTATUS
45.Fd #define SQLITE_CONFIG_MUTEX
46.Fd #define SQLITE_CONFIG_GETMUTEX
47.Fd #define SQLITE_CONFIG_LOOKASIDE
48.Fd #define SQLITE_CONFIG_PCACHE
49.Fd #define SQLITE_CONFIG_GETPCACHE
50.Fd #define SQLITE_CONFIG_LOG
51.Fd #define SQLITE_CONFIG_URI
52.Fd #define SQLITE_CONFIG_PCACHE2
53.Fd #define SQLITE_CONFIG_GETPCACHE2
54.Fd #define SQLITE_CONFIG_COVERING_INDEX_SCAN
55.Fd #define SQLITE_CONFIG_SQLLOG
56.Fd #define SQLITE_CONFIG_MMAP_SIZE
57.Fd #define SQLITE_CONFIG_WIN32_HEAPSIZE
58.Fd #define SQLITE_CONFIG_PCACHE_HDRSZ
59.Fd #define SQLITE_CONFIG_PMASZ
60.Fd #define SQLITE_CONFIG_STMTJRNL_SPILL
61.Fd #define SQLITE_CONFIG_SMALL_MALLOC
62.Fd #define SQLITE_CONFIG_SORTERREF_SIZE
63.Fd #define SQLITE_CONFIG_MEMDB_MAXSIZE
64.Sh DESCRIPTION
65These constants are the available integer configuration options that
66can be passed as the first argument to the
67.Fn sqlite3_config
68interface.
69.Pp
70Most of the configuration options for sqlite3_config() will only work
71if invoked prior to
72.Fn sqlite3_initialize
73or after
74.Fn sqlite3_shutdown .
75The few exceptions to this rule are called "anytime configuration options".
76Calling
77.Fn sqlite3_config
78with a first argument that is not an anytime configuration option in
79between calls to
80.Fn sqlite3_initialize
81and
82.Fn sqlite3_shutdown
83is a no-op that returns SQLITE_MISUSE.
84.Pp
85The set of anytime configuration options can change (by insertions
86and/or deletions) from one release of SQLite to the next.
87As of SQLite version 3.42.0, the complete set of anytime configuration
88options is:
89.Bl -bullet
90.It
91SQLITE_CONFIG_LOG
92.It
93SQLITE_CONFIG_PCACHE_HDRSZ
94.El
95.Pp
96New configuration options may be added in future releases of SQLite.
97Existing configuration options might be discontinued.
98Applications should check the return code from
99.Fn sqlite3_config
100to make sure that the call worked.
101The
102.Fn sqlite3_config
103interface will return a non-zero error code if a discontinued
104or unsupported configuration option is invoked.
105.Bl -tag -width Ds
106.It SQLITE_CONFIG_SINGLETHREAD
107There are no arguments to this option.
108This option sets the threading mode to Single-thread.
109In other words, it disables all mutexing and puts SQLite into a mode
110where it can only be used by a single thread.
111If SQLite is compiled with the SQLITE_THREADSAFE=0
112compile-time option then it is not possible to change the threading mode
113from its default value of Single-thread and so
114.Fn sqlite3_config
115will return SQLITE_ERROR if called with the SQLITE_CONFIG_SINGLETHREAD
116configuration option.
117.It SQLITE_CONFIG_MULTITHREAD
118There are no arguments to this option.
119This option sets the threading mode to Multi-thread.
120In other words, it disables mutexing on database connection
121and prepared statement objects.
122The application is responsible for serializing access to database connections
123and prepared statements.
124But other mutexes are enabled so that SQLite will be safe to use in
125a multi-threaded environment as long as no two threads attempt to use
126the same database connection at the same time.
127If SQLite is compiled with the SQLITE_THREADSAFE=0
128compile-time option then it is not possible to set the Multi-thread
129threading mode and
130.Fn sqlite3_config
131will return SQLITE_ERROR if called with the SQLITE_CONFIG_MULTITHREAD
132configuration option.
133.It SQLITE_CONFIG_SERIALIZED
134There are no arguments to this option.
135This option sets the threading mode to Serialized.
136In other words, this option enables all mutexes including the recursive
137mutexes on database connection and prepared statement
138objects.
139In this mode (which is the default when SQLite is compiled with SQLITE_THREADSAFE=1)
140the SQLite library will itself serialize access to database connections
141and prepared statements so that the application
142is free to use the same database connection or the
143same prepared statement in different threads at the
144same time.
145If SQLite is compiled with the SQLITE_THREADSAFE=0
146compile-time option then it is not possible to set the Serialized threading mode
147and
148.Fn sqlite3_config
149will return SQLITE_ERROR if called with the SQLITE_CONFIG_SERIALIZED
150configuration option.
151.It SQLITE_CONFIG_MALLOC
152The SQLITE_CONFIG_MALLOC option takes a single argument which is a
153pointer to an instance of the sqlite3_mem_methods
154structure.
155The argument specifies alternative low-level memory allocation routines
156to be used in place of the memory allocation routines built into SQLite.
157SQLite makes its own private copy of the content of the sqlite3_mem_methods
158structure before the
159.Fn sqlite3_config
160call returns.
161.It SQLITE_CONFIG_GETMALLOC
162The SQLITE_CONFIG_GETMALLOC option takes a single argument which is
163a pointer to an instance of the sqlite3_mem_methods
164structure.
165The sqlite3_mem_methods structure is filled with
166the currently defined memory allocation routines.
167This option can be used to overload the default memory allocation routines
168with a wrapper that simulations memory allocation failure or tracks
169memory usage, for example.
170.It SQLITE_CONFIG_SMALL_MALLOC
171The SQLITE_CONFIG_SMALL_MALLOC option takes single argument of type
172int, interpreted as a boolean, which if true provides a hint to SQLite
173that it should avoid large memory allocations if possible.
174SQLite will run faster if it is free to make large memory allocations,
175but some application might prefer to run slower in exchange for guarantees
176about memory fragmentation that are possible if large allocations are
177avoided.
178This hint is normally off.
179.It SQLITE_CONFIG_MEMSTATUS
180The SQLITE_CONFIG_MEMSTATUS option takes single argument of type int,
181interpreted as a boolean, which enables or disables the collection
182of memory allocation statistics.
183When memory allocation statistics are disabled, the following SQLite
184interfaces become non-operational:
185.Bl -bullet
186.It
187.Fn sqlite3_hard_heap_limit64
188.It
189.Fn sqlite3_memory_used
190.It
191.Fn sqlite3_memory_highwater
192.It
193.Fn sqlite3_soft_heap_limit64
194.It
195.Fn sqlite3_status64
196.El
197.Pp
198Memory allocation statistics are enabled by default unless SQLite is
199compiled with SQLITE_DEFAULT_MEMSTATUS=0 in
200which case memory allocation statistics are disabled by default.
201.It SQLITE_CONFIG_SCRATCH
202The SQLITE_CONFIG_SCRATCH option is no longer used.
203.It SQLITE_CONFIG_PAGECACHE
204The SQLITE_CONFIG_PAGECACHE option specifies a memory pool that SQLite
205can use for the database page cache with the default page cache implementation.
206This configuration option is a no-op if an application-defined page
207cache implementation is loaded using the SQLITE_CONFIG_PCACHE2.
208There are three arguments to SQLITE_CONFIG_PAGECACHE: A pointer to
2098-byte aligned memory (pMem), the size of each page cache line (sz),
210and the number of cache lines (N).
211The sz argument should be the size of the largest database page (a
212power of two between 512 and 65536) plus some extra bytes for each
213page header.
214The number of extra bytes needed by the page header can be determined
215using SQLITE_CONFIG_PCACHE_HDRSZ.
216It is harmless, apart from the wasted memory, for the sz parameter
217to be larger than necessary.
218The pMem argument must be either a NULL pointer or a pointer to an
2198-byte aligned block of memory of at least sz*N bytes, otherwise subsequent
220behavior is undefined.
221When pMem is not NULL, SQLite will strive to use the memory provided
222to satisfy page cache needs, falling back to
223.Fn sqlite3_malloc
224if a page cache line is larger than sz bytes or if all of the pMem
225buffer is exhausted.
226If pMem is NULL and N is non-zero, then each database connection does
227an initial bulk allocation for page cache memory from
228.Fn sqlite3_malloc
229sufficient for N cache lines if N is positive or of -1024*N bytes if
230N is negative, .
231If additional page cache memory is needed beyond what is provided by
232the initial allocation, then SQLite goes to
233.Fn sqlite3_malloc
234separately for each additional cache line.
235.It SQLITE_CONFIG_HEAP
236The SQLITE_CONFIG_HEAP option specifies a static memory buffer that
237SQLite will use for all of its dynamic memory allocation needs beyond
238those provided for by SQLITE_CONFIG_PAGECACHE.
239The SQLITE_CONFIG_HEAP option is only available if SQLite is compiled
240with either SQLITE_ENABLE_MEMSYS3 or SQLITE_ENABLE_MEMSYS5
241and returns SQLITE_ERROR if invoked otherwise.
242There are three arguments to SQLITE_CONFIG_HEAP: An 8-byte aligned
243pointer to the memory, the number of bytes in the memory buffer, and
244the minimum allocation size.
245If the first pointer (the memory pointer) is NULL, then SQLite reverts
246to using its default memory allocator (the system malloc() implementation),
247undoing any prior invocation of SQLITE_CONFIG_MALLOC.
248If the memory pointer is not NULL then the alternative memory allocator
249is engaged to handle all of SQLites memory allocation needs.
250The first pointer (the memory pointer) must be aligned to an 8-byte
251boundary or subsequent behavior of SQLite will be undefined.
252The minimum allocation size is capped at 2**12.
253Reasonable values for the minimum allocation size are 2**5 through
2542**8.
255.It SQLITE_CONFIG_MUTEX
256The SQLITE_CONFIG_MUTEX option takes a single argument which is a pointer
257to an instance of the sqlite3_mutex_methods structure.
258The argument specifies alternative low-level mutex routines to be used
259in place the mutex routines built into SQLite.
260SQLite makes a copy of the content of the sqlite3_mutex_methods
261structure before the call to
262.Fn sqlite3_config
263returns.
264If SQLite is compiled with the SQLITE_THREADSAFE=0
265compile-time option then the entire mutexing subsystem is omitted from
266the build and hence calls to
267.Fn sqlite3_config
268with the SQLITE_CONFIG_MUTEX configuration option will return SQLITE_ERROR.
269.It SQLITE_CONFIG_GETMUTEX
270The SQLITE_CONFIG_GETMUTEX option takes a single argument which is
271a pointer to an instance of the sqlite3_mutex_methods
272structure.
273The sqlite3_mutex_methods structure is filled
274with the currently defined mutex routines.
275This option can be used to overload the default mutex allocation routines
276with a wrapper used to track mutex usage for performance profiling
277or testing, for example.
278If SQLite is compiled with the SQLITE_THREADSAFE=0
279compile-time option then the entire mutexing subsystem is omitted from
280the build and hence calls to
281.Fn sqlite3_config
282with the SQLITE_CONFIG_GETMUTEX configuration option will return SQLITE_ERROR.
283.It SQLITE_CONFIG_LOOKASIDE
284The SQLITE_CONFIG_LOOKASIDE option takes two arguments that determine
285the default size of lookaside memory on each database connection.
286The first argument is the size of each lookaside buffer slot and the
287second is the number of slots allocated to each database connection.
288SQLITE_CONFIG_LOOKASIDE sets the \fIdefault\fP lookaside size.
289The SQLITE_DBCONFIG_LOOKASIDE option to
290.Fn sqlite3_db_config
291can be used to change the lookaside configuration on individual connections.
292.It SQLITE_CONFIG_PCACHE2
293The SQLITE_CONFIG_PCACHE2 option takes a single argument which is a
294pointer to an sqlite3_pcache_methods2 object.
295This object specifies the interface to a custom page cache implementation.
296SQLite makes a copy of the sqlite3_pcache_methods2
297object.
298.It SQLITE_CONFIG_GETPCACHE2
299The SQLITE_CONFIG_GETPCACHE2 option takes a single argument which is
300a pointer to an sqlite3_pcache_methods2 object.
301SQLite copies of the current page cache implementation into that object.
302.It SQLITE_CONFIG_LOG
303The SQLITE_CONFIG_LOG option is used to configure the SQLite global
304error log.
305(The SQLITE_CONFIG_LOG option takes two arguments: a pointer to a function
306with a call signature of void(*)(void*,int,const char*), and a pointer
307to void.
308If the function pointer is not NULL, it is invoked by
309.Fn sqlite3_log
310to process each logging event.
311If the function pointer is NULL, the
312.Fn sqlite3_log
313interface becomes a no-op.
314The void pointer that is the second argument to SQLITE_CONFIG_LOG is
315passed through as the first parameter to the application-defined logger
316function whenever that function is invoked.
317The second parameter to the logger function is a copy of the first
318parameter to the corresponding
319.Fn sqlite3_log
320call and is intended to be a result code or an extended result code.
321The third parameter passed to the logger is log message after formatting
322via
323.Fn sqlite3_snprintf .
324The SQLite logging interface is not reentrant; the logger function
325supplied by the application must not invoke any SQLite interface.
326In a multi-threaded application, the application-defined logger function
327must be threadsafe.
328.It SQLITE_CONFIG_URI
329The SQLITE_CONFIG_URI option takes a single argument of type int.
330If non-zero, then URI handling is globally enabled.
331If the parameter is zero, then URI handling is globally disabled.
332If URI handling is globally enabled, all filenames passed to
333.Fn sqlite3_open ,
334.Fn sqlite3_open_v2 ,
335.Fn sqlite3_open16
336or specified as part of ATTACH commands are interpreted as URIs,
337regardless of whether or not the SQLITE_OPEN_URI flag
338is set when the database connection is opened.
339If it is globally disabled, filenames are only interpreted as URIs
340if the SQLITE_OPEN_URI flag is set when the database connection is
341opened.
342By default, URI handling is globally disabled.
343The default value may be changed by compiling with the SQLITE_USE_URI
344symbol defined.
345.It SQLITE_CONFIG_COVERING_INDEX_SCAN
346The SQLITE_CONFIG_COVERING_INDEX_SCAN option takes a single integer
347argument which is interpreted as a boolean in order to enable or disable
348the use of covering indices for full table scans in the query optimizer.
349The default setting is determined by the SQLITE_ALLOW_COVERING_INDEX_SCAN
350compile-time option, or is "on" if that compile-time option is omitted.
351The ability to disable the use of covering indices for full table scans
352is because some incorrectly coded legacy applications might malfunction
353when the optimization is enabled.
354Providing the ability to disable the optimization allows the older,
355buggy application code to work without change even with newer versions
356of SQLite.
357.It SQLITE_CONFIG_PCACHE and SQLITE_CONFIG_GETPCACHE
358These options are obsolete and should not be used by new code.
359They are retained for backwards compatibility but are now no-ops.
360.It SQLITE_CONFIG_SQLLOG
361This option is only available if sqlite is compiled with the SQLITE_ENABLE_SQLLOG
362pre-processor macro defined.
363The first argument should be a pointer to a function of type void(*)(void*,sqlite3*,const
364char*, int).
365The second should be of type (void*).
366The callback is invoked by the library in three separate circumstances,
367identified by the value passed as the fourth parameter.
368If the fourth parameter is 0, then the database connection passed as
369the second argument has just been opened.
370The third argument points to a buffer containing the name of the main
371database file.
372If the fourth parameter is 1, then the SQL statement that the third
373parameter points to has just been executed.
374Or, if the fourth parameter is 2, then the connection being passed
375as the second parameter is being closed.
376The third parameter is passed NULL In this case.
377An example of using this configuration option can be seen in the "test_sqllog.c"
378source file in the canonical SQLite source tree.
379.It SQLITE_CONFIG_MMAP_SIZE
380SQLITE_CONFIG_MMAP_SIZE takes two 64-bit integer (sqlite3_int64) values
381that are the default mmap size limit (the default setting for PRAGMA mmap_size)
382and the maximum allowed mmap size limit.
383The default setting can be overridden by each database connection using
384either the PRAGMA mmap_size command, or by using the
385SQLITE_FCNTL_MMAP_SIZE file control.
386The maximum allowed mmap size will be silently truncated if necessary
387so that it does not exceed the compile-time maximum mmap size set by
388the SQLITE_MAX_MMAP_SIZE compile-time option.
389If either argument to this option is negative, then that argument is
390changed to its compile-time default.
391.It SQLITE_CONFIG_WIN32_HEAPSIZE
392The SQLITE_CONFIG_WIN32_HEAPSIZE option is only available if SQLite
393is compiled for Windows with the SQLITE_WIN32_MALLOC
394pre-processor macro defined.
395SQLITE_CONFIG_WIN32_HEAPSIZE takes a 32-bit unsigned integer value
396that specifies the maximum size of the created heap.
397.It SQLITE_CONFIG_PCACHE_HDRSZ
398The SQLITE_CONFIG_PCACHE_HDRSZ option takes a single parameter which
399is a pointer to an integer and writes into that integer the number
400of extra bytes per page required for each page in SQLITE_CONFIG_PAGECACHE.
401The amount of extra space required can change depending on the compiler,
402target platform, and SQLite version.
403.It SQLITE_CONFIG_PMASZ
404The SQLITE_CONFIG_PMASZ option takes a single parameter which is an
405unsigned integer and sets the "Minimum PMA Size" for the multithreaded
406sorter to that integer.
407The default minimum PMA Size is set by the SQLITE_SORTER_PMASZ
408compile-time option.
409New threads are launched to help with sort operations when multithreaded
410sorting is enabled (using the PRAGMA threads command)
411and the amount of content to be sorted exceeds the page size times
412the minimum of the PRAGMA cache_size setting and this
413value.
414.It SQLITE_CONFIG_STMTJRNL_SPILL
415The SQLITE_CONFIG_STMTJRNL_SPILL option takes a single parameter which
416becomes the statement journal spill-to-disk threshold.
417Statement journals are held in memory until their
418size (in bytes) exceeds this threshold, at which point they are written
419to disk.
420Or if the threshold is -1, statement journals are always held exclusively
421in memory.
422Since many statement journals never become large, setting the spill
423threshold to a value such as 64KiB can greatly reduce the amount of
424I/O required to support statement rollback.
425The default value for this setting is controlled by the SQLITE_STMTJRNL_SPILL
426compile-time option.
427.It SQLITE_CONFIG_SORTERREF_SIZE
428The SQLITE_CONFIG_SORTERREF_SIZE option accepts a single parameter
429of type (int) - the new value of the sorter-reference size threshold.
430Usually, when SQLite uses an external sort to order records according
431to an ORDER BY clause, all fields required by the caller are present
432in the sorted records.
433However, if SQLite determines based on the declared type of a table
434column that its values are likely to be very large - larger than the
435configured sorter-reference size threshold - then a reference is stored
436in each sorted record and the required column values loaded from the
437database as records are returned in sorted order.
438The default value for this option is to never use this optimization.
439Specifying a negative value for this option restores the default behavior.
440This option is only available if SQLite is compiled with the SQLITE_ENABLE_SORTER_REFERENCES
441compile-time option.
442.It SQLITE_CONFIG_MEMDB_MAXSIZE
443The SQLITE_CONFIG_MEMDB_MAXSIZE option accepts a single parameter sqlite3_int64
444parameter which is the default maximum size for an in-memory database
445created using
446.Fn sqlite3_deserialize .
447This default maximum size can be adjusted up or down for individual
448databases using the SQLITE_FCNTL_SIZE_LIMIT
449file-control.
450If this configuration setting is never used, then the default maximum
451is determined by the SQLITE_MEMDB_DEFAULT_MAXSIZE
452compile-time option.
453If that compile-time option is not set, then the default maximum is
4541073741824.
455.El
456.Pp
457.Sh IMPLEMENTATION NOTES
458These declarations were extracted from the
459interface documentation at line 1777.
460.Bd -literal
461#define SQLITE_CONFIG_SINGLETHREAD         1  /* nil */
462#define SQLITE_CONFIG_MULTITHREAD          2  /* nil */
463#define SQLITE_CONFIG_SERIALIZED           3  /* nil */
464#define SQLITE_CONFIG_MALLOC               4  /* sqlite3_mem_methods* */
465#define SQLITE_CONFIG_GETMALLOC            5  /* sqlite3_mem_methods* */
466#define SQLITE_CONFIG_SCRATCH              6  /* No longer used */
467#define SQLITE_CONFIG_PAGECACHE            7  /* void*, int sz, int N */
468#define SQLITE_CONFIG_HEAP                 8  /* void*, int nByte, int min */
469#define SQLITE_CONFIG_MEMSTATUS            9  /* boolean */
470#define SQLITE_CONFIG_MUTEX               10  /* sqlite3_mutex_methods* */
471#define SQLITE_CONFIG_GETMUTEX            11  /* sqlite3_mutex_methods* */
472/* previously SQLITE_CONFIG_CHUNKALLOC    12 which is now unused. */
473#define SQLITE_CONFIG_LOOKASIDE           13  /* int int */
474#define SQLITE_CONFIG_PCACHE              14  /* no-op */
475#define SQLITE_CONFIG_GETPCACHE           15  /* no-op */
476#define SQLITE_CONFIG_LOG                 16  /* xFunc, void* */
477#define SQLITE_CONFIG_URI                 17  /* int */
478#define SQLITE_CONFIG_PCACHE2             18  /* sqlite3_pcache_methods2* */
479#define SQLITE_CONFIG_GETPCACHE2          19  /* sqlite3_pcache_methods2* */
480#define SQLITE_CONFIG_COVERING_INDEX_SCAN 20  /* int */
481#define SQLITE_CONFIG_SQLLOG              21  /* xSqllog, void* */
482#define SQLITE_CONFIG_MMAP_SIZE           22  /* sqlite3_int64, sqlite3_int64 */
483#define SQLITE_CONFIG_WIN32_HEAPSIZE      23  /* int nByte */
484#define SQLITE_CONFIG_PCACHE_HDRSZ        24  /* int *psz */
485#define SQLITE_CONFIG_PMASZ               25  /* unsigned int szPma */
486#define SQLITE_CONFIG_STMTJRNL_SPILL      26  /* int nByte */
487#define SQLITE_CONFIG_SMALL_MALLOC        27  /* boolean */
488#define SQLITE_CONFIG_SORTERREF_SIZE      28  /* int nByte */
489#define SQLITE_CONFIG_MEMDB_MAXSIZE       29  /* sqlite3_int64 */
490.Ed
491.Sh SEE ALSO
492.Xr sqlite3 3 ,
493.Xr sqlite3_config 3 ,
494.Xr sqlite3_db_config 3 ,
495.Xr sqlite3_deserialize 3 ,
496.Xr sqlite3_file_control 3 ,
497.Xr sqlite3_initialize 3 ,
498.Xr sqlite3_log 3 ,
499.Xr sqlite3_malloc 3 ,
500.Xr sqlite3_mem_methods 3 ,
501.Xr sqlite3_memory_used 3 ,
502.Xr sqlite3_mprintf 3 ,
503.Xr sqlite3_mutex_methods 3 ,
504.Xr sqlite3_open 3 ,
505.Xr sqlite3_pcache_methods2 3 ,
506.Xr sqlite3_soft_heap_limit64 3 ,
507.Xr sqlite3_status 3 ,
508.Xr sqlite3_stmt 3 ,
509.Xr SQLITE_DBCONFIG_MAINDBNAME 3 ,
510.Xr SQLITE_FCNTL_LOCKSTATE 3 ,
511.Xr sqlite_int64 3 ,
512.Xr SQLITE_OK 3 ,
513.Xr SQLITE_OPEN_READONLY 3
514