github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/mattn/go-sqlite3/error.go (about) 1 // Copyright (C) 2014 Yasuhiro Matsumoto <mattn.jp@gmail.com>. 2 // 3 // Use of this source code is governed by an MIT-style 4 // license that can be found in the LICENSE file. 5 6 package sqlite3 7 8 import "C" 9 10 type ErrNo int 11 12 const ErrNoMask C.int = 0xff 13 14 type ErrNoExtended int 15 16 type Error struct { 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. */ 21 } 22 23 // result codes from http://www.sqlite.org/c3ref/c_abort.html 24 var ( 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() */ 53 ) 54 55 func (err ErrNo) Error() string { 56 return Error{Code: err}.Error() 57 } 58 59 func (err ErrNo) Extend(by int) ErrNoExtended { 60 return ErrNoExtended(int(err) | (by << 8)) 61 } 62 63 func (err ErrNoExtended) Error() string { 64 return Error{Code: ErrNo(C.int(err) & ErrNoMask), ExtendedCode: err}.Error() 65 } 66 67 func (err Error) Error() string { 68 if err.err != "" { 69 return err.err 70 } 71 return errorString(err) 72 } 73 74 // result codes from http://www.sqlite.org/c3ref/c_abort_rollback.html 75 var ( 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) 128 )