diff --git a/src/libs/sqlite/sqlite-lib.pri b/src/libs/sqlite/sqlite-lib.pri index a57a580baca..ceed8ecf654 100644 --- a/src/libs/sqlite/sqlite-lib.pri +++ b/src/libs/sqlite/sqlite-lib.pri @@ -53,7 +53,7 @@ DEFINES += SQLITE_THREADSAFE=2 SQLITE_ENABLE_FTS5 \ SQLITE_OMIT_DEPRECATED SQLITE_OMIT_DECLTYPE \ SQLITE_MAX_EXPR_DEPTH=0 SQLITE_OMIT_SHARED_CACHE SQLITE_USE_ALLOCA \ SQLITE_ENABLE_MEMORY_MANAGEMENT SQLITE_ENABLE_NULL_TRIM SQLITE_OMIT_EXPLAIN \ - SQLITE_OMIT_LOAD_EXTENSION + SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_UTF16 OTHER_FILES += README.md diff --git a/src/libs/sqlite/sqlitebasestatement.cpp b/src/libs/sqlite/sqlitebasestatement.cpp index 3be7f75bbec..af115173f9f 100644 --- a/src/libs/sqlite/sqlitebasestatement.cpp +++ b/src/libs/sqlite/sqlitebasestatement.cpp @@ -147,17 +147,6 @@ int BaseStatement::columnCount() const return m_columnCount; } -Utils::SmallStringVector BaseStatement::columnNames() const -{ - Utils::SmallStringVector columnNames; - int columnCount = BaseStatement::columnCount(); - columnNames.reserve(std::size_t(columnCount)); - for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) - columnNames.emplace_back(sqlite3_column_origin_name(m_compiledStatement.get(), columnIndex)); - - return columnNames; -} - void BaseStatement::bind(int index, NullValue) { int resultCode = sqlite3_bind_null(m_compiledStatement.get(), index); @@ -259,11 +248,6 @@ sqlite3 *BaseStatement::sqliteDatabaseHandle() const return m_database.backend().sqliteDatabaseHandle(); } -TextEncoding BaseStatement::databaseTextEncoding() -{ - return m_database.backend().textEncoding(); -} - void BaseStatement::checkForStepError(int resultCode) const { switch (resultCode) { diff --git a/src/libs/sqlite/sqlitebasestatement.h b/src/libs/sqlite/sqlitebasestatement.h index c63cfc37d5f..59d3dd8ad1c 100644 --- a/src/libs/sqlite/sqlitebasestatement.h +++ b/src/libs/sqlite/sqlitebasestatement.h @@ -72,7 +72,6 @@ public: template Type fetchValue(int column) const; int columnCount() const; - Utils::SmallStringVector columnNames() const; void bind(int index, NullValue); void bind(int index, int fetchValue); @@ -97,7 +96,6 @@ public: void waitForUnlockNotify() const; sqlite3 *sqliteDatabaseHandle() const; - TextEncoding databaseTextEncoding(); [[noreturn]] void checkForStepError(int resultCode) const; [[noreturn]] void checkForResetError(int resultCode) const; diff --git a/src/libs/sqlite/sqlitedatabasebackend.cpp b/src/libs/sqlite/sqlitedatabasebackend.cpp index a346ab7d066..b06e754462a 100644 --- a/src/libs/sqlite/sqlitedatabasebackend.cpp +++ b/src/libs/sqlite/sqlitedatabasebackend.cpp @@ -40,9 +40,8 @@ namespace Sqlite { DatabaseBackend::DatabaseBackend(Database &database) - : m_database(database), - m_databaseHandle(nullptr), - m_cachedTextEncoding(Utf8) + : m_database(database) + , m_databaseHandle(nullptr) { } @@ -102,8 +101,6 @@ void DatabaseBackend::open(Utils::SmallStringView databaseFilePath, OpenMode mod nullptr); checkDatabaseCouldBeOpened(resultCode); - - cacheTextEncoding(); } sqlite3 *DatabaseBackend::sqliteDatabaseHandle() const @@ -135,24 +132,6 @@ JournalMode DatabaseBackend::journalMode() return pragmaToJournalMode(pragmaValue("journal_mode")); } -void DatabaseBackend::setTextEncoding(TextEncoding textEncoding) -{ - setPragmaValue("encoding", textEncodingToPragma(textEncoding)); - cacheTextEncoding(); -} - -TextEncoding DatabaseBackend::textEncoding() -{ - return m_cachedTextEncoding; -} - - -Utils::SmallStringVector DatabaseBackend::columnNames(Utils::SmallStringView tableName) -{ - ReadWriteStatement statement("SELECT * FROM " + tableName, m_database); - return statement.columnNames(); -} - int DatabaseBackend::changesCount() const { return sqlite3_changes(sqliteDatabaseHandle()); @@ -232,11 +211,6 @@ int DatabaseBackend::busyHandlerCallback(void *, int counter) return true; } -void DatabaseBackend::cacheTextEncoding() -{ - m_cachedTextEncoding = pragmaToTextEncoding(pragmaValue("encoding")); -} - void DatabaseBackend::checkForOpenDatabaseWhichCanBeClosed() { if (m_databaseHandle == nullptr) @@ -365,23 +339,6 @@ JournalMode DatabaseBackend::pragmaToJournalMode(Utils::SmallStringView pragma) return static_cast(index); } -const Utils::SmallStringView textEncodingStrings[] = {"UTF-8", "UTF-16le", "UTF-16be"}; - -Utils::SmallStringView DatabaseBackend::textEncodingToPragma(TextEncoding textEncoding) -{ - return textEncodingStrings[textEncoding]; -} - -TextEncoding DatabaseBackend::pragmaToTextEncoding(Utils::SmallStringView pragma) -{ - int index = indexOfPragma(pragma, textEncodingStrings); - - if (index < 0) - throwExceptionStatic("SqliteDatabaseBackend::pragmaToTextEncoding: pragma can't be transformed in a text encoding enumeration!"); - - return static_cast(index); -} - int DatabaseBackend::openMode(OpenMode mode) { int sqliteMode = SQLITE_OPEN_CREATE; diff --git a/src/libs/sqlite/sqlitedatabasebackend.h b/src/libs/sqlite/sqlitedatabasebackend.h index 7cf814b555c..1ce30c81829 100644 --- a/src/libs/sqlite/sqlitedatabasebackend.h +++ b/src/libs/sqlite/sqlitedatabasebackend.h @@ -68,9 +68,6 @@ public: void setJournalMode(JournalMode journalMode); JournalMode journalMode(); - void setTextEncoding(TextEncoding textEncoding); - TextEncoding textEncoding(); - Utils::SmallStringVector columnNames(Utils::SmallStringView tableName); int changesCount() const; @@ -103,8 +100,6 @@ protected: void registerRankingFunction(); static int busyHandlerCallback(void*, int counter); - void cacheTextEncoding(); - void checkForOpenDatabaseWhichCanBeClosed(); void checkDatabaseClosing(int resultCode); void checkCanOpenDatabase(Utils::SmallStringView databaseFilePath); @@ -121,9 +116,6 @@ protected: static Utils::SmallStringView journalModeToPragma(JournalMode journalMode); static JournalMode pragmaToJournalMode(Utils::SmallStringView pragma); - Utils::SmallStringView textEncodingToPragma(TextEncoding textEncoding); - static TextEncoding pragmaToTextEncoding(Utils::SmallStringView pragma); - Q_NORETURN static void throwExceptionStatic(const char *whatHasHappens); [[noreturn]] void throwException(const char *whatHasHappens) const; @@ -133,7 +125,6 @@ protected: private: Database &m_database; sqlite3 *m_databaseHandle; - TextEncoding m_cachedTextEncoding; }; } // namespace Sqlite diff --git a/src/libs/sqlite/sqliteglobal.h b/src/libs/sqlite/sqliteglobal.h index ed2b15e8b4f..7a5ee14aa05 100644 --- a/src/libs/sqlite/sqliteglobal.h +++ b/src/libs/sqlite/sqliteglobal.h @@ -71,19 +71,6 @@ enum class OpenMode : char ReadWrite }; -enum TextEncoding : char -{ - Utf8, - Utf16le, - Utf16be, -#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN - Utf16 = Utf16le -#else - Utf16 = Utf16be -#endif - -}; - enum class ChangeType : int { Delete = 9, Insert = 18, Update = 23 }; } // namespace Sqlite diff --git a/tests/unit/unittest/sqlitedatabasebackend-test.cpp b/tests/unit/unittest/sqlitedatabasebackend-test.cpp index 9957d3d4c73..2390bd4a3c6 100644 --- a/tests/unit/unittest/sqlitedatabasebackend-test.cpp +++ b/tests/unit/unittest/sqlitedatabasebackend-test.cpp @@ -42,7 +42,6 @@ using Sqlite::ColumnType; using Sqlite::ConstraintType; using Sqlite::JournalMode; using Sqlite::OpenMode; -using Sqlite::TextEncoding; using Sqlite::Exception; using Sqlite::WriteStatement; @@ -111,49 +110,6 @@ TEST_F(SqliteDatabaseBackend, PersistJournalMode) ASSERT_THAT(databaseBackend.journalMode(), JournalMode::Persist); } -TEST_F(SqliteDatabaseBackend, DefaultTextEncoding) -{ - ASSERT_THAT(databaseBackend.textEncoding(), TextEncoding::Utf8); -} - -TEST_F(SqliteDatabaseBackend, Utf16TextEncoding) -{ - databaseBackend.setTextEncoding(TextEncoding::Utf16); - - ASSERT_THAT(databaseBackend.textEncoding(), TextEncoding::Utf16); -} - -TEST_F(SqliteDatabaseBackend, Utf16beTextEncoding) -{ - databaseBackend.setTextEncoding(TextEncoding::Utf16be); - - ASSERT_THAT(databaseBackend.textEncoding(),TextEncoding::Utf16be); -} - -TEST_F(SqliteDatabaseBackend, Utf16leTextEncoding) -{ - databaseBackend.setTextEncoding(TextEncoding::Utf16le); - - ASSERT_THAT(databaseBackend.textEncoding(), TextEncoding::Utf16le); -} - -TEST_F(SqliteDatabaseBackend, Utf8TextEncoding) -{ - databaseBackend.setTextEncoding(TextEncoding::Utf8); - - ASSERT_THAT(databaseBackend.textEncoding(), TextEncoding::Utf8); -} - -TEST_F(SqliteDatabaseBackend, TextEncodingCannotBeChangedAfterTouchingDatabase) -{ - databaseBackend.setJournalMode(JournalMode::Memory); - - databaseBackend.execute("CREATE TABLE text(name, number)"); - - ASSERT_THROW(databaseBackend.setTextEncoding(TextEncoding::Utf16), - Sqlite::PragmaValueNotSet); -} - TEST_F(SqliteDatabaseBackend, OpenModeReadOnly) { auto mode = Backend::openMode(OpenMode::ReadOnly); diff --git a/tests/unit/unittest/sqlitestatement-test.cpp b/tests/unit/unittest/sqlitestatement-test.cpp index 6775d9e1685..d2e5377ba4e 100644 --- a/tests/unit/unittest/sqlitestatement-test.cpp +++ b/tests/unit/unittest/sqlitestatement-test.cpp @@ -223,15 +223,6 @@ TEST_F(SqliteStatement, ToStringValue) ASSERT_THAT(ReadStatement::toValue("SELECT name FROM test WHERE name='foo'", database), "foo"); } -TEST_F(SqliteStatement, ColumnNames) -{ - SqliteTestStatement statement("SELECT name, number FROM test", database); - - auto columnNames = statement.columnNames(); - - ASSERT_THAT(columnNames, ElementsAre("name", "number")); -} - TEST_F(SqliteStatement, BindNull) { database.execute("INSERT INTO test VALUES (NULL, 323, 344)");