summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/sqlite3_get_clientdata.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man3/sqlite3_get_clientdata.3')
-rw-r--r--static/netbsd/man3/sqlite3_get_clientdata.385
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