diff options
Diffstat (limited to 'static/netbsd/man3/sqlite3_get_clientdata.3')
| -rw-r--r-- | static/netbsd/man3/sqlite3_get_clientdata.3 | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/static/netbsd/man3/sqlite3_get_clientdata.3 b/static/netbsd/man3/sqlite3_get_clientdata.3 new file mode 100644 index 00000000..45777fed --- /dev/null +++ b/static/netbsd/man3/sqlite3_get_clientdata.3 @@ -0,0 +1,85 @@ +.Dd January 24, 2024 +.Dt SQLITE3_GET_CLIENTDATA 3 +.Os +.Sh NAME +.Nm sqlite3_get_clientdata , +.Nm sqlite3_set_clientdata +.Nd database connection client data +.Sh SYNOPSIS +.In sqlite3.h +.Ft void * +.Fo sqlite3_get_clientdata +.Fa "sqlite3*" +.Fa "const char*" +.Fc +.Ft int +.Fo sqlite3_set_clientdata +.Fa "sqlite3*" +.Fa "const char*" +.Fa "void*" +.Fa "void(*)(void*)" +.Fc +.Sh DESCRIPTION +These functions are used to associate one or more named pointers with +a database connection. +A call to sqlite3_set_clientdata(D,N,P,X) causes the pointer P to be +attached to database connection D using name N. +Subsequent calls to sqlite3_get_clientdata(D,N) will return a copy +of pointer P or a NULL pointer if there were no prior calls to sqlite3_set_clientdata() +with the same values of D and N. +Names are compared using strcmp() and are thus case sensitive. +.Pp +If P and X are both non-NULL, then the destructor X is invoked with +argument P on the first of the following occurrences: +.Bl -bullet +.It +An out-of-memory error occurs during the call to sqlite3_set_clientdata() +which attempts to register pointer P. +.It +A subsequent call to sqlite3_set_clientdata(D,N,P,X) is made with the +same D and N parameters. +.It +The database connection closes. +SQLite does not make any guarantees about the order in which destructors +are called, only that all destructors will be called exactly once at +some point during the database connection closing process. +.El +.Pp +SQLite does not do anything with client data other than invoke destructors +on the client data at the appropriate time. +The intended use for client data is to provide a mechanism for wrapper +libraries to store additional information about an SQLite database +connection. +.Pp +There is no limit (other than available memory) on the number of different +client data pointers (with different names) that can be attached to +a single database connection. +However, the implementation is optimized for the case of having only +one or two different client data names. +Applications and wrapper libraries are discouraged from using more +than one client data name each. +.Pp +There is no way to enumerate the client data pointers associated with +a database connection. +The N parameter can be thought of as a secret key such that only code +that knows the secret key is able to access the associated data. +.Pp +Security Warning: These interfaces should not be exposed in scripting +languages or in other circumstances where it might be possible for +an an attacker to invoke them. +Any agent that can invoke these interfaces can probably also take control +of the process. +.Pp +Database connection client data is only available for SQLite version +3.44.0 (dateof:3.44.0) and later. +.Pp +.Sh IMPLEMENTATION NOTES +These declarations were extracted from the +interface documentation at line 5973. +.Bd -literal +SQLITE_API void *sqlite3_get_clientdata(sqlite3*,const char*); +SQLITE_API int sqlite3_set_clientdata(sqlite3*, const char*, void*, void(*)(void*)); +.Ed +.Sh SEE ALSO +.Xr sqlite3 3 , +.Xr sqlite3_get_auxdata 3 |
