Sqlite: Add condition to index

Change-Id: I83851b2f9cd516f21bc7e8987c1b60efaa019bb1
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Marco Bubke
2021-06-10 15:48:22 +02:00
parent 66ba9c4843
commit b32f607bc7
4 changed files with 60 additions and 20 deletions

View File

@@ -107,11 +107,34 @@ TEST_F(SqliteTable, InitializeTableWithIndex)
auto &column = table.addColumn("name");
auto &column2 = table.addColumn("value");
table.addIndex({column});
table.addIndex({column2});
table.addIndex({column2}, "value IS NOT NULL");
EXPECT_CALL(databaseMock, execute(Eq("CREATE TABLE testTable(name, value)")));
EXPECT_CALL(databaseMock, execute(Eq("CREATE INDEX IF NOT EXISTS index_testTable_name ON testTable(name)")));
EXPECT_CALL(databaseMock, execute(Eq("CREATE INDEX IF NOT EXISTS index_testTable_value ON testTable(value)")));
EXPECT_CALL(databaseMock,
execute(Eq("CREATE INDEX IF NOT EXISTS index_testTable_value ON testTable(value) "
"WHERE value IS NOT NULL")));
table.initialize(databaseMock);
}
TEST_F(SqliteTable, InitializeTableWithUniqueIndex)
{
InSequence sequence;
table.setName(tableName.clone());
auto &column = table.addColumn("name");
auto &column2 = table.addColumn("value");
table.addUniqueIndex({column});
table.addUniqueIndex({column2}, "value IS NOT NULL");
EXPECT_CALL(databaseMock, execute(Eq("CREATE TABLE testTable(name, value)")));
EXPECT_CALL(databaseMock,
execute(Eq(
"CREATE UNIQUE INDEX IF NOT EXISTS index_testTable_name ON testTable(name)")));
EXPECT_CALL(databaseMock,
execute(Eq(
"CREATE UNIQUE INDEX IF NOT EXISTS index_testTable_value ON testTable(value) "
"WHERE value IS NOT NULL")));
table.initialize(databaseMock);
}