Struct to represent the data of the Sq3ValueC … More...
#include <Sq3ValueC_def_sq3.h>
Data Fields | ||
union { | ||
struct MkObjectS obj | ||
} | super | |
sqlite3_value * | nat | |
internal - link between Sq3ValueS and native library | ||
Struct to represent the data of the Sq3ValueC …
Dynamically Typed Value Object …
SQLite uses the Sq3ValueC 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 Sq3ValueC objects can be integers, floating point values, strings, BLOBs, or NULL.
An Sq3ValueC object may be either "protected" or "unprotected". Some interfaces require a protected Sq3ValueC. Other interfaces will accept either a protected or an unprotected Sq3ValueC. Every interface that accepts Sq3ValueC arguments specifies whether or not it requires a protected Sq3ValueC. The Sq3ValueDup () interface can be used to construct a new protected Sq3ValueC from an unprotected Sq3ValueC.
The terms "protected" and "unprotected" refer to whether or not a mutex is held. An internal mutex is held for a protected Sq3ValueC object but no mutex is held for an unprotected Sq3ValueC object. If SQLite is compiled to be single-threaded (with SQLITE_THREADSAFE=0 and with Sq3Threadsafe () returning 0) or if SQLite is run in one of reduced mutex modes SQ3_CONFIG_SINGLETHREAD or SQ3_CONFIG_MULTITHREAD then there is no distinction between protected and unprotected Sq3ValueC 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 Sq3ValueC objects even when not strictly required.
The Sq3ValueC objects that are passed as parameters into the implementation of application-defined SQL functions are protected. The Sq3ValueC objects returned by sqlite3_vtab_rhs_value () are protected. The Sq3ValueC object returned by Sq3StmtColumnValue () is unprotected. Unprotected Sq3ValueC objects may only be used as arguments to sqlite3_result_value (), Sq3StmtBindValue (), and Sq3ValueDup (). The sqlite3_value_type() family of interfaces require protected Sq3ValueC objects.
Reference code from sqlite3:
Definition at line 39 of file Sq3ValueC_def_sq3.h.
sqlite3_value* Sq3ValueS::nat |
internal - link between Sq3ValueS and native library
Definition at line 50 of file Sq3ValueC_def_sq3.h.
struct MkObjectS Sq3ValueS::obj |
Definition at line 43 of file Sq3ValueC_def_sq3.h.
union { ... } Sq3ValueS::super |