Updated: 2025/Nov/16
Please read Privacy Policy. It's for your privacy.
SQLITE3_VALUE(3) Library Functions Manual SQLITE3_VALUE(3)
NAME
sqlite3_value - dynamically typed value object
SYNOPSIS
#include <sqlite3.h>
typedef struct sqlite3_value sqlite3_value;
DESCRIPTION
SQLite uses the sqlite3_value object to represent all values that can be
stored in a database table. SQLite uses dynamic typing for the values it
stores. Values stored in sqlite3_value objects can be integers, floating
point values, strings, BLOBs, or NULL.
An sqlite3_value object may be either "protected" or "unprotected". Some
interfaces require a protected sqlite3_value. Other interfaces will
accept either a protected or an unprotected sqlite3_value. Every
interface that accepts sqlite3_value arguments specifies whether or not
it requires a protected sqlite3_value. The sqlite3_value_dup() interface
can be used to construct a new protected sqlite3_value from an
unprotected sqlite3_value.
The terms "protected" and "unprotected" refer to whether or not a mutex
is held. An internal mutex is held for a protected sqlite3_value object
but no mutex is held for an unprotected sqlite3_value object. If SQLite
is compiled to be single-threaded (with SQLITE_THREADSAFE=0 and with
sqlite3_threadsafe() returning 0) or if SQLite is run in one of reduced
mutex modes SQLITE_CONFIG_SINGLETHREAD or SQLITE_CONFIG_MULTITHREAD then
there is no distinction between protected and unprotected sqlite3_value
objects and they can be used interchangeably. However, for maximum code
portability it is recommended that applications still make the
distinction between protected and unprotected sqlite3_value objects even
when not strictly required.
The sqlite3_value objects that are passed as parameters into the
implementation of application-defined SQL functions are protected. The
sqlite3_value objects returned by sqlite3_vtab_rhs_value() are protected.
The sqlite3_value object returned by sqlite3_column_value() is
unprotected. Unprotected sqlite3_value objects may only be used as
arguments to sqlite3_result_value(), sqlite3_bind_value(), and
sqlite3_value_dup(). The sqlite3_value_type() family of interfaces
require protected sqlite3_value objects.
IMPLEMENTATION NOTES
These declarations were extracted from the interface documentation at
line 4485.
typedef struct sqlite3_value sqlite3_value;
SEE ALSO
sqlite3_bind_blob(3), sqlite3_column_blob(3), sqlite3_result_blob(3),
sqlite3_threadsafe(3), sqlite3_value_blob(3), sqlite3_value_dup(3),
sqlite3_vtab_rhs_value(3), SQLITE_CONFIG_SINGLETHREAD(3)
NetBSD 11.99 January 24, 2024 NetBSD 11.99