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(")");