Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
SQLITE3_CREATE_FILENAME(3) Library Functions Manual
NAME
sqlite3_create_filename, sqlite3_free_filename - create and destroy VFS
filenames
SYNOPSIS
#include <sqlite3.h>
sqlite3_filename
sqlite3_create_filename(const char *zDatabase, const char *zJournal,
const char *zWal, int nParam, const char **azParam);
void
sqlite3_free_filename(sqlite3_filename);
DESCRIPTION
These interfaces are provided for use by VFS shim implementations and are
not useful outside of that context.
The sqlite3_create_filename(D,J,W,N,P) allocates memory to hold a version
of database filename D with corresponding journal file J and WAL file W
and with N URI parameters key/values pairs in the array P. The result
from sqlite3_create_filename(D,J,W,N,P) is a pointer to a database
filename that is safe to pass to routines like:
⊕ sqlite3_uri_parameter(),
⊕ sqlite3_uri_boolean(),
⊕ sqlite3_uri_int64(),
⊕ sqlite3_uri_key(),
⊕ sqlite3_filename_database(),
⊕ sqlite3_filename_journal(), or
⊕ sqlite3_filename_wal().
If a memory allocation error occurs, sqlite3_create_filename() might
return a NULL pointer. The memory obtained from
sqlite3_create_filename(X) must be released by a corresponding call to
sqlite3_free_filename(Y).
The P parameter in sqlite3_create_filename(D,J,W,N,P) should be an array
of 2*N pointers to strings. Each pair of pointers in this array
corresponds to a key and value for a query parameter. The P parameter
may be a NULL pointer if N is zero. None of the 2*N pointers in the P
array may be NULL pointers and key pointers should not be empty strings.
None of the D, J, or W parameters to sqlite3_create_filename(D,J,W,N,P)
may be NULL pointers, though they can be empty strings.
The sqlite3_free_filename(Y) routine releases a memory allocation
previously obtained from sqlite3_create_filename(). Invoking
sqlite3_free_filename(Y) where Y is a NULL pointer is a harmless no-op.
If the Y parameter to sqlite3_free_filename(Y) is anything other than a
NULL pointer or a pointer previously acquired from
sqlite3_create_filename(), then bad things such as heap corruption or
segfaults may occur. The value Y should not be used again after
sqlite3_free_filename(Y) has been called. This means that if the
sqlite3_vfs.xOpen() method of a VFS has been called using Y, then the
correspondingsqlite3_module.xClose() method should also be invoked prior
to calling sqlite3_free_filename(Y).
IMPLEMENTATION NOTES
These declarations were extracted from the interface documentation at
line 3876.
SQLITE_API sqlite3_filename sqlite3_create_filename(
const char *zDatabase,
const char *zJournal,
const char *zWal,
int nParam,
const char **azParam
);
SQLITE_API void sqlite3_free_filename(sqlite3_filename);
SEE ALSO
sqlite3_filename_database(3), sqlite3_uri_parameter(3)
NetBSD 10.99 August 24, 2023 NetBSD 10.99