Sq3ValueC - work with the virtual-file-system … More...
Functions | |
static enum MkErrorE | Sq3ValueVtabInFirst (SQ3_VAL pVal, SQ3_VAL *ppOut) |
Find all elements on the right-hand side of an IN constraint … | |
static enum MkErrorE | Sq3ValueVtabInNext (SQ3_VAL pVal, SQ3_VAL *ppOut) |
Find all elements on the right-hand side of an IN constraint … | |
Sq3ValueC - Sq3ValueC_Vtab_C_API - function | |
enum MkErrorE | Sq3ValueVtabInFirstP (SQ3_VAL pVal, SQ3_VAL *ppOut) |
Non-inline replacement for Sq3ValueVtabInFirst … | |
enum MkErrorE | Sq3ValueVtabInNextP (SQ3_VAL pVal, SQ3_VAL *ppOut) |
Non-inline replacement for Sq3ValueVtabInNext … | |
Sq3ValueC - Sq3ValueC_Vtab_C_API - overload | |
#define | Sq3ValueVtabInFirst_E(...) |
#define | Sq3ValueVtabInFirst_C(...) |
#define | Sq3ValueVtabInFirst_e(...) |
#define | Sq3ValueVtabInNext_E(...) |
#define | Sq3ValueVtabInNext_C(...) |
#define | Sq3ValueVtabInNext_e(...) |
Sq3ValueC - work with the virtual-file-system …
#define Sq3ValueVtabInFirst_C | ( | ... | ) |
Definition at line 739 of file sqlite3_overload_sq3.h.
#define Sq3ValueVtabInFirst_E | ( | ... | ) |
Definition at line 738 of file sqlite3_overload_sq3.h.
#define Sq3ValueVtabInFirst_e | ( | ... | ) |
Definition at line 740 of file sqlite3_overload_sq3.h.
#define Sq3ValueVtabInNext_C | ( | ... | ) |
Definition at line 742 of file sqlite3_overload_sq3.h.
#define Sq3ValueVtabInNext_E | ( | ... | ) |
Definition at line 741 of file sqlite3_overload_sq3.h.
#define Sq3ValueVtabInNext_e | ( | ... | ) |
Definition at line 743 of file sqlite3_overload_sq3.h.
Find all elements on the right-hand side of an IN constraint …
These interfaces are only useful from within the xFilter() method of a virtual table implementation. The result of invoking these interfaces from any other context is undefined and probably harmful.
The X parameter in a call to Sq3ValueVtabInFirst(X,P) or Sq3ValueVtabInNext(X,P) should be one of the parameters to the xFilter method which invokes these routines, and specifically a parameter that was previously selected for all-at-once IN constraint processing use the sqlite3_vtab_in () interface in the xBestIndex method. If the X parameter is not an xFilter argument that was selected for all-at-once IN constraint processing, then these routines return SQ3_RESULT_ERROR.
Use these routines to access all values on the right-hand side of the IN constraint using code like the following:
for(rc=sqlite3_vtab_in_first(pList, &pVal); rc==SQ3_RESULT_OK && pVal; rc=sqlite3_vtab_in_next(pList, &pVal) ){ // do something with pVal } if( rc!=SQ3_RESULT_OK ){ // an error has occurred }
On success, the Sq3ValueVtabInFirst(X,P) and Sq3ValueVtabInNext(X,P) routines return SQ3_RESULT_OK and set *P to point to the first or next value on the RHS of the IN constraint. If there are no more values on the right hand side of the IN constraint, then *P is set to NULL and these routines return SQ3_RESULT_DONE. The return value might be some other value, such as SQ3_RESULT_NOMEM, in the event of a malfunction.
The *ppOut values returned by these routines are only valid until the next call to either of these routines or until the end of the xFilter method from which these routines were called. If the virtual table implementation needs to retain the *ppOut values for longer, it must make copies. The *ppOut values are protected.
Reference code from sqlite3:
Definition at line 145 of file Sq3ValueC_sq3.h.
Non-inline replacement for Sq3ValueVtabInFirst …
Find all elements on the right-hand side of an IN constraint …
read more at 'Sq3ValueVtabInFirst'
Definition at line 158 of file Sq3ValueC_sq3.h.
Non-inline replacement for Sq3ValueVtabInNext …