1.Dd January 24, 2024 2.Dt SQLITE_INDEX_CONSTRAINT_EQ 3 3.Os 4.Sh NAME 5.Nm SQLITE_INDEX_CONSTRAINT_EQ , 6.Nm SQLITE_INDEX_CONSTRAINT_GT , 7.Nm SQLITE_INDEX_CONSTRAINT_LE , 8.Nm SQLITE_INDEX_CONSTRAINT_LT , 9.Nm SQLITE_INDEX_CONSTRAINT_GE , 10.Nm SQLITE_INDEX_CONSTRAINT_MATCH , 11.Nm SQLITE_INDEX_CONSTRAINT_LIKE , 12.Nm SQLITE_INDEX_CONSTRAINT_GLOB , 13.Nm SQLITE_INDEX_CONSTRAINT_REGEXP , 14.Nm SQLITE_INDEX_CONSTRAINT_NE , 15.Nm SQLITE_INDEX_CONSTRAINT_ISNOT , 16.Nm SQLITE_INDEX_CONSTRAINT_ISNOTNULL , 17.Nm SQLITE_INDEX_CONSTRAINT_ISNULL , 18.Nm SQLITE_INDEX_CONSTRAINT_IS , 19.Nm SQLITE_INDEX_CONSTRAINT_LIMIT , 20.Nm SQLITE_INDEX_CONSTRAINT_OFFSET , 21.Nm SQLITE_INDEX_CONSTRAINT_FUNCTION 22.Nd virtual table constraint operator codes 23.Sh SYNOPSIS 24.In sqlite3.h 25.Fd #define SQLITE_INDEX_CONSTRAINT_EQ 26.Fd #define SQLITE_INDEX_CONSTRAINT_GT 27.Fd #define SQLITE_INDEX_CONSTRAINT_LE 28.Fd #define SQLITE_INDEX_CONSTRAINT_LT 29.Fd #define SQLITE_INDEX_CONSTRAINT_GE 30.Fd #define SQLITE_INDEX_CONSTRAINT_MATCH 31.Fd #define SQLITE_INDEX_CONSTRAINT_LIKE 32.Fd #define SQLITE_INDEX_CONSTRAINT_GLOB 33.Fd #define SQLITE_INDEX_CONSTRAINT_REGEXP 34.Fd #define SQLITE_INDEX_CONSTRAINT_NE 35.Fd #define SQLITE_INDEX_CONSTRAINT_ISNOT 36.Fd #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 37.Fd #define SQLITE_INDEX_CONSTRAINT_ISNULL 38.Fd #define SQLITE_INDEX_CONSTRAINT_IS 39.Fd #define SQLITE_INDEX_CONSTRAINT_LIMIT 40.Fd #define SQLITE_INDEX_CONSTRAINT_OFFSET 41.Fd #define SQLITE_INDEX_CONSTRAINT_FUNCTION 42.Sh DESCRIPTION 43These macros define the allowed values for the sqlite3_index_info.aConstraint[].op 44field. 45Each value represents an operator that is part of a constraint term 46in the WHERE clause of a query that uses a virtual table. 47.Pp 48The left-hand operand of the operator is given by the corresponding 49aConstraint[].iColumn field. 50An iColumn of -1 indicates the left-hand operand is the rowid. 51The SQLITE_INDEX_CONSTRAINT_LIMIT and SQLITE_INDEX_CONSTRAINT_OFFSET 52operators have no left-hand operand, and so for those operators the 53corresponding aConstraint[].iColumn is meaningless and should not be 54used. 55.Pp 56All operator values from SQLITE_INDEX_CONSTRAINT_FUNCTION through value 57255 are reserved to represent functions that are overloaded by the 58xFindFunction method of the virtual table implementation. 59.Pp 60The right-hand operands for each constraint might be accessible using 61the 62.Fn sqlite3_vtab_rhs_value 63interface. 64Usually the right-hand operand is only available if it appears as a 65single constant literal in the input SQL. 66If the right-hand operand is another column or an expression (even 67a constant expression) or a parameter, then the sqlite3_vtab_rhs_value() 68probably will not be able to extract it. 69The SQLITE_INDEX_CONSTRAINT_ISNULL and SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70operators have no right-hand operand and hence calls to sqlite3_vtab_rhs_value() 71for those operators will always return SQLITE_NOTFOUND. 72.Pp 73The collating sequence to be used for comparison can be found using 74the 75.Fn sqlite3_vtab_collation 76interface. 77For most real-world virtual tables, the collating sequence of constraints 78does not matter (for example because the constraints are numeric) and 79so the sqlite3_vtab_collation() interface is not commonly needed. 80.Sh IMPLEMENTATION NOTES 81These declarations were extracted from the 82interface documentation at line 7474. 83.Bd -literal 84#define SQLITE_INDEX_CONSTRAINT_EQ 2 85#define SQLITE_INDEX_CONSTRAINT_GT 4 86#define SQLITE_INDEX_CONSTRAINT_LE 8 87#define SQLITE_INDEX_CONSTRAINT_LT 16 88#define SQLITE_INDEX_CONSTRAINT_GE 32 89#define SQLITE_INDEX_CONSTRAINT_MATCH 64 90#define SQLITE_INDEX_CONSTRAINT_LIKE 65 91#define SQLITE_INDEX_CONSTRAINT_GLOB 66 92#define SQLITE_INDEX_CONSTRAINT_REGEXP 67 93#define SQLITE_INDEX_CONSTRAINT_NE 68 94#define SQLITE_INDEX_CONSTRAINT_ISNOT 69 95#define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 96#define SQLITE_INDEX_CONSTRAINT_ISNULL 71 97#define SQLITE_INDEX_CONSTRAINT_IS 72 98#define SQLITE_INDEX_CONSTRAINT_LIMIT 73 99#define SQLITE_INDEX_CONSTRAINT_OFFSET 74 100#define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 101.Ed 102.Sh SEE ALSO 103.Xr sqlite3_index_info 3 , 104.Xr sqlite3_vtab_collation 3 , 105.Xr sqlite3_vtab_rhs_value 3 106