forked from qt-creator/qt-creator
Sqlite: Cleanup Sqlite
We don't need the threading anymore, so we removed it. The indexer will be run in its thread anyway, so an extra thread makes the code only more complicated. And we added namespaces. Change-Id: Ibcba306324763285cf653c28bb08122345e5f8da Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -27,79 +27,79 @@
|
||||
|
||||
#include "utf8stringvector.h"
|
||||
|
||||
namespace Internal {
|
||||
namespace Sqlite {
|
||||
|
||||
CreateTableSqlStatementBuilder::CreateTableSqlStatementBuilder()
|
||||
: sqlStatementBuilder(Utf8StringLiteral("CREATE TABLE IF NOT EXISTS $table($columnDefinitions)$withoutRowId")),
|
||||
useWithoutRowId(false)
|
||||
: m_sqlStatementBuilder(Utf8StringLiteral("CREATE TABLE IF NOT EXISTS $table($columnDefinitions)$withoutRowId")),
|
||||
m_useWithoutRowId(false)
|
||||
{
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::setTable(const Utf8String &tableName)
|
||||
{
|
||||
sqlStatementBuilder.clear();
|
||||
m_sqlStatementBuilder.clear();
|
||||
|
||||
this->tableName = tableName;
|
||||
this->m_tableName = tableName;
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::addColumnDefinition(const Utf8String &columnName,
|
||||
ColumnType columnType,
|
||||
bool isPrimaryKey)
|
||||
{
|
||||
sqlStatementBuilder.clear();
|
||||
m_sqlStatementBuilder.clear();
|
||||
|
||||
ColumnDefinition columnDefinition;
|
||||
columnDefinition.setName(columnName);
|
||||
columnDefinition.setType(columnType);
|
||||
columnDefinition.setIsPrimaryKey(isPrimaryKey);
|
||||
|
||||
columnDefinitions.append(columnDefinition);
|
||||
m_columnDefinitions.append(columnDefinition);
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::setColumnDefinitions(const QVector<ColumnDefinition> &columnDefinitions)
|
||||
{
|
||||
sqlStatementBuilder.clear();
|
||||
m_sqlStatementBuilder.clear();
|
||||
|
||||
this->columnDefinitions = columnDefinitions;
|
||||
this->m_columnDefinitions = columnDefinitions;
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::setUseWithoutRowId(bool useWithoutRowId)
|
||||
{
|
||||
this->useWithoutRowId = useWithoutRowId;
|
||||
this->m_useWithoutRowId = useWithoutRowId;
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::clear()
|
||||
{
|
||||
sqlStatementBuilder.clear();
|
||||
columnDefinitions.clear();
|
||||
tableName.clear();
|
||||
useWithoutRowId = false;
|
||||
m_sqlStatementBuilder.clear();
|
||||
m_columnDefinitions.clear();
|
||||
m_tableName.clear();
|
||||
m_useWithoutRowId = false;
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::clearColumns()
|
||||
{
|
||||
sqlStatementBuilder.clear();
|
||||
columnDefinitions.clear();
|
||||
m_sqlStatementBuilder.clear();
|
||||
m_columnDefinitions.clear();
|
||||
}
|
||||
|
||||
Utf8String CreateTableSqlStatementBuilder::sqlStatement() const
|
||||
{
|
||||
if (!sqlStatementBuilder.isBuild())
|
||||
if (!m_sqlStatementBuilder.isBuild())
|
||||
bindAll();
|
||||
|
||||
return sqlStatementBuilder.sqlStatement();
|
||||
return m_sqlStatementBuilder.sqlStatement();
|
||||
}
|
||||
|
||||
bool CreateTableSqlStatementBuilder::isValid() const
|
||||
{
|
||||
return tableName.hasContent() && !columnDefinitions.isEmpty();
|
||||
return m_tableName.hasContent() && !m_columnDefinitions.isEmpty();
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::bindColumnDefinitions() const
|
||||
{
|
||||
Utf8StringVector columnDefinitionStrings;
|
||||
|
||||
foreach (const ColumnDefinition &columnDefinition, columnDefinitions) {
|
||||
foreach (const ColumnDefinition &columnDefinition, m_columnDefinitions) {
|
||||
Utf8String columnDefinitionString = columnDefinition.name() + Utf8StringLiteral(" ") + columnDefinition.typeString();
|
||||
|
||||
if (columnDefinition.isPrimaryKey())
|
||||
@@ -108,19 +108,19 @@ void CreateTableSqlStatementBuilder::bindColumnDefinitions() const
|
||||
columnDefinitionStrings.append(columnDefinitionString);
|
||||
}
|
||||
|
||||
sqlStatementBuilder.bind(Utf8StringLiteral("$columnDefinitions"), columnDefinitionStrings);
|
||||
m_sqlStatementBuilder.bind(Utf8StringLiteral("$columnDefinitions"), columnDefinitionStrings);
|
||||
}
|
||||
|
||||
void CreateTableSqlStatementBuilder::bindAll() const
|
||||
{
|
||||
sqlStatementBuilder.bind(Utf8StringLiteral("$table"), tableName);
|
||||
m_sqlStatementBuilder.bind(Utf8StringLiteral("$table"), m_tableName);
|
||||
|
||||
bindColumnDefinitions();
|
||||
|
||||
if (useWithoutRowId)
|
||||
sqlStatementBuilder.bind(Utf8StringLiteral("$withoutRowId"), Utf8StringLiteral(" WITHOUT ROWID"));
|
||||
if (m_useWithoutRowId)
|
||||
m_sqlStatementBuilder.bind(Utf8StringLiteral("$withoutRowId"), Utf8StringLiteral(" WITHOUT ROWID"));
|
||||
else
|
||||
sqlStatementBuilder.bindEmptyText(Utf8StringLiteral("$withoutRowId"));
|
||||
m_sqlStatementBuilder.bindEmptyText(Utf8StringLiteral("$withoutRowId"));
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace Sqlite
|
||||
|
||||
Reference in New Issue
Block a user