forked from qt-creator/qt-creator
Clang: Cleanup string interface of sqlite
We only will need the utf8 optimized SmallString for the indexer database. So we remove all other string bindings, QByteArray and QVariant. Change-Id: I4a77901a80b26bf292fc85df535c2ccf3a8ab52f Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -25,7 +25,9 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "utf8string.h"
|
||||
#include "sqliteglobal.h"
|
||||
|
||||
#include <utils/smallstringvector.h>
|
||||
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
@@ -34,48 +36,51 @@ namespace Sqlite {
|
||||
|
||||
class SQLITE_EXPORT SqlStatementBuilder
|
||||
{
|
||||
using BindingPair = std::pair<Utf8String, Utf8String>;
|
||||
using BindingPair = std::pair<Utils::SmallString, Utils::SmallString>;
|
||||
public:
|
||||
SqlStatementBuilder(const Utf8String &m_sqlTemplate);
|
||||
SqlStatementBuilder(Utils::SmallString &&m_sqlTemplate);
|
||||
|
||||
void bindEmptyText(const Utf8String &name);
|
||||
void bind(const Utf8String &name, const Utf8String &text);
|
||||
void bind(const Utf8String &name, const Utf8StringVector &textVector);
|
||||
void bind(const Utf8String &name, int value);
|
||||
void bind(const Utf8String &name, const QVector<int> &integerVector);
|
||||
void bindWithInsertTemplateParameters(const Utf8String &name, const Utf8StringVector &columns);
|
||||
void bindWithUpdateTemplateParameters(const Utf8String &name, const Utf8StringVector &columns);
|
||||
void bindWithUpdateTemplateNames(const Utf8String &name, const Utf8StringVector &columns);
|
||||
void bindEmptyText(Utils::SmallString &&name);
|
||||
void bind(Utils::SmallString &&name, Utils::SmallString &&text);
|
||||
void bind(Utils::SmallString &&name, const Utils::SmallStringVector &textVector);
|
||||
void bind(Utils::SmallString &&name, int value);
|
||||
void bind(Utils::SmallString &&name, const std::vector<int> &integerVector);
|
||||
void bindWithInsertTemplateParameters(Utils::SmallString &&name,
|
||||
const Utils::SmallStringVector &columns);
|
||||
void bindWithUpdateTemplateParameters(Utils::SmallString &&name,
|
||||
const Utils::SmallStringVector &columns);
|
||||
void bindWithUpdateTemplateNames(Utils::SmallString &&name,
|
||||
const Utils::SmallStringVector &columns);
|
||||
void clear();
|
||||
|
||||
Utf8String sqlStatement() const;
|
||||
Utils::SmallStringView sqlStatement() const;
|
||||
|
||||
bool isBuild() const;
|
||||
|
||||
static Utf8String columnTypeToString(ColumnType columnType);
|
||||
static Utils::SmallString columnTypeToString(ColumnType columnType);
|
||||
|
||||
protected:
|
||||
static const Utf8String insertTemplateParameters(const Utf8StringVector &columns);
|
||||
static const Utf8String updateTemplateParameters(const Utf8StringVector &columns);
|
||||
static const Utf8String updateTemplateNames(const Utf8StringVector &columns);
|
||||
static Utils::SmallString insertTemplateParameters(const Utils::SmallStringVector &columns);
|
||||
static Utils::SmallString updateTemplateParameters(const Utils::SmallStringVector &columns);
|
||||
static Utils::SmallString updateTemplateNames(const Utils::SmallStringVector &columns);
|
||||
|
||||
void sortBindings() const;
|
||||
void generateSqlStatement() const;
|
||||
|
||||
void changeBinding(const Utf8String &name, const Utf8String &text);
|
||||
void changeBinding(Utils::SmallString &&name, Utils::SmallString &&text);
|
||||
|
||||
void clearSqlStatement();
|
||||
void checkIfPlaceHolderExists(const Utf8String &name) const;
|
||||
void checkIfPlaceHolderExists(Utils::SmallStringView name) const;
|
||||
void checkIfNoPlaceHoldersAynmoreExists() const;
|
||||
void checkBindingTextIsNotEmpty(const Utf8String &text) const;
|
||||
void checkBindingTextVectorIsNotEmpty(const Utf8StringVector &textVector) const;
|
||||
void checkBindingIntegerVectorIsNotEmpty(const QVector<int> &integerVector) const;
|
||||
void checkBindingTextIsNotEmpty(Utils::SmallStringView text) const;
|
||||
void checkBindingTextVectorIsNotEmpty(const Utils::SmallStringVector &textVector) const;
|
||||
void checkBindingIntegerVectorIsNotEmpty(const std::vector<int> &integerVector) const;
|
||||
|
||||
Q_NORETURN static void throwException(const char *whatHasHappened, const char *errorMessage);
|
||||
|
||||
private:
|
||||
Utf8String m_sqlTemplate;
|
||||
mutable Utf8String m_sqlStatement_;
|
||||
Utils::SmallString m_sqlTemplate;
|
||||
mutable Utils::SmallString m_sqlStatement;
|
||||
mutable std::vector<BindingPair> m_bindings;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user