From 672cedea870cea42fb1cd72845745987ea2e8038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B5=E5=8D=8E?= <345265198@qq.com> Date: Tue, 24 May 2022 13:47:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=8C=BA=E5=88=86=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sinks/PostgreSQL/PostgreSQLSink.cs | 9 +++++---- .../Sinks/PostgreSQL/TableCreator.cs | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/PostgreSQLSink.cs b/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/PostgreSQLSink.cs index 5168516..7696172 100644 --- a/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/PostgreSQLSink.cs +++ b/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/PostgreSQLSink.cs @@ -16,6 +16,7 @@ public class PostgreSQLSink : PeriodicBatchingSink private readonly IFormatProvider _formatProvider; private readonly bool _useCopy; + private const string split ="\""; public const int DefaultBatchSizeLimit = 30; public const int DefaultQueueLimit = Int32.MaxValue; @@ -116,10 +117,10 @@ private string GetFullTableName(string tableName, string schemaName) var schemaPrefix = String.Empty; if (!String.IsNullOrEmpty(schemaName)) { - schemaPrefix = schemaName + "."; + schemaPrefix = split + schemaName+ split+"."; } - return schemaPrefix + tableName; + return schemaPrefix + split + tableName + split; } @@ -184,7 +185,7 @@ private void ProcessEventsByCopyCommand(IEnumerable events, NpgsqlConn private string GetCopyCommand() { - var columns = String.Join(", ", _columnOptions.Keys); + var columns = split+String.Join($"{split},{split}", _columnOptions.Keys)+ split; return $"COPY {_fullTableName}({columns}) FROM STDIN BINARY;"; @@ -192,7 +193,7 @@ private string GetCopyCommand() private string GetInsertQuery() { - var columns = String.Join(", ", _columnOptions.Keys); + var columns = $"{split}{String.Join($"{split}, {split}", _columnOptions.Keys)}{split}"; var parameters = String.Join(", ", _columnOptions.Keys.Select(cn => ":" + ClearColumnNameForParameterName(cn))); diff --git a/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/TableCreator.cs b/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/TableCreator.cs index f1df7f9..44386c7 100644 --- a/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/TableCreator.cs +++ b/Serilog.Sinks.PostgreSQL/Sinks/PostgreSQL/TableCreator.cs @@ -25,11 +25,12 @@ public static void CreateTable(NpgsqlConnection connection, string tableName, ID private static string GetCreateTableQuery(string tableName, IDictionary columnsInfo) { + var split = "\""; var builder = new StringBuilder("CREATE TABLE IF NOT EXISTS "); builder.Append(tableName); builder.AppendLine(" ("); - builder.AppendLine(String.Join(",\n", columnsInfo.Select(r => $" {r.Key} {GetSqlTypeStr(r.Value.DbType, r.Value.ColumnLength)} "))); + builder.AppendLine(String.Join(",\n", columnsInfo.Select(r => $" {split}{r.Key}{split} {GetSqlTypeStr(r.Value.DbType, r.Value.ColumnLength)} "))); builder.AppendLine(")");