// Copyright 2022 The Chromium Authors
// 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
  kOkSymlink = 512,                         // SQLITE_OK_SYMLINK
  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
  kLoggingNoticeResumableBulkUpdate = 795,  // SQLITE_NOTICE_RBU
  kErrorReservesize = 1025,                 // SQLITE_ERROR_RESERVESIZE
  kReadOnlyDbMoved = 1032,                  // SQLITE_READONLY_DBMOVED
  kIoFsync = 1034,                          // SQLITE_IOERR_FSYNC
  kCantOpenConvertPath = 1038,              // SQLITE_CANTOPEN_CONVPATH
  kConstraintFunction = 1043,               // SQLITE_CONSTRAINT_FUNCTION
  kErrorKey = 1281,                         // SQLITE_ERROR_KEY
  kReadOnlyCantInit = 1288,                 // SQLITE_READONLY_CANTINIT
  kIoDirFsync = 1290,                       // SQLITE_IOERR_DIR_FSYNC
  kCantOpenDirtyWal = 1294,                 // SQLITE_CANTOPEN_DIRTYWAL
  kConstraintNotNull = 1299,                // SQLITE_CONSTRAINT_NOTNULL
  kErrorUnable = 1537,                      // SQLITE_ERROR_UNABLE
  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
  kIoInPage = 8714,                         // SQLITE_IOERR_IN_PAGE
  kIoBadKey = 8970,                         // SQLITE_IOERR_BADKEY
  kIoCodec = 9226,                          // SQLITE_IOERR_CODEC
};

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<int>(SqliteResultCode::kError),
  kInternal = static_cast<int>(SqliteResultCode::kInternal),
  kPermission = static_cast<int>(SqliteResultCode::kPermission),
  kAbort = static_cast<int>(SqliteResultCode::kAbort),
  kBusy = static_cast<int>(SqliteResultCode::kBusy),
  kLocked = static_cast<int>(SqliteResultCode::kLocked),
  kNoMemory = static_cast<int>(SqliteResultCode::kNoMemory),
  kReadOnly = static_cast<int>(SqliteResultCode::kReadOnly),
  kInterrupt = static_cast<int>(SqliteResultCode::kInterrupt),
  kIo = static_cast<int>(SqliteResultCode::kIo),
  kCorrupt = static_cast<int>(SqliteResultCode::kCorrupt),
  kNotFound = static_cast<int>(SqliteResultCode::kNotFound),
  kFullDisk = static_cast<int>(SqliteResultCode::kFullDisk),
  kCantOpen = static_cast<int>(SqliteResultCode::kCantOpen),
  kLockingProtocol = static_cast<int>(SqliteResultCode::kLockingProtocol),
  kEmpty = static_cast<int>(SqliteResultCode::kEmpty),
  kSchemaChanged = static_cast<int>(SqliteResultCode::kSchemaChanged),
  kTooBig = static_cast<int>(SqliteResultCode::kTooBig),
  kConstraint = static_cast<int>(SqliteResultCode::kConstraint),
  kTypeMismatch = static_cast<int>(SqliteResultCode::kTypeMismatch),
  kApiMisuse = static_cast<int>(SqliteResultCode::kApiMisuse),
  kNoLargeFileSupport = static_cast<int>(SqliteResultCode::kNoLargeFileSupport),
  kUnauthorized = static_cast<int>(SqliteResultCode::kUnauthorized),
  kFormat = static_cast<int>(SqliteResultCode::kFormat),
  kIndexRange = static_cast<int>(SqliteResultCode::kIndexRange),
  kNotADatabase = static_cast<int>(SqliteResultCode::kNotADatabase),
  kLoggingNotice = static_cast<int>(SqliteResultCode::kLoggingNotice),
  kLoggingWarning = static_cast<int>(SqliteResultCode::kLoggingWarning),
  kMissingCollatingSequence =
      static_cast<int>(SqliteResultCode::kMissingCollatingSequence),
  kBusyRecovery = static_cast<int>(SqliteResultCode::kBusyRecovery),
  kLockedSharedCache = static_cast<int>(SqliteResultCode::kLockedSharedCache),
  kReadOnlyRecovery = static_cast<int>(SqliteResultCode::kReadOnlyRecovery),
  kIoRead = static_cast<int>(SqliteResultCode::kIoRead),
  kCorruptVirtualTable =
      static_cast<int>(SqliteResultCode::kCorruptVirtualTable),
  kCantOpenNoTemporaryDirectory =
      static_cast<int>(SqliteResultCode::kCantOpenNoTemporaryDirectory),
  kConstraintCheck = static_cast<int>(SqliteResultCode::kConstraintCheck),
  kUnauthorizedUser = static_cast<int>(SqliteResultCode::kUnauthorizedUser),
  kLoggingNoticeRecoverWal =
      static_cast<int>(SqliteResultCode::kLoggingNoticeRecoverWal),
  kLoggingWarningAutoIndex =
      static_cast<int>(SqliteResultCode::kLoggingWarningAutoIndex),
  kRetryPreparedStatement =
      static_cast<int>(SqliteResultCode::kRetryPreparedStatement),
  kAbortRollback = static_cast<int>(SqliteResultCode::kAbortRollback),
  kBusySnapshot = static_cast<int>(SqliteResultCode::kBusySnapshot),
  kLockedVirtualTable = static_cast<int>(SqliteResultCode::kLockedVirtualTable),
  kReadOnlyCantLock = static_cast<int>(SqliteResultCode::kReadOnlyCantLock),
  kIoShortRead = static_cast<int>(SqliteResultCode::kIoShortRead),
  kCorruptSequence = static_cast<int>(SqliteResultCode::kCorruptSequence),
  kCantOpenIsDir = static_cast<int>(SqliteResultCode::kCantOpenIsDir),
  kConstraintCommitHook =
      static_cast<int>(SqliteResultCode::kConstraintCommitHook),
  kLoggingNoticeRecoverRollback =
      static_cast<int>(SqliteResultCode::kLoggingNoticeRecoverRollback),
  kErrorSnapshot = static_cast<int>(SqliteResultCode::kErrorSnapshot),
  kBusyTimeout = static_cast<int>(SqliteResultCode::kBusyTimeout),
  kReadOnlyRollback = static_cast<int>(SqliteResultCode::kReadOnlyRollback),
  kIoWrite = static_cast<int>(SqliteResultCode::kIoWrite),
  kCorruptIndex = static_cast<int>(SqliteResultCode::kCorruptIndex),
  kCantOpenFullPath = static_cast<int>(SqliteResultCode::kCantOpenFullPath),
  kConstraintForeignKey =
      static_cast<int>(SqliteResultCode::kConstraintForeignKey),
  kLoggingNoticeResumableBulkUpdate =
      static_cast<int>(SqliteResultCode::kLoggingNoticeResumableBulkUpdate),
  kErrorReservesize = static_cast<int>(SqliteResultCode::kErrorReservesize),
  kReadOnlyDbMoved = static_cast<int>(SqliteResultCode::kReadOnlyDbMoved),
  kIoFsync = static_cast<int>(SqliteResultCode::kIoFsync),
  kCantOpenConvertPath =
      static_cast<int>(SqliteResultCode::kCantOpenConvertPath),
  kConstraintFunction = static_cast<int>(SqliteResultCode::kConstraintFunction),
  kErrorKey = static_cast<int>(SqliteResultCode::kErrorKey),
  kReadOnlyCantInit = static_cast<int>(SqliteResultCode::kReadOnlyCantInit),
  kIoDirFsync = static_cast<int>(SqliteResultCode::kIoDirFsync),
  kCantOpenDirtyWal = static_cast<int>(SqliteResultCode::kCantOpenDirtyWal),
  kConstraintNotNull = static_cast<int>(SqliteResultCode::kConstraintNotNull),
  kErrorUnable = static_cast<int>(SqliteResultCode::kErrorUnable),
  kReadOnlyDirectory = static_cast<int>(SqliteResultCode::kReadOnlyDirectory),
  kIoTruncate = static_cast<int>(SqliteResultCode::kIoTruncate),
  kCantOpenSymlink = static_cast<int>(SqliteResultCode::kCantOpenSymlink),
  kConstraintPrimaryKey =
      static_cast<int>(SqliteResultCode::kConstraintPrimaryKey),
  kIoFstat = static_cast<int>(SqliteResultCode::kIoFstat),
  kConstraintTrigger = static_cast<int>(SqliteResultCode::kConstraintTrigger),
  kIoUnlock = static_cast<int>(SqliteResultCode::kIoUnlock),
  kConstraintUnique = static_cast<int>(SqliteResultCode::kConstraintUnique),
  kIoReadLock = static_cast<int>(SqliteResultCode::kIoReadLock),
  kConstraintVirtualTable =
      static_cast<int>(SqliteResultCode::kConstraintVirtualTable),
  kIoDelete = static_cast<int>(SqliteResultCode::kIoDelete),
  kConstraintRowId = static_cast<int>(SqliteResultCode::kConstraintRowId),
  kIoBlocked = static_cast<int>(SqliteResultCode::kIoBlocked),
  kConstraintPinned = static_cast<int>(SqliteResultCode::kConstraintPinned),
  kIoNoMemory = static_cast<int>(SqliteResultCode::kIoNoMemory),
  kConstraintDataType = static_cast<int>(SqliteResultCode::kConstraintDataType),
  kIoAccess = static_cast<int>(SqliteResultCode::kIoAccess),
  kIoCheckReservedLock =
      static_cast<int>(SqliteResultCode::kIoCheckReservedLock),
  kIoLock = static_cast<int>(SqliteResultCode::kIoLock),
  kIoClose = static_cast<int>(SqliteResultCode::kIoClose),
  kIoDirClose = static_cast<int>(SqliteResultCode::kIoDirClose),
  kIoSharedMemoryOpen = static_cast<int>(SqliteResultCode::kIoSharedMemoryOpen),
  kIoSharedMemorySize = static_cast<int>(SqliteResultCode::kIoSharedMemorySize),
  kIoSharedMemoryLock = static_cast<int>(SqliteResultCode::kIoSharedMemoryLock),
  kIoSharedMemoryMap = static_cast<int>(SqliteResultCode::kIoSharedMemoryMap),
  kIoSeek = static_cast<int>(SqliteResultCode::kIoSeek),
  kIoDeleteNoEntry = static_cast<int>(SqliteResultCode::kIoDeleteNoEntry),
  kIoMemoryMapping = static_cast<int>(SqliteResultCode::kIoMemoryMapping),
  kIoGetTemporaryPath = static_cast<int>(SqliteResultCode::kIoGetTemporaryPath),
  kIoConvertPath = static_cast<int>(SqliteResultCode::kIoConvertPath),
  kIoVfsNode = static_cast<int>(SqliteResultCode::kIoVfsNode),
  kIoUnauthorized = static_cast<int>(SqliteResultCode::kIoUnauthorized),
  kIoBeginAtomic = static_cast<int>(SqliteResultCode::kIoBeginAtomic),
  kIoCommitAtomic = static_cast<int>(SqliteResultCode::kIoCommitAtomic),
  kIoRollbackAtomic = static_cast<int>(SqliteResultCode::kIoRollbackAtomic),
  kIoData = static_cast<int>(SqliteResultCode::kIoData),
  kIoCorruptFileSystem =
      static_cast<int>(SqliteResultCode::kIoCorruptFileSystem),
  kIoInPage = static_cast<int>(SqliteResultCode::kIoInPage),
  kIoBadKey = static_cast<int>(SqliteResultCode::kIoBadKey),
  kIoCodec = static_cast<int>(SqliteResultCode::kIoCodec),
};

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,

  // SQLITE_IOERR_IN_PAGE
  kIoInPage = 59,

  kMaxValue = kIoInPage,
};

}  // namespace sql

#endif  // SQL_SQLITE_RESULT_CODE_VALUES_H_
