diff --git a/src/libs/sqlite/sqlitebasestatement.cpp b/src/libs/sqlite/sqlitebasestatement.cpp index c0570eed107..c22a966ac4a 100644 --- a/src/libs/sqlite/sqlitebasestatement.cpp +++ b/src/libs/sqlite/sqlitebasestatement.cpp @@ -367,39 +367,74 @@ void BaseStatement::checkForStepError(int resultCode) const case SQLITE_LOCKED_VTAB: case SQLITE_LOCKED: throwConnectionIsLocked("SqliteStatement::stepStatement: Database connection is locked."); - case SQLITE_IOERR_AUTH: - case SQLITE_IOERR_BEGIN_ATOMIC: - case SQLITE_IOERR_BLOCKED: - case SQLITE_IOERR_CHECKRESERVEDLOCK: - case SQLITE_IOERR_CLOSE: - case SQLITE_IOERR_COMMIT_ATOMIC: - case SQLITE_IOERR_CONVPATH: - case SQLITE_IOERR_DATA: - case SQLITE_IOERR_DELETE: - case SQLITE_IOERR_DELETE_NOENT: - case SQLITE_IOERR_DIR_CLOSE: - case SQLITE_IOERR_DIR_FSYNC: - case SQLITE_IOERR_FSTAT: - case SQLITE_IOERR_FSYNC: - case SQLITE_IOERR_GETTEMPPATH: - case SQLITE_IOERR_LOCK: - case SQLITE_IOERR_MMAP: - case SQLITE_IOERR_NOMEM: - case SQLITE_IOERR_RDLOCK: case SQLITE_IOERR_READ: - case SQLITE_IOERR_ROLLBACK_ATOMIC: - case SQLITE_IOERR_SEEK: - case SQLITE_IOERR_SHMLOCK: - case SQLITE_IOERR_SHMMAP: - case SQLITE_IOERR_SHMOPEN: - case SQLITE_IOERR_SHMSIZE: + throw InputOutputCannotRead(); case SQLITE_IOERR_SHORT_READ: - case SQLITE_IOERR_TRUNCATE: - case SQLITE_IOERR_UNLOCK: - case SQLITE_IOERR_VNODE: + throw InputOutputCannotShortRead(); case SQLITE_IOERR_WRITE: + throw InputOutputCannotWrite(); + case SQLITE_IOERR_FSYNC: + throw InputOutputCannotSynchronizeFile(); + case SQLITE_IOERR_DIR_FSYNC: + throw InputOutputCannotSynchronizeDirectory(); + case SQLITE_IOERR_TRUNCATE: + throw InputOutputCannotTruncate(); + case SQLITE_IOERR_FSTAT: + throw InputOutputCannotFsStat(); + case SQLITE_IOERR_UNLOCK: + throw InputOutputCannotUnlock(); + case SQLITE_IOERR_RDLOCK: + throw InputOutputCannotReadLock(); + case SQLITE_IOERR_DELETE: + throw InputOutputCannotDelete(); + case SQLITE_IOERR_BLOCKED: + throw InputOutputBlocked(); + case SQLITE_IOERR_NOMEM: + throw InputOutputNoMemory(); + case SQLITE_IOERR_ACCESS: + throw InputOutputCannotAccess(); + case SQLITE_IOERR_CHECKRESERVEDLOCK: + throw InputOutputCannotCheckReservedLock(); + case SQLITE_IOERR_LOCK: + throw InputOutputCannotLock(); + case SQLITE_IOERR_CLOSE: + throw InputOutputCannotClose(); + case SQLITE_IOERR_DIR_CLOSE: + throw InputOutputCannotCloseDirectory(); + case SQLITE_IOERR_SHMOPEN: + throw InputOutputCannotOpenSharedMemory(); + case SQLITE_IOERR_SHMSIZE: + throw InputOutputCannotEnlargeSharedMemory(); + case SQLITE_IOERR_SHMLOCK: + throw InputOutputCannotLockSharedMemory(); + case SQLITE_IOERR_SHMMAP: + throw InputOutputCannotMapSharedMemory(); + case SQLITE_IOERR_SEEK: + throw InputOutputCannotSeek(); + case SQLITE_IOERR_DELETE_NOENT: + throw InputOutputCannotDeleteNonExistingFile(); + case SQLITE_IOERR_MMAP: + throw InputOutputCannotMemoryMap(); + case SQLITE_IOERR_GETTEMPPATH: + throw InputOutputCannotGetTemporaryPath(); + case SQLITE_IOERR_CONVPATH: + throw InputOutputConvPathFailed(); + case SQLITE_IOERR_VNODE: + throw InputOutputVNodeError(); + case SQLITE_IOERR_AUTH: + throw InputOutputCannotAuthenticate(); + case SQLITE_IOERR_BEGIN_ATOMIC: + throw InputOutputCannotBeginAtomic(); + case SQLITE_IOERR_COMMIT_ATOMIC: + throw InputOutputCannotCommitAtomic(); + case SQLITE_IOERR_ROLLBACK_ATOMIC: + throw InputOutputCannotRollbackAtomic(); + case SQLITE_IOERR_DATA: + throw InputOutputDataError(); + case SQLITE_IOERR_CORRUPTFS: + throw InputOutputFileSystemIsCorrupt(); case SQLITE_IOERR: - throwInputOutputError("SqliteStatement::stepStatement: An IO error happened."); + throw InputOutputError(); case SQLITE_INTERRUPT: throwExecutionInterrupted("SqliteStatement::stepStatement: Execution was interrupted."); case SQLITE_CORRUPT_INDEX: @@ -437,39 +472,74 @@ void BaseStatement::checkForPrepareError(int resultCode) const "constraint violation) has occurred!"); case SQLITE_MISUSE: throwStatementIsMisused("SqliteStatement::prepareStatement: was called inappropriately!"); - case SQLITE_IOERR_AUTH: - case SQLITE_IOERR_BEGIN_ATOMIC: - case SQLITE_IOERR_BLOCKED: - case SQLITE_IOERR_CHECKRESERVEDLOCK: - case SQLITE_IOERR_CLOSE: - case SQLITE_IOERR_COMMIT_ATOMIC: - case SQLITE_IOERR_CONVPATH: - case SQLITE_IOERR_DATA: - case SQLITE_IOERR_DELETE: - case SQLITE_IOERR_DELETE_NOENT: - case SQLITE_IOERR_DIR_CLOSE: - case SQLITE_IOERR_DIR_FSYNC: - case SQLITE_IOERR_FSTAT: - case SQLITE_IOERR_FSYNC: - case SQLITE_IOERR_GETTEMPPATH: - case SQLITE_IOERR_LOCK: - case SQLITE_IOERR_MMAP: - case SQLITE_IOERR_NOMEM: - case SQLITE_IOERR_RDLOCK: case SQLITE_IOERR_READ: - case SQLITE_IOERR_ROLLBACK_ATOMIC: - case SQLITE_IOERR_SEEK: - case SQLITE_IOERR_SHMLOCK: - case SQLITE_IOERR_SHMMAP: - case SQLITE_IOERR_SHMOPEN: - case SQLITE_IOERR_SHMSIZE: + throw InputOutputCannotRead(); case SQLITE_IOERR_SHORT_READ: - case SQLITE_IOERR_TRUNCATE: - case SQLITE_IOERR_UNLOCK: - case SQLITE_IOERR_VNODE: + throw InputOutputCannotShortRead(); case SQLITE_IOERR_WRITE: + throw InputOutputCannotWrite(); + case SQLITE_IOERR_FSYNC: + throw InputOutputCannotSynchronizeFile(); + case SQLITE_IOERR_DIR_FSYNC: + throw InputOutputCannotSynchronizeDirectory(); + case SQLITE_IOERR_TRUNCATE: + throw InputOutputCannotTruncate(); + case SQLITE_IOERR_FSTAT: + throw InputOutputCannotFsStat(); + case SQLITE_IOERR_UNLOCK: + throw InputOutputCannotUnlock(); + case SQLITE_IOERR_RDLOCK: + throw InputOutputCannotReadLock(); + case SQLITE_IOERR_DELETE: + throw InputOutputCannotDelete(); + case SQLITE_IOERR_BLOCKED: + throw InputOutputBlocked(); + case SQLITE_IOERR_NOMEM: + throw InputOutputNoMemory(); + case SQLITE_IOERR_ACCESS: + throw InputOutputCannotAccess(); + case SQLITE_IOERR_CHECKRESERVEDLOCK: + throw InputOutputCannotCheckReservedLock(); + case SQLITE_IOERR_LOCK: + throw InputOutputCannotLock(); + case SQLITE_IOERR_CLOSE: + throw InputOutputCannotClose(); + case SQLITE_IOERR_DIR_CLOSE: + throw InputOutputCannotCloseDirectory(); + case SQLITE_IOERR_SHMOPEN: + throw InputOutputCannotOpenSharedMemory(); + case SQLITE_IOERR_SHMSIZE: + throw InputOutputCannotEnlargeSharedMemory(); + case SQLITE_IOERR_SHMLOCK: + throw InputOutputCannotLockSharedMemory(); + case SQLITE_IOERR_SHMMAP: + throw InputOutputCannotMapSharedMemory(); + case SQLITE_IOERR_SEEK: + throw InputOutputCannotSeek(); + case SQLITE_IOERR_DELETE_NOENT: + throw InputOutputCannotDeleteNonExistingFile(); + case SQLITE_IOERR_MMAP: + throw InputOutputCannotMemoryMap(); + case SQLITE_IOERR_GETTEMPPATH: + throw InputOutputCannotGetTemporaryPath(); + case SQLITE_IOERR_CONVPATH: + throw InputOutputConvPathFailed(); + case SQLITE_IOERR_VNODE: + throw InputOutputVNodeError(); + case SQLITE_IOERR_AUTH: + throw InputOutputCannotAuthenticate(); + case SQLITE_IOERR_BEGIN_ATOMIC: + throw InputOutputCannotBeginAtomic(); + case SQLITE_IOERR_COMMIT_ATOMIC: + throw InputOutputCannotCommitAtomic(); + case SQLITE_IOERR_ROLLBACK_ATOMIC: + throw InputOutputCannotRollbackAtomic(); + case SQLITE_IOERR_DATA: + throw InputOutputDataError(); + case SQLITE_IOERR_CORRUPTFS: + throw InputOutputFileSystemIsCorrupt(); case SQLITE_IOERR: - throwInputOutputError("SqliteStatement::prepareStatement: IO error happened!"); + throw InputOutputError(); } throwUnknowError("SqliteStatement::prepareStatement: unknown error has happened"); @@ -519,11 +589,6 @@ void BaseStatement::throwStatementIsMisused(const char *) const throw StatementIsMisused(sqlite3_errmsg(sqliteDatabaseHandle())); } -void BaseStatement::throwInputOutputError(const char *) const -{ - throw InputOutputError(); -} - void BaseStatement::throwConstraintPreventsModification(const char *) const { throw ConstraintPreventsModification(sqlite3_errmsg(sqliteDatabaseHandle())); diff --git a/src/libs/sqlite/sqlitebasestatement.h b/src/libs/sqlite/sqlitebasestatement.h index a596ba21a41..f0b68e2ec99 100644 --- a/src/libs/sqlite/sqlitebasestatement.h +++ b/src/libs/sqlite/sqlitebasestatement.h @@ -120,7 +120,6 @@ public: [[noreturn]] void throwStatementIsBusy(const char *whatHasHappened) const; [[noreturn]] void throwStatementHasError(const char *whatHasHappened) const; [[noreturn]] void throwStatementIsMisused(const char *whatHasHappened) const; - [[noreturn]] void throwInputOutputError(const char *whatHasHappened) const; [[noreturn]] void throwConstraintPreventsModification(const char *whatHasHappened) const; [[noreturn]] void throwNoValuesToFetch(const char *whatHasHappened) const; [[noreturn]] void throwInvalidColumnFetched(const char *whatHasHappened) const; diff --git a/src/libs/sqlite/sqliteexception.cpp b/src/libs/sqlite/sqliteexception.cpp index 39ba5e49026..d3ed0d51c77 100644 --- a/src/libs/sqlite/sqliteexception.cpp +++ b/src/libs/sqlite/sqliteexception.cpp @@ -299,4 +299,169 @@ const char *CheckpointIsMisused::what() const noexcept return "Sqlite::CheckpointIsMisused"; } +const char *InputOutputCannotAuthenticate::what() const noexcept +{ + return "Sqlite::InputOutputCannotAuthenticate"; +} + +const char *InputOutputCannotBeginAtomic::what() const noexcept +{ + return "Sqlite::InputOutputCannotBeginAtomic"; +} + +const char *InputOutputBlocked::what() const noexcept +{ + return "Sqlite::InputOutputBlocked"; +} + +const char *InputOutputCannotCommitAtomic::what() const noexcept +{ + return "Sqlite::InputOutputCannotCommitAtomic"; +} + +const char *InputOutputCannotRollbackAtomic::what() const noexcept +{ + return "Sqlite::InputOutputCannotRollbackAtomic"; +} + +const char *InputOutputDataError::what() const noexcept +{ + return "Sqlite::InputOutputDataError"; +} + +const char *InputOutputFileSystemIsCorrupt::what() const noexcept +{ + return "Sqlite::InputOutputFileSystemIsCorrupt"; +} + +const char *InputOutputVNodeError::what() const noexcept +{ + return "Sqlite::InputOutputVNodeError"; +} + +const char *InputOutputConvPathFailed::what() const noexcept +{ + return "Sqlite::InputOutputConvPathFailed"; +} + +const char *InputOutputCannotGetTemporaryPath::what() const noexcept +{ + return "Sqlite::InputOutputCannotGetTemporaryPath"; +} + +const char *InputOutputCannotMemoryMap::what() const noexcept +{ + return "Sqlite::InputOutputCannotMemoryMap"; +} + +const char *InputOutputCannotDeleteNonExistingFile::what() const noexcept +{ + return "Sqlite::InputOutputCannotDeleteNonExistingFile"; +} + +const char *InputOutputCannotSeek::what() const noexcept +{ + return "Sqlite::InputOutputCannotSeek"; +} + +const char *InputOutputCannotMapSharedMemory::what() const noexcept +{ + return "Sqlite::InputOutputCannotMapSharedMemory"; +} + +const char *InputOutputCannotLockSharedMemory::what() const noexcept +{ + return "Sqlite::InputOutputCannotLockSharedMemory"; +} + +const char *InputOutputCannotEnlargeSharedMemory::what() const noexcept +{ + return "Sqlite::InputOutputCannotEnlargeSharedMemory"; +} + +const char *InputOutputCannotOpenSharedMemory::what() const noexcept +{ + return "Sqlite::InputOutputCannotOpenSharedMemory"; +} + +const char *InputOutputCannotCloseDirectory::what() const noexcept +{ + return "Sqlite::InputOutputCannotCloseDirectory"; +} + +const char *InputOutputCannotClose::what() const noexcept +{ + return "Sqlite::InputOutputCannotClose"; +} + +const char *InputOutputCannotLock::what() const noexcept +{ + return "Sqlite::InputOutputCannotLock"; +} + +const char *InputOutputCannotCheckReservedLock::what() const noexcept +{ + return "Sqlite::InputOutputCannotCheckReservedLock"; +} + +const char *InputOutputCannotAccess::what() const noexcept +{ + return "Sqlite::InputOutputCannotAccess"; +} + +const char *InputOutputNoMemory::what() const noexcept +{ + return "Sqlite::InputOutputNoMemory"; +} + +const char *InputOutputCannotDelete::what() const noexcept +{ + return "Sqlite::InputOutputCannotDelete"; +} + +const char *InputOutputCannotReadLock::what() const noexcept +{ + return "Sqlite::InputOutputCannotReadLock"; +} + +const char *InputOutputCannotUnlock::what() const noexcept +{ + return "Sqlite::InputOutputCannotUnlock"; +} + +const char *InputOutputCannotFsStat::what() const noexcept +{ + return "Sqlite::InputOutputCannotFsStat"; +} + +const char *InputOutputCannotTruncate::what() const noexcept +{ + return "Sqlite::InputOutputCannotTruncate"; +} + +const char *InputOutputCannotSynchronizeDirectory::what() const noexcept +{ + return "Sqlite::InputOutputCannotFsyncDirectory"; +} + +const char *InputOutputCannotSynchronizeFile::what() const noexcept +{ + return "Sqlite::InputOutputCannotSynchronizeFile"; +} + +const char *InputOutputCannotWrite::what() const noexcept +{ + return "Sqlite::InputOutputCannotWrite"; +} + +const char *InputOutputCannotShortRead::what() const noexcept +{ + return "Sqlite::InputOutputCannotShortRead"; +} + +const char *InputOutputCannotRead::what() const noexcept +{ + return "Sqlite::InputOutputCannotRead"; +} + } // namespace Sqlite diff --git a/src/libs/sqlite/sqliteexception.h b/src/libs/sqlite/sqliteexception.h index 3f8bf72b753..b8ec77dadee 100644 --- a/src/libs/sqlite/sqliteexception.h +++ b/src/libs/sqlite/sqliteexception.h @@ -68,6 +68,204 @@ public: const char *what() const noexcept override; }; +class SQLITE_EXPORT InputOutputCannotAuthenticate : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotBeginAtomic : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotCommitAtomic : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotRollbackAtomic : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputDataError : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputBlocked : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputFileSystemIsCorrupt : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputVNodeError : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputConvPathFailed : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotGetTemporaryPath : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotMemoryMap : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotDeleteNonExistingFile : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotSeek : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotMapSharedMemory : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotLockSharedMemory : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotEnlargeSharedMemory : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotOpenSharedMemory : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotCloseDirectory : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotClose : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotLock : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotCheckReservedLock : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotAccess : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputNoMemory : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotDelete : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotReadLock : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotUnlock : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotFsStat : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotTruncate : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotSynchronizeDirectory : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotSynchronizeFile : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotWrite : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotShortRead : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + +class SQLITE_EXPORT InputOutputCannotRead : public InputOutputError +{ +public: + const char *what() const noexcept override; +}; + class SQLITE_EXPORT ConstraintPreventsModification : public ExceptionWithMessage { public: