// Copyright 2022 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SQL_SQLITE_RESULT_CODE_VALUES_H_ #define SQL_SQLITE_RESULT_CODE_VALUES_H_ namespace sql { enum class SqliteResultCode : int { // See sqlite_result_code.h for a description of SqliteResultCode and // functions that create and consume it. // // The meaning of the codes is listed at https://www.sqlite.org/rescode.html // // Numerical enums are used here directly to avoid exposing sqlite3.h. // The .cc file has static_asserts ensuring the the enums match. // Lines are ordered by the numerical constant values. kOk = 0, // SQLITE_OK kError = 1, // SQLITE_ERROR kInternal = 2, // SQLITE_INTERNAL kPermission = 3, // SQLITE_PERM kAbort = 4, // SQLITE_ABORT kBusy = 5, // SQLITE_BUSY kLocked = 6, // SQLITE_LOCKED kNoMemory = 7, // SQLITE_NOMEM kReadOnly = 8, // SQLITE_READONLY kInterrupt = 9, // SQLITE_INTERRUPT kIo = 10, // SQLITE_IOERR kCorrupt = 11, // SQLITE_CORRUPT kNotFound = 12, // SQLITE_NOTFOUND kFullDisk = 13, // SQLITE_FULL kCantOpen = 14, // SQLITE_CANTOPEN kLockingProtocol = 15, // SQLITE_PROTOCOL kEmpty = 16, // SQLITE_EMPTY kSchemaChanged = 17, // SQLITE_SCHEMA kTooBig = 18, // SQLITE_TOOBIG kConstraint = 19, // SQLITE_CONSTRAINT kTypeMismatch = 20, // SQLITE_MISMATCH kApiMisuse = 21, // SQLITE_MISUSE kNoLargeFileSupport = 22, // SQLITE_NOLFS kUnauthorized = 23, // SQLITE_AUTH kFormat = 24, // SQLITE_FORMAT kIndexRange = 25, // SQLITE_RANGE kNotADatabase = 26, // SQLITE_NOTADB kLoggingNotice = 27, // SQLITE_NOTICE kLoggingWarning = 28, // SQLITE_WARNING kRow = 100, // SQLITE_ROW kDone = 101, // SQLITE_DONE kLoadPermanently = 256, // SQLITE_OK_LOAD_PERMANENTLY kMissingCollatingSequence = 257, // SQLITE_ERROR_MISSING_COLLSEQ kBusyRecovery = 261, // SQLITE_BUSY_RECOVERY kLockedSharedCache = 262, // SQLITE_LOCKED_SHAREDCACHE kReadOnlyRecovery = 264, // SQLITE_READONLY_RECOVERY kIoRead = 266, // SQLITE_IOERR_READ kCorruptVirtualTable = 267, // SQLITE_CORRUPT_VTAB kCantOpenNoTemporaryDirectory = 270, // SQLITE_CANTOPEN_NOTEMPDIR kConstraintCheck = 275, // SQLITE_CONSTRAINT_CHECK kUnauthorizedUser = 279, // SQLITE_AUTH_USER kLoggingNoticeRecoverWal = 283, // SQLITE_NOTICE_RECOVER_WAL kLoggingWarningAutoIndex = 284, // SQLITE_WARNING_AUTOINDEX kRetryPreparedStatement = 513, // SQLITE_ERROR_RETRY kAbortRollback = 516, // SQLITE_ABORT_ROLLBACK kBusySnapshot = 517, // SQLITE_BUSY_SNAPSHOT kLockedVirtualTable = 518, // SQLITE_LOCKED_VTAB kReadOnlyCantLock = 520, // SQLITE_READONLY_CANTLOCK kIoShortRead = 522, // SQLITE_IOERR_SHORT_READ kCorruptSequence = 523, // SQLITE_CORRUPT_SEQUENCE kCantOpenIsDir = 526, // SQLITE_CANTOPEN_ISDIR kConstraintCommitHook = 531, // SQLITE_CONSTRAINT_COMMITHOOK kLoggingNoticeRecoverRollback = 539, // SQLITE_NOTICE_RECOVER_ROLLBACK kErrorSnapshot = 769, // SQLITE_ERROR_SNAPSHOT kBusyTimeout = 773, // SQLITE_BUSY_TIMEOUT kReadOnlyRollback = 776, // SQLITE_READONLY_ROLLBACK kIoWrite = 778, // SQLITE_IOERR_WRITE kCorruptIndex = 779, // SQLITE_CORRUPT_INDEX kCantOpenFullPath = 782, // SQLITE_CANTOPEN_FULLPATH kConstraintForeignKey = 787, // SQLITE_CONSTRAINT_FOREIGNKEY kReadOnlyDbMoved = 1032, // SQLITE_READONLY_DBMOVED kIoFsync = 1034, // SQLITE_IOERR_FSYNC kCantOpenConvertPath = 1038, // SQLITE_CANTOPEN_CONVPATH kConstraintFunction = 1043, // SQLITE_CONSTRAINT_FUNCTION kReadOnlyCantInit = 1288, // SQLITE_READONLY_CANTINIT kIoDirFsync = 1290, // SQLITE_IOERR_DIR_FSYNC kCantOpenDirtyWal = 1294, // SQLITE_CANTOPEN_DIRTYWAL kConstraintNotNull = 1299, // SQLITE_CONSTRAINT_NOTNULL kReadOnlyDirectory = 1544, // SQLITE_READONLY_DIRECTORY kIoTruncate = 1546, // SQLITE_IOERR_TRUNCATE kCantOpenSymlink = 1550, // SQLITE_CANTOPEN_SYMLINK kConstraintPrimaryKey = 1555, // SQLITE_CONSTRAINT_PRIMARYKEY kIoFstat = 1802, // SQLITE_IOERR_FSTAT kConstraintTrigger = 1811, // SQLITE_CONSTRAINT_TRIGGER kIoUnlock = 2058, // SQLITE_IOERR_UNLOCK kConstraintUnique = 2067, // SQLITE_CONSTRAINT_UNIQUE kIoReadLock = 2314, // SQLITE_IOERR_RDLOCK kConstraintVirtualTable = 2323, // SQLITE_CONSTRAINT_VTAB kIoDelete = 2570, // SQLITE_IOERR_DELETE kConstraintRowId = 2579, // SQLITE_CONSTRAINT_ROWID kIoBlocked = 2826, // SQLITE_IOERR_BLOCKED kConstraintPinned = 2835, // SQLITE_CONSTRAINT_PINNED kIoNoMemory = 3082, // SQLITE_IOERR_NOMEM kConstraintDataType = 3091, // SQLITE_CONSTRAINT_DATATYPE kIoAccess = 3338, // SQLITE_IOERR_ACCESS kIoCheckReservedLock = 3594, // SQLITE_IOERR_CHECKRESERVEDLOCK kIoLock = 3850, // SQLITE_IOERR_LOCK kIoClose = 4106, // SQLITE_IOERR_CLOSE kIoDirClose = 4362, // SQLITE_IOERR_DIR_CLOSE kIoSharedMemoryOpen = 4618, // SQLITE_IOERR_SHMOPEN kIoSharedMemorySize = 4874, // SQLITE_IOERR_SHMSIZE kIoSharedMemoryLock = 5130, // SQLITE_IOERR_SHMLOCK kIoSharedMemoryMap = 5386, // SQLITE_IOERR_SHMMAP kIoSeek = 5642, // SQLITE_IOERR_SEEK kIoDeleteNoEntry = 5898, // SQLITE_IOERR_DELETE_NOENT kIoMemoryMapping = 6154, // SQLITE_IOERR_MMAP kIoGetTemporaryPath = 6410, // SQLITE_IOERR_GETTEMPPATH kIoConvertPath = 6666, // SQLITE_IOERR_CONVPATH kIoVfsNode = 6922, // SQLITE_IOERR_VNODE kIoUnauthorized = 7178, // SQLITE_IOERR_AUTH kIoBeginAtomic = 7434, // SQLITE_IOERR_BEGIN_ATOMIC kIoCommitAtomic = 7690, // SQLITE_IOERR_COMMIT_ATOMIC kIoRollbackAtomic = 7946, // SQLITE_IOERR_ROLLBACK_ATOMIC kIoData = 8202, // SQLITE_IOERR_DATA kIoCorruptFileSystem = 8458, // SQLITE_IOERR_CORRUPTFS }; enum class SqliteErrorCode : int { // See sqlite_result_code.h for a description of SqliteErrorCode and functions // that create and consume it. // // The values here are a subset of SqliteResultCode values. // When adding new values, match the ordering in SqliteResultCode. kError = static_cast(SqliteResultCode::kError), kInternal = static_cast(SqliteResultCode::kInternal), kPermission = static_cast(SqliteResultCode::kPermission), kAbort = static_cast(SqliteResultCode::kAbort), kBusy = static_cast(SqliteResultCode::kBusy), kLocked = static_cast(SqliteResultCode::kLocked), kNoMemory = static_cast(SqliteResultCode::kNoMemory), kReadOnly = static_cast(SqliteResultCode::kReadOnly), kInterrupt = static_cast(SqliteResultCode::kInterrupt), kIo = static_cast(SqliteResultCode::kIo), kCorrupt = static_cast(SqliteResultCode::kCorrupt), kNotFound = static_cast(SqliteResultCode::kNotFound), kFullDisk = static_cast(SqliteResultCode::kFullDisk), kCantOpen = static_cast(SqliteResultCode::kCantOpen), kLockingProtocol = static_cast(SqliteResultCode::kLockingProtocol), kEmpty = static_cast(SqliteResultCode::kEmpty), kSchemaChanged = static_cast(SqliteResultCode::kSchemaChanged), kTooBig = static_cast(SqliteResultCode::kTooBig), kConstraint = static_cast(SqliteResultCode::kConstraint), kTypeMismatch = static_cast(SqliteResultCode::kTypeMismatch), kApiMisuse = static_cast(SqliteResultCode::kApiMisuse), kNoLargeFileSupport = static_cast(SqliteResultCode::kNoLargeFileSupport), kUnauthorized = static_cast(SqliteResultCode::kUnauthorized), kFormat = static_cast(SqliteResultCode::kFormat), kIndexRange = static_cast(SqliteResultCode::kIndexRange), kNotADatabase = static_cast(SqliteResultCode::kNotADatabase), kLoggingNotice = static_cast(SqliteResultCode::kLoggingNotice), kLoggingWarning = static_cast(SqliteResultCode::kLoggingWarning), kLoadPermanently = static_cast(SqliteResultCode::kLoadPermanently), kMissingCollatingSequence = static_cast(SqliteResultCode::kMissingCollatingSequence), kBusyRecovery = static_cast(SqliteResultCode::kBusyRecovery), kLockedSharedCache = static_cast(SqliteResultCode::kLockedSharedCache), kReadOnlyRecovery = static_cast(SqliteResultCode::kReadOnlyRecovery), kIoRead = static_cast(SqliteResultCode::kIoRead), kCorruptVirtualTable = static_cast(SqliteResultCode::kCorruptVirtualTable), kCantOpenNoTemporaryDirectory = static_cast(SqliteResultCode::kCantOpenNoTemporaryDirectory), kConstraintCheck = static_cast(SqliteResultCode::kConstraintCheck), kUnauthorizedUser = static_cast(SqliteResultCode::kUnauthorizedUser), kLoggingNoticeRecoverWal = static_cast(SqliteResultCode::kLoggingNoticeRecoverWal), kLoggingWarningAutoIndex = static_cast(SqliteResultCode::kLoggingWarningAutoIndex), kRetryPreparedStatement = static_cast(SqliteResultCode::kRetryPreparedStatement), kAbortRollback = static_cast(SqliteResultCode::kAbortRollback), kBusySnapshot = static_cast(SqliteResultCode::kBusySnapshot), kLockedVirtualTable = static_cast(SqliteResultCode::kLockedVirtualTable), kReadOnlyCantLock = static_cast(SqliteResultCode::kReadOnlyCantLock), kIoShortRead = static_cast(SqliteResultCode::kIoShortRead), kCorruptSequence = static_cast(SqliteResultCode::kCorruptSequence), kCantOpenIsDir = static_cast(SqliteResultCode::kCantOpenIsDir), kConstraintCommitHook = static_cast(SqliteResultCode::kConstraintCommitHook), kLoggingNoticeRecoverRollback = static_cast(SqliteResultCode::kLoggingNoticeRecoverRollback), kErrorSnapshot = static_cast(SqliteResultCode::kErrorSnapshot), kBusyTimeout = static_cast(SqliteResultCode::kBusyTimeout), kReadOnlyRollback = static_cast(SqliteResultCode::kReadOnlyRollback), kIoWrite = static_cast(SqliteResultCode::kIoWrite), kCorruptIndex = static_cast(SqliteResultCode::kCorruptIndex), kCantOpenFullPath = static_cast(SqliteResultCode::kCantOpenFullPath), kConstraintForeignKey = static_cast(SqliteResultCode::kConstraintForeignKey), kReadOnlyDbMoved = static_cast(SqliteResultCode::kReadOnlyDbMoved), kIoFsync = static_cast(SqliteResultCode::kIoFsync), kCantOpenConvertPath = static_cast(SqliteResultCode::kCantOpenConvertPath), kConstraintFunction = static_cast(SqliteResultCode::kConstraintFunction), kReadOnlyCantInit = static_cast(SqliteResultCode::kReadOnlyCantInit), kIoDirFsync = static_cast(SqliteResultCode::kIoDirFsync), kCantOpenDirtyWal = static_cast(SqliteResultCode::kCantOpenDirtyWal), kConstraintNotNull = static_cast(SqliteResultCode::kConstraintNotNull), kReadOnlyDirectory = static_cast(SqliteResultCode::kReadOnlyDirectory), kIoTruncate = static_cast(SqliteResultCode::kIoTruncate), kCantOpenSymlink = static_cast(SqliteResultCode::kCantOpenSymlink), kConstraintPrimaryKey = static_cast(SqliteResultCode::kConstraintPrimaryKey), kIoFstat = static_cast(SqliteResultCode::kIoFstat), kConstraintTrigger = static_cast(SqliteResultCode::kConstraintTrigger), kIoUnlock = static_cast(SqliteResultCode::kIoUnlock), kConstraintUnique = static_cast(SqliteResultCode::kConstraintUnique), kIoReadLock = static_cast(SqliteResultCode::kIoReadLock), kConstraintVirtualTable = static_cast(SqliteResultCode::kConstraintVirtualTable), kIoDelete = static_cast(SqliteResultCode::kIoDelete), kConstraintRowId = static_cast(SqliteResultCode::kConstraintRowId), kIoBlocked = static_cast(SqliteResultCode::kIoBlocked), kConstraintPinned = static_cast(SqliteResultCode::kConstraintPinned), kIoNoMemory = static_cast(SqliteResultCode::kIoNoMemory), kConstraintDataType = static_cast(SqliteResultCode::kConstraintDataType), kIoAccess = static_cast(SqliteResultCode::kIoAccess), kIoCheckReservedLock = static_cast(SqliteResultCode::kIoCheckReservedLock), kIoLock = static_cast(SqliteResultCode::kIoLock), kIoClose = static_cast(SqliteResultCode::kIoClose), kIoDirClose = static_cast(SqliteResultCode::kIoDirClose), kIoSharedMemoryOpen = static_cast(SqliteResultCode::kIoSharedMemoryOpen), kIoSharedMemorySize = static_cast(SqliteResultCode::kIoSharedMemorySize), kIoSharedMemoryLock = static_cast(SqliteResultCode::kIoSharedMemoryLock), kIoSharedMemoryMap = static_cast(SqliteResultCode::kIoSharedMemoryMap), kIoSeek = static_cast(SqliteResultCode::kIoSeek), kIoDeleteNoEntry = static_cast(SqliteResultCode::kIoDeleteNoEntry), kIoMemoryMapping = static_cast(SqliteResultCode::kIoMemoryMapping), kIoGetTemporaryPath = static_cast(SqliteResultCode::kIoGetTemporaryPath), kIoConvertPath = static_cast(SqliteResultCode::kIoConvertPath), kIoVfsNode = static_cast(SqliteResultCode::kIoVfsNode), kIoUnauthorized = static_cast(SqliteResultCode::kIoUnauthorized), kIoBeginAtomic = static_cast(SqliteResultCode::kIoBeginAtomic), kIoCommitAtomic = static_cast(SqliteResultCode::kIoCommitAtomic), kIoRollbackAtomic = static_cast(SqliteResultCode::kIoRollbackAtomic), kIoData = static_cast(SqliteResultCode::kIoData), kIoCorruptFileSystem = static_cast(SqliteResultCode::kIoCorruptFileSystem), }; enum class SqliteLoggedResultCode : int { // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // A success code: OK, DONE, ROW. kNoError = 0, // Codes that SQLite APIs should never return, such as SQLITE_INTERNAL. kUnusedSqlite = 1, // Codes that SQLite APIs should never return, given Chrome's usage pattern. kUnusedChrome = 2, // SQLITE_ERROR kGeneric = 3, // SQLITE_PERM kPermission = 4, // SQLITE_ABORT kAbort = 5, // SQLITE_BUSY kBusy = 6, // SQLITE_READONLY kReadOnly = 7, // SQLITE_IOERR kIo = 8, // SQLITE_CORRUPT kCorrupt = 9, // SQLITE_FULL kFullDisk = 10, // SQLITE_CANTOPEN kCantOpen = 11, // SQLITE_PROTOCOL kLockingProtocol = 12, // SQLITE_SCHEMA kSchemaChanged = 13, // SQLITE_TOOBIG kTooBig = 14, // SQLITE_CONSTRAINT kConstraint = 15, // SQLITE_MISMATCH kTypeMismatch = 16, // SQLITE_NOLFS kNoLargeFileSupport = 17, // SQLITE_NOTADB kNotADatabase = 18, // SQLITE_BUSY_RECOVERY kBusyRecovery = 19, // SQLITE_READONLY_RECOVERY kReadOnlyRecovery = 20, // SQLITE_IOERR_READ kIoRead = 21, // SQLITE_CONSTRAINT_CHECK kConstraintCheck = 22, // SQLITE_ABORT_ROLLBACK kAbortRollback = 23, // SQLITE_BUSY_SNAPSHOT kBusySnapshot = 24, // SQLITE_READONLY_CANTLOCK kReadOnlyCantLock = 25, // SQLITE_IOERR_SHORT_READ kIoShortRead = 26, // SQLITE_CORRUPT_SEQUENCE kCorruptSequence = 27, // SQLITE_CANTOPEN_ISDIR kCantOpenIsDir = 28, // SQLITE_READONLY_ROLLBACK kReadOnlyRollback = 29, // SQLITE_IOERR_WRITE kIoWrite = 30, // SQLITE_CORRUPT_INDEX kCorruptIndex = 31, // SQLITE_CONSTRAINT_FOREIGN_KEY kConstraintForeignKey = 32, // SQLITE_READONLY_DBMOVED kReadOnlyDbMoved = 33, // SQLITE_IOERR_FSYNC kIoFsync = 34, // SQLITE_IOERR_DIR_FSYNC kIoDirFsync = 35, // SQLITE_CONSTRAINT_NOTNULL kConstraintNotNull = 36, // SQLITE_READONLY_DIRECTORY kReadOnlyDirectory = 37, // SQLITE_IOERR_TRUNCATE kIoTruncate = 38, // SQLITE_CONSTRAINT_PRIMARYKEY kConstraintPrimaryKey = 39, // SQLITE_IOERR_FSTAT kIoFstat = 40, // SQLITE_IOERR_UNLOCK kIoUnlock = 41, // SQLITE_CONSTRAINT_UNIQUE kConstraintUnique = 42, // SQLITE_IOERR_RDLOCK kIoReadLock = 43, // SQLITE_IOERR_DELETE kIoDelete = 44, // SQLITE_CONSTRAINT_ROWID kConstraintRowId = 45, // SQLITE_CONSTRAINT_DATATYPE kConstraintDataType = 46, // SQLITE_IOERR_ACCESS kIoAccess = 47, // SQLITE_IOERR_CHECKRESERVEDLOCK kIoCheckReservedLock = 48, // SQLITE_IOERR_LOCK kIoLock = 49, // SQLITE_IOERR_CLOSE kIoClose = 50, // SQLITE_IOERR_SEEK kIoSeek = 51, // SQLITE_IOERR_DELETE_NOENT kIoDeleteNoEntry = 52, // SQLITE_IOERR_MMAP kIoMemoryMapping = 53, // SQLITE_IOERR_GETTEMPPATH kIoGetTemporaryPath = 54, // SQLITE_IOERR_BEGIN_ATOMIC kIoBeginAtomic = 55, // SQLITE_IOERR_COMMIT_ATOMIC kIoCommitAtomic = 56, // SQLITE_IOERR_ROLLBACK_ATOMIC kIoRollbackAtomic = 57, // SQLITE_IOERR_CORRUPTFS kIoCorruptFileSystem = 58, kMaxValue = kIoCorruptFileSystem, }; } // namespace sql #endif // SQL_SQLITE_RESULT_CODE_VALUES_H_