From 3565aad630864ecdbe53fdaa501ea708555b3c7c Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sun, 30 Apr 2023 18:30:36 -0400 Subject: New upstream version 3.4.4+dfsg. --- .../parser/statementtokenbuilder.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp') diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp index faf8c8e..abe2578 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/statementtokenbuilder.cpp @@ -1,6 +1,7 @@ #include "statementtokenbuilder.h" #include "parser/ast/sqlitestatement.h" #include "common/utils_sql.h" +#include "common/global.h" #include StatementTokenBuilder& StatementTokenBuilder::withKeyword(const QString& value) @@ -23,7 +24,7 @@ StatementTokenBuilder&StatementTokenBuilder::withStringPossiblyOther(const QStri if (value.contains("\"")) return withOther(wrapObjIfNeeded(value)); else - return withOther(wrapObjName(value, NameWrapper::DOUBLE_QUOTE)); + return withOther(wrapObjName(value, NameWrapper::DOUBLE_QUOTE), false); } StatementTokenBuilder& StatementTokenBuilder::withOtherList(const QList& value, const QString& separator) @@ -91,7 +92,7 @@ StatementTokenBuilder& StatementTokenBuilder::withBlob(const QString& value) StatementTokenBuilder& StatementTokenBuilder::withString(const QString& value) { - return with(Token::STRING, wrapStringIfNeeded(value)); + return with(Token::STRING, wrapString(value)); } StatementTokenBuilder& StatementTokenBuilder::withConflict(SqliteConflictAlgo onConflict) @@ -145,6 +146,13 @@ StatementTokenBuilder& StatementTokenBuilder::withLiteralValue(const QVariant& v return *this; } + if (value.userType() == QVariant::ByteArray) + { + static_qstring(blobLiteral, "X'%1'"); + withBlob(blobLiteral.arg(QString::fromLatin1(value.toByteArray().toHex()))); + return *this; + } + bool ok; if (value.userType() == QVariant::Double) { @@ -163,14 +171,7 @@ StatementTokenBuilder& StatementTokenBuilder::withLiteralValue(const QVariant& v return *this; } - QString str = value.toString(); - if (str.startsWith("x'", Qt::CaseInsensitive) && str.endsWith("'")) - { - withBlob(str); - return *this; - } - - withString(str); + withString(value.toString()); return *this; } -- cgit v1.2.3