diff options
author | Marco Bubke <[email protected]> | 2023-02-27 10:30:26 +0100 |
---|---|---|
committer | Marco Bubke <[email protected]> | 2023-02-28 09:48:30 +0000 |
commit | cc507063bc9e5a608d38437122f0b892c02c0283 (patch) | |
tree | 0824e27cb178a6e55b12473404a9b01e608424c3 /src/libs/sqlite/sqliteexception.cpp | |
parent | 306f239c202241f1a8a9883dface2688acb602d8 (diff) |
Sqlite: Inject RTTI into TU
We had problems on macOS with the catching of exceptions because the has
type_info::hash_code was different. This is probably a bug because RTTI
code is injected for an inline class.
To work around that problem we implemented the virtual what method for
every exception.
Task-number: QDS-9266
Change-Id: I79052c8b70adead412d1940b17195151fb19ebb9
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: <[email protected]>
Reviewed-by: Vikas Pachdha <[email protected]>
Diffstat (limited to 'src/libs/sqlite/sqliteexception.cpp')
-rw-r--r-- | src/libs/sqlite/sqliteexception.cpp | 282 |
1 files changed, 281 insertions, 1 deletions
diff --git a/src/libs/sqlite/sqliteexception.cpp b/src/libs/sqlite/sqliteexception.cpp index ae48f0bce1c..39ba5e49026 100644 --- a/src/libs/sqlite/sqliteexception.cpp +++ b/src/libs/sqlite/sqliteexception.cpp @@ -11,7 +11,12 @@ namespace Sqlite { const char *Exception::what() const noexcept { - return m_whatErrorHasHappen; + return "Sqlite::Exception"; +} + +const char *ExceptionWithMessage::what() const noexcept +{ + return "Sqlite::ExceptionWithMessage"; } void ExceptionWithMessage::printWarning() const @@ -19,4 +24,279 @@ void ExceptionWithMessage::printWarning() const qWarning() << what() << m_sqliteErrorMessage; } +const char *StatementIsBusy::what() const noexcept +{ + return "Sqlite::StatementIsBusy"; +} + +const char *DatabaseIsBusy::what() const noexcept +{ + return "Sqlite::DatabaseIsBusy"; +} + +const char *StatementHasError::what() const noexcept +{ + return "Sqlite::StatementHasError"; +} + +const char *StatementIsMisused::what() const noexcept +{ + return "Sqlite::StatementIsMisused"; +} + +const char *InputOutputError::what() const noexcept +{ + return "Sqlite::InputOutputError"; +} + +const char *ConstraintPreventsModification::what() const noexcept +{ + return "Sqlite::ConstraintPreventsModification"; +} + +const char *NoValuesToFetch::what() const noexcept +{ + return "Sqlite::NoValuesToFetch"; +} + +const char *BindingIndexIsOutOfRange::what() const noexcept +{ + return "Sqlite::BindingIndexIsOutOfRange"; +} + +const char *WrongBindingName::what() const noexcept +{ + return "Sqlite::WrongBindingName"; +} + +const char *DatabaseIsNotOpen::what() const noexcept +{ + return "Sqlite::DatabaseIsNotOpen"; +} + +const char *DatabaseCannotBeOpened::what() const noexcept +{ + return "Sqlite::DatabaseCannotBeOpened"; +} + +const char *DatabaseFilePathIsEmpty::what() const noexcept +{ + return "Sqlite::DatabaseFilePathIsEmpty"; +} + +const char *DatabaseIsAlreadyOpen::what() const noexcept +{ + return "Sqlite::DatabaseIsAlreadyOpen"; +} + +const char *DatabaseCannotBeClosed::what() const noexcept +{ + return "Sqlite::DatabaseCannotBeClosed"; +} + +const char *DatabaseIsAlreadyClosed::what() const noexcept +{ + return "Sqlite::DatabaseIsAlreadyClosed"; +} + +const char *WrongFilePath::what() const noexcept +{ + return "Sqlite::WrongFilePath"; +} + +const char *PragmaValueNotSet::what() const noexcept +{ + return "Sqlite::PragmaValueNotSet"; +} + +const char *NotReadOnlySqlStatement::what() const noexcept +{ + return "Sqlite::NotReadOnlySqlStatement"; +} + +const char *NotWriteSqlStatement::what() const noexcept +{ + return "Sqlite::NotWriteSqlStatement"; +} + +const char *DeadLock::what() const noexcept +{ + return "Sqlite::DeadLock"; +} + +const char *UnknowError::what() const noexcept +{ + return "Sqlite::UnknowError"; +} + +const char *BindingTooBig::what() const noexcept +{ + return "Sqlite::BindingTooBig"; +} + +const char *TooBig::what() const noexcept +{ + return "Sqlite::TooBig"; +} + +const char *CannotConvert::what() const noexcept +{ + return "Sqlite::CannotConvert"; +} + +const char *ForeignKeyColumnIsNotUnique::what() const noexcept +{ + return "Sqlite::ForeignKeyColumnIsNotUnique"; +} + +const char *CannotApplyChangeSet::what() const noexcept +{ + return "Sqlite::CannotApplyChangeSet"; +} + +const char *ChangeSetIsMisused::what() const noexcept +{ + return "Sqlite::ChangeSetIsMisused"; +} + +const char *SchemeChangeError::what() const noexcept +{ + return "Sqlite::SchemeChangeError"; +} + +const char *CannotWriteToReadOnlyConnection::what() const noexcept +{ + return "Sqlite::CannotWriteToReadOnlyConnection"; +} + +const char *ProtocolError::what() const noexcept +{ + return "Sqlite::ProtocolError"; +} + +const char *DatabaseExceedsMaximumFileSize::what() const noexcept +{ + return "Sqlite::DatabaseExceedsMaximumFileSize"; +} + +const char *DataTypeMismatch::what() const noexcept +{ + return "Sqlite::DataTypeMismatch"; +} + +const char *ConnectionIsLocked::what() const noexcept +{ + return "Sqlite::ConnectionIsLocked"; +} + +const char *ExecutionInterrupted::what() const noexcept +{ + return "Sqlite::ExecutionInterrupted"; +} + +const char *DatabaseIsCorrupt::what() const noexcept +{ + return "Sqlite::DatabaseIsCorrupt"; +} + +const char *CannotOpen::what() const noexcept +{ + return "Sqlite::CannotOpen"; +} + +const char *CannotCreateChangeSetIterator::what() const noexcept +{ + return "Sqlite::CannotCreateChangeSetIterator"; +} + +const char *CannotGetChangeSetOperation::what() const noexcept +{ + return "Sqlite::CannotGetChangeSetOperation"; +} + +const char *ChangeSetTupleIsOutOfRange::what() const noexcept +{ + return "Sqlite::ChangeSetTupleIsOutOfRange"; +} + +const char *ChangeSetTupleIsMisused::what() const noexcept +{ + return "Sqlite::ChangeSetTupleIsMisused"; +} + +const char *UnknownError::what() const noexcept +{ + return "Sqlite::UnknownError"; +} + +const char *DatabaseIsNotLocked::what() const noexcept +{ + return "Sqlite::DatabaseIsNotLocked"; +} + +const char *WrongBindingParameterCount::what() const noexcept +{ + return "Sqlite::WrongBindingParameterCount"; +} + +const char *WrongColumnCount::what() const noexcept +{ + return "Sqlite::WrongColumnCount"; +} + +const char *IndexHasNoTableName::what() const noexcept +{ + return "Sqlite::IndexHasNoTableName"; +} + +const char *IndexHasNoColumns::what() const noexcept +{ + return "Sqlite::IndexHasNoColumns"; +} + +const char *MultiTheadingCannotBeActivated::what() const noexcept +{ + return "Sqlite::MultiTheadingCannotBeActivated"; +} + +const char *LoggingCannotBeActivated::what() const noexcept +{ + return "Sqlite::LoggingCannotBeActivated"; +} + +const char *MemoryMappingCannotBeChanged::what() const noexcept +{ + return "Sqlite::MemoryMappingCannotBeChanged"; +} + +const char *LibraryCannotBeInitialized::what() const noexcept +{ + return "Sqlite::LibraryCannotBeInitialized"; +} + +const char *LibraryCannotBeShutdown::what() const noexcept +{ + return "Sqlite::LibraryCannotBeShutdown"; +} + +const char *LogCannotBeCheckpointed::what() const noexcept +{ + return "Sqlite::LogCannotBeCheckPointed"; +} + +const char *BusyTimerCannotBeSet::what() const noexcept +{ + return "Sqlite::BusyTimerCannotBeSet"; +} + +const char *PragmaValueCannotBeTransformed::what() const noexcept +{ + return "Sqlite::PragmaValueCannotBeTransformed"; +} + +const char *CheckpointIsMisused::what() const noexcept +{ + return "Sqlite::CheckpointIsMisused"; +} + } // namespace Sqlite |