sqlite3_value *sqlite3_value_dup(const sqlite3_value*); void sqlite3_value_free(sqlite3_value*);
sqlite3_value_dup(V) делает копию sqlite3_value объекта D и возвращает указатель на ту копию. Возвращенный sqlite3_value объект это protected sqlite3_value даже если вход им не был. sqlite3_value_dup(V) вернет NULL, если V = NULL или выделение памяти терпит неудачу. Если V указатель, то результатом sqlite3_value_dup(V) будет NULL.
sqlite3_value_free(V) освобождает объект sqlite3_value, ранее полученный из sqlite3_value_dup(). Если V = NULL, то sqlite3_value_free(V) ничего не делает.