Skip to content

Commit aac0911

Browse files
committed
Use query quoting from dbconnector
1 parent d6bd21e commit aac0911

2 files changed

Lines changed: 12 additions & 34 deletions

File tree

src/postgres_utils.cpp

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#include "postgres_utils.hpp"
22

3+
#include "dbconnector/query/query_writer.hpp"
4+
35
#include "storage/postgres_schema_entry.hpp"
46
#include "storage/postgres_transaction.hpp"
57
#include "postgres_type_oids.hpp"
@@ -547,18 +549,9 @@ string PostgresUtils::QuotePostgresIdentifier(const string &text) {
547549
}
548550

549551
string PostgresUtils::EscapeConnectionString(const string &input) {
550-
string result = "'";
551-
for (auto c : input) {
552-
if (c == '\\') {
553-
result += "\\\\";
554-
} else if (c == '\'') {
555-
result += "\\'";
556-
} else {
557-
result += c;
558-
}
559-
}
560-
result += "'";
561-
return result;
552+
using namespace dbconnector::query;
553+
auto config = QueryWriter::CreateConfig('\'', QuoteEscapeStyle::BACKSLASH);
554+
return QueryWriter::WriteQuotedAndEscaped(config, input);
562555
}
563556

564557
string PostgresUtils::ExtractConnectionOption(const KeyValueSecret &kv_secret, const string &name) {
@@ -575,31 +568,16 @@ string PostgresUtils::ExtractConnectionOption(const KeyValueSecret &kv_secret, c
575568
return result;
576569
}
577570

578-
string PostgresUtils::EscapeQuotes(const string &text, char quote) {
579-
string result;
580-
for (auto c : text) {
581-
if (c == quote) {
582-
result += quote;
583-
result += quote;
584-
} else if (c == '\\') {
585-
result += "\\\\";
586-
} else {
587-
result += c;
588-
}
589-
}
590-
return result;
591-
}
592-
593-
string PostgresUtils::WriteQuoted(const string &text, char quote) {
594-
return string(1, quote) + EscapeQuotes(text, quote) + string(1, quote);
595-
}
596-
597571
string PostgresUtils::WriteLiteral(const string &literal) {
598-
return WriteQuoted(literal, '\'');
572+
using namespace dbconnector::query;
573+
auto config = QueryWriter::CreateConfig('\'', QuoteEscapeStyle::DOUBLE_QUOTE);
574+
return QueryWriter::WriteQuotedAndEscaped(config, literal);
599575
}
600576

601577
string PostgresUtils::WriteIdentifier(const string &identifier) {
602-
return WriteQuoted(identifier, '"');
578+
using namespace dbconnector::query;
579+
auto config = QueryWriter::CreateConfig('"', QuoteEscapeStyle::DOUBLE_QUOTE);
580+
return QueryWriter::WriteQuotedAndEscaped(config, identifier);
603581
}
604582

605583
} // namespace duckdb

0 commit comments

Comments
 (0)