1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

Add the experimental sqlite3_value_nochange() interface usable by xUpdate

methods of virtual tables to see if a column has actually changed values.

FossilOrigin-Name: 8b7be15ece9e2e83959bb0e21e240106fe1077431242c3cc6b81f1baa2382f40
This commit is contained in:
drh
2018-01-12 21:00:14 +00:00
parent 4ec6f3a075
commit ce2fbd1b02
9 changed files with 56 additions and 24 deletions

View File

@@ -268,6 +268,11 @@ int sqlite3_value_type(sqlite3_value* pVal){
return aType[pVal->flags&MEM_AffMask];
}
/* Return true if a parameter to xUpdate represents an unchanged column */
int sqlite3_value_nochange(sqlite3_value *pVal){
return (pVal->flags&(MEM_Null|MEM_Zero))==(MEM_Null|MEM_Zero);
}
/* Make a copy of an sqlite3_value object
*/
sqlite3_value *sqlite3_value_dup(const sqlite3_value *pOrig){
@@ -761,7 +766,7 @@ sqlite3 *sqlite3_context_db_handle(sqlite3_context *p){
*/
int sqlite3_vtab_nochange(sqlite3_context *p){
assert( p );
return p->bVtabNoChng;
return sqlite3_value_nochange(p->pOut);
}
/*