1 // Copyright (C) 2014 Yasuhiro Matsumoto <mattn.jp@gmail.com>.
3 // Use of this source code is governed by an MIT-style
4 // license that can be found in the LICENSE file.
12 const ErrNoMask C.int = 0xff
14 type ErrNoExtended int
17 Code ErrNo /* The error code returned by SQLite */
18 ExtendedCode ErrNoExtended /* The extended error code returned by SQLite */
19 err string /* The error string returned by sqlite3_errmsg(),
20 this usually contains more specific details. */
23 // result codes from http://www.sqlite.org/c3ref/c_abort.html
25 ErrError = ErrNo(1) /* SQL error or missing database */
26 ErrInternal = ErrNo(2) /* Internal logic error in SQLite */
27 ErrPerm = ErrNo(3) /* Access permission denied */
28 ErrAbort = ErrNo(4) /* Callback routine requested an abort */
29 ErrBusy = ErrNo(5) /* The database file is locked */
30 ErrLocked = ErrNo(6) /* A table in the database is locked */
31 ErrNomem = ErrNo(7) /* A malloc() failed */
32 ErrReadonly = ErrNo(8) /* Attempt to write a readonly database */
33 ErrInterrupt = ErrNo(9) /* Operation terminated by sqlite3_interrupt() */
34 ErrIoErr = ErrNo(10) /* Some kind of disk I/O error occurred */
35 ErrCorrupt = ErrNo(11) /* The database disk image is malformed */
36 ErrNotFound = ErrNo(12) /* Unknown opcode in sqlite3_file_control() */
37 ErrFull = ErrNo(13) /* Insertion failed because database is full */
38 ErrCantOpen = ErrNo(14) /* Unable to open the database file */
39 ErrProtocol = ErrNo(15) /* Database lock protocol error */
40 ErrEmpty = ErrNo(16) /* Database is empty */
41 ErrSchema = ErrNo(17) /* The database schema changed */
42 ErrTooBig = ErrNo(18) /* String or BLOB exceeds size limit */
43 ErrConstraint = ErrNo(19) /* Abort due to constraint violation */
44 ErrMismatch = ErrNo(20) /* Data type mismatch */
45 ErrMisuse = ErrNo(21) /* Library used incorrectly */
46 ErrNoLFS = ErrNo(22) /* Uses OS features not supported on host */
47 ErrAuth = ErrNo(23) /* Authorization denied */
48 ErrFormat = ErrNo(24) /* Auxiliary database format error */
49 ErrRange = ErrNo(25) /* 2nd parameter to sqlite3_bind out of range */
50 ErrNotADB = ErrNo(26) /* File opened that is not a database file */
51 ErrNotice = ErrNo(27) /* Notifications from sqlite3_log() */
52 ErrWarning = ErrNo(28) /* Warnings from sqlite3_log() */
55 func (err ErrNo) Error() string {
56 return Error{Code: err}.Error()
59 func (err ErrNo) Extend(by int) ErrNoExtended {
60 return ErrNoExtended(int(err) | (by << 8))
63 func (err ErrNoExtended) Error() string {
64 return Error{Code: ErrNo(C.int(err) & ErrNoMask), ExtendedCode: err}.Error()
67 func (err Error) Error() string {
71 return errorString(err)
74 // result codes from http://www.sqlite.org/c3ref/c_abort_rollback.html
76 ErrIoErrRead = ErrIoErr.Extend(1)
77 ErrIoErrShortRead = ErrIoErr.Extend(2)
78 ErrIoErrWrite = ErrIoErr.Extend(3)
79 ErrIoErrFsync = ErrIoErr.Extend(4)
80 ErrIoErrDirFsync = ErrIoErr.Extend(5)
81 ErrIoErrTruncate = ErrIoErr.Extend(6)
82 ErrIoErrFstat = ErrIoErr.Extend(7)
83 ErrIoErrUnlock = ErrIoErr.Extend(8)
84 ErrIoErrRDlock = ErrIoErr.Extend(9)
85 ErrIoErrDelete = ErrIoErr.Extend(10)
86 ErrIoErrBlocked = ErrIoErr.Extend(11)
87 ErrIoErrNoMem = ErrIoErr.Extend(12)
88 ErrIoErrAccess = ErrIoErr.Extend(13)
89 ErrIoErrCheckReservedLock = ErrIoErr.Extend(14)
90 ErrIoErrLock = ErrIoErr.Extend(15)
91 ErrIoErrClose = ErrIoErr.Extend(16)
92 ErrIoErrDirClose = ErrIoErr.Extend(17)
93 ErrIoErrSHMOpen = ErrIoErr.Extend(18)
94 ErrIoErrSHMSize = ErrIoErr.Extend(19)
95 ErrIoErrSHMLock = ErrIoErr.Extend(20)
96 ErrIoErrSHMMap = ErrIoErr.Extend(21)
97 ErrIoErrSeek = ErrIoErr.Extend(22)
98 ErrIoErrDeleteNoent = ErrIoErr.Extend(23)
99 ErrIoErrMMap = ErrIoErr.Extend(24)
100 ErrIoErrGetTempPath = ErrIoErr.Extend(25)
101 ErrIoErrConvPath = ErrIoErr.Extend(26)
102 ErrLockedSharedCache = ErrLocked.Extend(1)
103 ErrBusyRecovery = ErrBusy.Extend(1)
104 ErrBusySnapshot = ErrBusy.Extend(2)
105 ErrCantOpenNoTempDir = ErrCantOpen.Extend(1)
106 ErrCantOpenIsDir = ErrCantOpen.Extend(2)
107 ErrCantOpenFullPath = ErrCantOpen.Extend(3)
108 ErrCantOpenConvPath = ErrCantOpen.Extend(4)
109 ErrCorruptVTab = ErrCorrupt.Extend(1)
110 ErrReadonlyRecovery = ErrReadonly.Extend(1)
111 ErrReadonlyCantLock = ErrReadonly.Extend(2)
112 ErrReadonlyRollback = ErrReadonly.Extend(3)
113 ErrReadonlyDbMoved = ErrReadonly.Extend(4)
114 ErrAbortRollback = ErrAbort.Extend(2)
115 ErrConstraintCheck = ErrConstraint.Extend(1)
116 ErrConstraintCommitHook = ErrConstraint.Extend(2)
117 ErrConstraintForeignKey = ErrConstraint.Extend(3)
118 ErrConstraintFunction = ErrConstraint.Extend(4)
119 ErrConstraintNotNull = ErrConstraint.Extend(5)
120 ErrConstraintPrimaryKey = ErrConstraint.Extend(6)
121 ErrConstraintTrigger = ErrConstraint.Extend(7)
122 ErrConstraintUnique = ErrConstraint.Extend(8)
123 ErrConstraintVTab = ErrConstraint.Extend(9)
124 ErrConstraintRowId = ErrConstraint.Extend(10)
125 ErrNoticeRecoverWAL = ErrNotice.Extend(1)
126 ErrNoticeRecoverRollback = ErrNotice.Extend(2)
127 ErrWarningAutoIndex = ErrWarning.Extend(1)