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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
|
.Dd January 24, 2024
.Dt SQLITE_ERROR_MISSING_COLLSEQ 3
.Os
.Sh NAME
.Nm SQLITE_ERROR_MISSING_COLLSEQ ,
.Nm SQLITE_ERROR_RETRY ,
.Nm SQLITE_ERROR_SNAPSHOT ,
.Nm SQLITE_IOERR_READ ,
.Nm SQLITE_IOERR_SHORT_READ ,
.Nm SQLITE_IOERR_WRITE ,
.Nm SQLITE_IOERR_FSYNC ,
.Nm SQLITE_IOERR_DIR_FSYNC ,
.Nm SQLITE_IOERR_TRUNCATE ,
.Nm SQLITE_IOERR_FSTAT ,
.Nm SQLITE_IOERR_UNLOCK ,
.Nm SQLITE_IOERR_RDLOCK ,
.Nm SQLITE_IOERR_DELETE ,
.Nm SQLITE_IOERR_BLOCKED ,
.Nm SQLITE_IOERR_NOMEM ,
.Nm SQLITE_IOERR_ACCESS ,
.Nm SQLITE_IOERR_CHECKRESERVEDLOCK ,
.Nm SQLITE_IOERR_LOCK ,
.Nm SQLITE_IOERR_CLOSE ,
.Nm SQLITE_IOERR_DIR_CLOSE ,
.Nm SQLITE_IOERR_SHMOPEN ,
.Nm SQLITE_IOERR_SHMSIZE ,
.Nm SQLITE_IOERR_SHMLOCK ,
.Nm SQLITE_IOERR_SHMMAP ,
.Nm SQLITE_IOERR_SEEK ,
.Nm SQLITE_IOERR_DELETE_NOENT ,
.Nm SQLITE_IOERR_MMAP ,
.Nm SQLITE_IOERR_GETTEMPPATH ,
.Nm SQLITE_IOERR_CONVPATH ,
.Nm SQLITE_IOERR_VNODE ,
.Nm SQLITE_IOERR_AUTH ,
.Nm SQLITE_IOERR_BEGIN_ATOMIC ,
.Nm SQLITE_IOERR_COMMIT_ATOMIC ,
.Nm SQLITE_IOERR_ROLLBACK_ATOMIC ,
.Nm SQLITE_IOERR_DATA ,
.Nm SQLITE_IOERR_CORRUPTFS ,
.Nm SQLITE_IOERR_IN_PAGE ,
.Nm SQLITE_LOCKED_SHAREDCACHE ,
.Nm SQLITE_LOCKED_VTAB ,
.Nm SQLITE_BUSY_RECOVERY ,
.Nm SQLITE_BUSY_SNAPSHOT ,
.Nm SQLITE_BUSY_TIMEOUT ,
.Nm SQLITE_CANTOPEN_NOTEMPDIR ,
.Nm SQLITE_CANTOPEN_ISDIR ,
.Nm SQLITE_CANTOPEN_FULLPATH ,
.Nm SQLITE_CANTOPEN_CONVPATH ,
.Nm SQLITE_CANTOPEN_DIRTYWAL ,
.Nm SQLITE_CANTOPEN_SYMLINK ,
.Nm SQLITE_CORRUPT_VTAB ,
.Nm SQLITE_CORRUPT_SEQUENCE ,
.Nm SQLITE_CORRUPT_INDEX ,
.Nm SQLITE_READONLY_RECOVERY ,
.Nm SQLITE_READONLY_CANTLOCK ,
.Nm SQLITE_READONLY_ROLLBACK ,
.Nm SQLITE_READONLY_DBMOVED ,
.Nm SQLITE_READONLY_CANTINIT ,
.Nm SQLITE_READONLY_DIRECTORY ,
.Nm SQLITE_ABORT_ROLLBACK ,
.Nm SQLITE_CONSTRAINT_CHECK ,
.Nm SQLITE_CONSTRAINT_COMMITHOOK ,
.Nm SQLITE_CONSTRAINT_FOREIGNKEY ,
.Nm SQLITE_CONSTRAINT_FUNCTION ,
.Nm SQLITE_CONSTRAINT_NOTNULL ,
.Nm SQLITE_CONSTRAINT_PRIMARYKEY ,
.Nm SQLITE_CONSTRAINT_TRIGGER ,
.Nm SQLITE_CONSTRAINT_UNIQUE ,
.Nm SQLITE_CONSTRAINT_VTAB ,
.Nm SQLITE_CONSTRAINT_ROWID ,
.Nm SQLITE_CONSTRAINT_PINNED ,
.Nm SQLITE_CONSTRAINT_DATATYPE ,
.Nm SQLITE_NOTICE_RECOVER_WAL ,
.Nm SQLITE_NOTICE_RECOVER_ROLLBACK ,
.Nm SQLITE_NOTICE_RBU ,
.Nm SQLITE_WARNING_AUTOINDEX ,
.Nm SQLITE_AUTH_USER ,
.Nm SQLITE_OK_LOAD_PERMANENTLY ,
.Nm SQLITE_OK_SYMLINK
.Nd extended result codes
.Sh SYNOPSIS
.In sqlite3.h
.Fd #define SQLITE_ERROR_MISSING_COLLSEQ
.Fd #define SQLITE_ERROR_RETRY
.Fd #define SQLITE_ERROR_SNAPSHOT
.Fd #define SQLITE_IOERR_READ
.Fd #define SQLITE_IOERR_SHORT_READ
.Fd #define SQLITE_IOERR_WRITE
.Fd #define SQLITE_IOERR_FSYNC
.Fd #define SQLITE_IOERR_DIR_FSYNC
.Fd #define SQLITE_IOERR_TRUNCATE
.Fd #define SQLITE_IOERR_FSTAT
.Fd #define SQLITE_IOERR_UNLOCK
.Fd #define SQLITE_IOERR_RDLOCK
.Fd #define SQLITE_IOERR_DELETE
.Fd #define SQLITE_IOERR_BLOCKED
.Fd #define SQLITE_IOERR_NOMEM
.Fd #define SQLITE_IOERR_ACCESS
.Fd #define SQLITE_IOERR_CHECKRESERVEDLOCK
.Fd #define SQLITE_IOERR_LOCK
.Fd #define SQLITE_IOERR_CLOSE
.Fd #define SQLITE_IOERR_DIR_CLOSE
.Fd #define SQLITE_IOERR_SHMOPEN
.Fd #define SQLITE_IOERR_SHMSIZE
.Fd #define SQLITE_IOERR_SHMLOCK
.Fd #define SQLITE_IOERR_SHMMAP
.Fd #define SQLITE_IOERR_SEEK
.Fd #define SQLITE_IOERR_DELETE_NOENT
.Fd #define SQLITE_IOERR_MMAP
.Fd #define SQLITE_IOERR_GETTEMPPATH
.Fd #define SQLITE_IOERR_CONVPATH
.Fd #define SQLITE_IOERR_VNODE
.Fd #define SQLITE_IOERR_AUTH
.Fd #define SQLITE_IOERR_BEGIN_ATOMIC
.Fd #define SQLITE_IOERR_COMMIT_ATOMIC
.Fd #define SQLITE_IOERR_ROLLBACK_ATOMIC
.Fd #define SQLITE_IOERR_DATA
.Fd #define SQLITE_IOERR_CORRUPTFS
.Fd #define SQLITE_IOERR_IN_PAGE
.Fd #define SQLITE_LOCKED_SHAREDCACHE
.Fd #define SQLITE_LOCKED_VTAB
.Fd #define SQLITE_BUSY_RECOVERY
.Fd #define SQLITE_BUSY_SNAPSHOT
.Fd #define SQLITE_BUSY_TIMEOUT
.Fd #define SQLITE_CANTOPEN_NOTEMPDIR
.Fd #define SQLITE_CANTOPEN_ISDIR
.Fd #define SQLITE_CANTOPEN_FULLPATH
.Fd #define SQLITE_CANTOPEN_CONVPATH
.Fd #define SQLITE_CANTOPEN_DIRTYWAL
.Fd #define SQLITE_CANTOPEN_SYMLINK
.Fd #define SQLITE_CORRUPT_VTAB
.Fd #define SQLITE_CORRUPT_SEQUENCE
.Fd #define SQLITE_CORRUPT_INDEX
.Fd #define SQLITE_READONLY_RECOVERY
.Fd #define SQLITE_READONLY_CANTLOCK
.Fd #define SQLITE_READONLY_ROLLBACK
.Fd #define SQLITE_READONLY_DBMOVED
.Fd #define SQLITE_READONLY_CANTINIT
.Fd #define SQLITE_READONLY_DIRECTORY
.Fd #define SQLITE_ABORT_ROLLBACK
.Fd #define SQLITE_CONSTRAINT_CHECK
.Fd #define SQLITE_CONSTRAINT_COMMITHOOK
.Fd #define SQLITE_CONSTRAINT_FOREIGNKEY
.Fd #define SQLITE_CONSTRAINT_FUNCTION
.Fd #define SQLITE_CONSTRAINT_NOTNULL
.Fd #define SQLITE_CONSTRAINT_PRIMARYKEY
.Fd #define SQLITE_CONSTRAINT_TRIGGER
.Fd #define SQLITE_CONSTRAINT_UNIQUE
.Fd #define SQLITE_CONSTRAINT_VTAB
.Fd #define SQLITE_CONSTRAINT_ROWID
.Fd #define SQLITE_CONSTRAINT_PINNED
.Fd #define SQLITE_CONSTRAINT_DATATYPE
.Fd #define SQLITE_NOTICE_RECOVER_WAL
.Fd #define SQLITE_NOTICE_RECOVER_ROLLBACK
.Fd #define SQLITE_NOTICE_RBU
.Fd #define SQLITE_WARNING_AUTOINDEX
.Fd #define SQLITE_AUTH_USER
.Fd #define SQLITE_OK_LOAD_PERMANENTLY
.Fd #define SQLITE_OK_SYMLINK
.Sh DESCRIPTION
In its default configuration, SQLite API routines return one of 30
integer result codes.
However, experience has shown that many of these result codes are too
coarse-grained.
They do not provide as much information about problems as programmers
might like.
In an effort to address this, newer versions of SQLite (version 3.3.8
dateof:3.3.8 and later) include support for additional
result codes that provide more detailed information about errors.
These extended result codes are enabled or disabled
on a per database connection basis using the
.Fn sqlite3_extended_result_codes
API.
Or, the extended code for the most recent error can be obtained using
.Fn sqlite3_extended_errcode .
.Sh IMPLEMENTATION NOTES
These declarations were extracted from the
interface documentation at line 479.
.Bd -literal
#define SQLITE_ERROR_MISSING_COLLSEQ (SQLITE_ERROR | (1<<8))
#define SQLITE_ERROR_RETRY (SQLITE_ERROR | (2<<8))
#define SQLITE_ERROR_SNAPSHOT (SQLITE_ERROR | (3<<8))
#define SQLITE_IOERR_READ (SQLITE_IOERR | (1<<8))
#define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8))
#define SQLITE_IOERR_WRITE (SQLITE_IOERR | (3<<8))
#define SQLITE_IOERR_FSYNC (SQLITE_IOERR | (4<<8))
#define SQLITE_IOERR_DIR_FSYNC (SQLITE_IOERR | (5<<8))
#define SQLITE_IOERR_TRUNCATE (SQLITE_IOERR | (6<<8))
#define SQLITE_IOERR_FSTAT (SQLITE_IOERR | (7<<8))
#define SQLITE_IOERR_UNLOCK (SQLITE_IOERR | (8<<8))
#define SQLITE_IOERR_RDLOCK (SQLITE_IOERR | (9<<8))
#define SQLITE_IOERR_DELETE (SQLITE_IOERR | (10<<8))
#define SQLITE_IOERR_BLOCKED (SQLITE_IOERR | (11<<8))
#define SQLITE_IOERR_NOMEM (SQLITE_IOERR | (12<<8))
#define SQLITE_IOERR_ACCESS (SQLITE_IOERR | (13<<8))
#define SQLITE_IOERR_CHECKRESERVEDLOCK (SQLITE_IOERR | (14<<8))
#define SQLITE_IOERR_LOCK (SQLITE_IOERR | (15<<8))
#define SQLITE_IOERR_CLOSE (SQLITE_IOERR | (16<<8))
#define SQLITE_IOERR_DIR_CLOSE (SQLITE_IOERR | (17<<8))
#define SQLITE_IOERR_SHMOPEN (SQLITE_IOERR | (18<<8))
#define SQLITE_IOERR_SHMSIZE (SQLITE_IOERR | (19<<8))
#define SQLITE_IOERR_SHMLOCK (SQLITE_IOERR | (20<<8))
#define SQLITE_IOERR_SHMMAP (SQLITE_IOERR | (21<<8))
#define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
#define SQLITE_IOERR_DELETE_NOENT (SQLITE_IOERR | (23<<8))
#define SQLITE_IOERR_MMAP (SQLITE_IOERR | (24<<8))
#define SQLITE_IOERR_GETTEMPPATH (SQLITE_IOERR | (25<<8))
#define SQLITE_IOERR_CONVPATH (SQLITE_IOERR | (26<<8))
#define SQLITE_IOERR_VNODE (SQLITE_IOERR | (27<<8))
#define SQLITE_IOERR_AUTH (SQLITE_IOERR | (28<<8))
#define SQLITE_IOERR_BEGIN_ATOMIC (SQLITE_IOERR | (29<<8))
#define SQLITE_IOERR_COMMIT_ATOMIC (SQLITE_IOERR | (30<<8))
#define SQLITE_IOERR_ROLLBACK_ATOMIC (SQLITE_IOERR | (31<<8))
#define SQLITE_IOERR_DATA (SQLITE_IOERR | (32<<8))
#define SQLITE_IOERR_CORRUPTFS (SQLITE_IOERR | (33<<8))
#define SQLITE_IOERR_IN_PAGE (SQLITE_IOERR | (34<<8))
#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
#define SQLITE_LOCKED_VTAB (SQLITE_LOCKED | (2<<8))
#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
#define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8))
#define SQLITE_BUSY_TIMEOUT (SQLITE_BUSY | (3<<8))
#define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8))
#define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8))
#define SQLITE_CANTOPEN_FULLPATH (SQLITE_CANTOPEN | (3<<8))
#define SQLITE_CANTOPEN_CONVPATH (SQLITE_CANTOPEN | (4<<8))
#define SQLITE_CANTOPEN_DIRTYWAL (SQLITE_CANTOPEN | (5<<8)) /* Not Used */
#define SQLITE_CANTOPEN_SYMLINK (SQLITE_CANTOPEN | (6<<8))
#define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8))
#define SQLITE_CORRUPT_SEQUENCE (SQLITE_CORRUPT | (2<<8))
#define SQLITE_CORRUPT_INDEX (SQLITE_CORRUPT | (3<<8))
#define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8))
#define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8))
#define SQLITE_READONLY_ROLLBACK (SQLITE_READONLY | (3<<8))
#define SQLITE_READONLY_DBMOVED (SQLITE_READONLY | (4<<8))
#define SQLITE_READONLY_CANTINIT (SQLITE_READONLY | (5<<8))
#define SQLITE_READONLY_DIRECTORY (SQLITE_READONLY | (6<<8))
#define SQLITE_ABORT_ROLLBACK (SQLITE_ABORT | (2<<8))
#define SQLITE_CONSTRAINT_CHECK (SQLITE_CONSTRAINT | (1<<8))
#define SQLITE_CONSTRAINT_COMMITHOOK (SQLITE_CONSTRAINT | (2<<8))
#define SQLITE_CONSTRAINT_FOREIGNKEY (SQLITE_CONSTRAINT | (3<<8))
#define SQLITE_CONSTRAINT_FUNCTION (SQLITE_CONSTRAINT | (4<<8))
#define SQLITE_CONSTRAINT_NOTNULL (SQLITE_CONSTRAINT | (5<<8))
#define SQLITE_CONSTRAINT_PRIMARYKEY (SQLITE_CONSTRAINT | (6<<8))
#define SQLITE_CONSTRAINT_TRIGGER (SQLITE_CONSTRAINT | (7<<8))
#define SQLITE_CONSTRAINT_UNIQUE (SQLITE_CONSTRAINT | (8<<8))
#define SQLITE_CONSTRAINT_VTAB (SQLITE_CONSTRAINT | (9<<8))
#define SQLITE_CONSTRAINT_ROWID (SQLITE_CONSTRAINT |(10<<8))
#define SQLITE_CONSTRAINT_PINNED (SQLITE_CONSTRAINT |(11<<8))
#define SQLITE_CONSTRAINT_DATATYPE (SQLITE_CONSTRAINT |(12<<8))
#define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8))
#define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8))
#define SQLITE_NOTICE_RBU (SQLITE_NOTICE | (3<<8))
#define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8))
#define SQLITE_AUTH_USER (SQLITE_AUTH | (1<<8))
#define SQLITE_OK_LOAD_PERMANENTLY (SQLITE_OK | (1<<8))
#define SQLITE_OK_SYMLINK (SQLITE_OK | (2<<8)) /* internal use only */
.Ed
.Sh SEE ALSO
.Xr sqlite3_errcode 3 ,
.Xr sqlite3_extended_result_codes 3
|