From db25edfd875a7f9be2e20a647c32774b586716cd Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sun, 12 Jul 2026 22:23:36 +0900 Subject: [PATCH] fix(qe-m2-03): normalize libpq-style options parameter to Search Path for Npgsql compatibility --- .../HistoryIngestionPgTests.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/dotnet/QuantEngine.Core.Tests/HistoryIngestionPgTests.cs b/src/dotnet/QuantEngine.Core.Tests/HistoryIngestionPgTests.cs index 55c671f3..a0c40809 100644 --- a/src/dotnet/QuantEngine.Core.Tests/HistoryIngestionPgTests.cs +++ b/src/dotnet/QuantEngine.Core.Tests/HistoryIngestionPgTests.cs @@ -50,11 +50,25 @@ namespace QuantEngine.Core.Tests string? successfulConnStr = null; foreach (var rawDsn in candidates) { + string connStr = rawDsn; + if (rawDsn.Contains("host=") || rawDsn.Contains("dbname=")) + { + connStr = rawDsn + .Replace("options='-c search_path=quantengine'", "") + .Replace("options=\"-c search_path=quantengine\"", "") + .Replace("dbname=", "Database=") + .Replace("user=", "Username=") + .Replace("host=", "Host=") + .Replace("port=", "Port=") + .Trim(); + connStr = string.Join(";", connStr.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)) + ";Search Path=quantengine"; + } + try { - using var conn = new NpgsqlConnection(rawDsn); + using var conn = new NpgsqlConnection(connStr); await conn.OpenAsync(); - successfulConnStr = rawDsn; + successfulConnStr = connStr; break; // Found working connection } catch