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