Sqlite: Cleanup table and column handling

Using values instead of pointers makes the handling much easier. We can
remove ColumnDefinition too, and use SqliteColumn instead.

Change-Id: I224db9cc569c4dfb6e2746179b02096904bfbccb
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2017-08-01 14:02:57 +02:00
parent a41183f6c7
commit 52a911b972
16 changed files with 183 additions and 354 deletions

View File

@@ -33,52 +33,6 @@
namespace Sqlite {
SqliteTable::SqliteTable()
: m_withoutRowId(false)
{
}
SqliteTable::~SqliteTable()
{
qDeleteAll(m_sqliteColumns);
}
void SqliteTable::setName(Utils::SmallString &&name)
{
m_tableName = std::move(name);
}
Utils::SmallStringView SqliteTable::name() const
{
return m_tableName;
}
void SqliteTable::setUseWithoutRowId(bool useWithoutWorId)
{
m_withoutRowId = useWithoutWorId;
}
bool SqliteTable::useWithoutRowId() const
{
return m_withoutRowId;
}
void SqliteTable::addColumn(SqliteColumn *newColumn)
{
m_sqliteColumns.push_back(newColumn);
}
const std::vector<SqliteColumn *> &SqliteTable::columns() const
{
return m_sqliteColumns;
}
void SqliteTable::setSqliteDatabase(SqliteDatabase *database)
{
m_sqliteDatabase = database;
}
void SqliteTable::initialize()
{
try {
@@ -86,10 +40,10 @@ void SqliteTable::initialize()
createTableSqlStatementBuilder.setTable(m_tableName.clone());
createTableSqlStatementBuilder.setUseWithoutRowId(m_withoutRowId);
createTableSqlStatementBuilder.setColumnDefinitions(createColumnDefintions());
createTableSqlStatementBuilder.setColumns(m_sqliteColumns);
SqliteImmediateTransaction transaction(*m_sqliteDatabase);
m_sqliteDatabase->execute(createTableSqlStatementBuilder.sqlStatement());
SqliteImmediateTransaction transaction(m_sqliteDatabase);
m_sqliteDatabase.execute(createTableSqlStatementBuilder.sqlStatement());
transaction.commit();
m_isReady = true;
@@ -99,19 +53,4 @@ void SqliteTable::initialize()
}
}
bool SqliteTable::isReady() const
{
return m_isReady;
}
ColumnDefinitions SqliteTable::createColumnDefintions() const
{
ColumnDefinitions columnDefintions;
for (SqliteColumn *sqliteColumn : m_sqliteColumns)
columnDefintions.push_back(sqliteColumn->columnDefintion());
return columnDefintions;
}
} // namespace Sqlite