From dab3dd31133f755921631ab77276156e8fce51c1 Mon Sep 17 00:00:00 2001 From: y00949552 Date: Mon, 29 Jun 2026 16:32:26 +0800 Subject: [PATCH 1/5] Use signed type for error status --- psqlodbc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psqlodbc.h b/psqlodbc.h index 87e09ceb..03c5a868 100644 --- a/psqlodbc.h +++ b/psqlodbc.h @@ -652,7 +652,7 @@ typedef struct QueryInfo_ /* Used to save the error information */ typedef struct { - UInt4 status; + Int4 status; /* statement warnings are negative */ UInt4 errsize; UInt4 errpos; UInt2 recsize; From 66fd25c194605793a5034352284621984fa9e801 Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Wed, 1 Jul 2026 07:38:11 -0400 Subject: [PATCH 2/5] Update Win32/Win64 OpenSSL to 3.5.7 slproweb.com no longer hosts the 3.5.6 installer (returns 404), which broke the Windows CI download step. Bump to 3.5.7, which is available. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a3d2f712..e5fc8475 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ env: # PostgreSQL build from source. POSTGRESQL_SOURCE_TAG: 'REL_18_STABLE' - OPENSSL_VERSION: '3_5_6' + OPENSSL_VERSION: '3_5_7' PKGCONFIGLITE_VERSION: '0.28-1' WINFLEXBISON_VERSION: '2.5.24' WORKFLOW_VERSION_POSTGRESQL: '1' # increment to invalidate cache From 5b32b0ec766e8e820e135044e31f66a74ea103a9 Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Wed, 1 Jul 2026 09:45:24 -0400 Subject: [PATCH 3/5] Add Visual Studio 2026 (v18.0 / v145 toolset) support to Windows build The GitHub Actions windows runner image rolled to Visual Studio 18.0 (VS 2026, MSVC 14.51). The build scripts' hardcoded version switches only recognized up to VS 17.0, so Find-MSBuild threw 'Please use VC10 or later'. BuildAll.ps1 caught that and returned without compiling any drivers, and the WiX step then failed with confusing 'cannot find psqlodbc30a.dll' errors. Map VS 18.0 to MSBuild toolset 18, PlatformToolset v145 (VS 2026's toolset; v144 was skipped by Microsoft), and reuse the vs2022 mimalloc project files (the pinned mimalloc submodule has no vs2026 ide dir; the build passes PlatformToolset=v145 explicitly). --- winbuild/BuildAll.ps1 | 1 + winbuild/MSProgram-Get.psm1 | 2 ++ 2 files changed, 3 insertions(+) diff --git a/winbuild/BuildAll.ps1 b/winbuild/BuildAll.ps1 index ac8bc70d..6ede2860 100755 --- a/winbuild/BuildAll.ps1 +++ b/winbuild/BuildAll.ps1 @@ -116,6 +116,7 @@ function buildPlatform([xml]$configInfo, [string]$Platform) "15.0" { $mimallocIdeDir = "vs2017" } "16.0" { $mimallocIdeDir = "vs2019" } "17.0" { $mimallocIdeDir = "vs2022" } + "18.0" { $mimallocIdeDir = "vs2022" } default { throw "Unable to resolve mimalloc IDE directory for VC ${VCVersion}."} } diff --git a/winbuild/MSProgram-Get.psm1 b/winbuild/MSProgram-Get.psm1 index b8dfacd8..8153d932 100644 --- a/winbuild/MSProgram-Get.psm1 +++ b/winbuild/MSProgram-Get.psm1 @@ -70,6 +70,7 @@ function Find-MSBuild "15.0" { $toolsout = 15 } "16.0" { $toolsout = 16 } "17.0" { $toolsout = 17 } + "18.0" { $toolsout = 18 } default { throw "Selected Visual Studio is Version ${VisualStudioVersion}. Please use VC10 or later"} } # @@ -154,6 +155,7 @@ function Find-MSBuild "15.0" {$Toolsetv="v141_xp"} "16.0" {$Toolsetv="v142"} "17.0" {$Toolsetv="v143"} + "18.0" {$Toolsetv="v145"} } } # avoid a bug of Windows7.1SDK PlatformToolset From 6359199d941515456ffc66112458de163f10b37f Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Wed, 1 Jul 2026 09:59:07 -0400 Subject: [PATCH 4/5] Start PostgreSQL service in CI after install The install step configured the postgresql-x64-17 service to auto-start but never started it in the current job, so tests had no server to connect to. Explicitly start the service and wait briefly for it to accept connections. --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e5fc8475..ce11fa6c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -305,6 +305,8 @@ jobs: echo on C:\OTHERBIN\postgresql_install.exe --mode unattended --unattendedmodeui none --superpassword password --enable-components server sc config "postgresql-x64-17" start= auto + sc start "postgresql-x64-17" + timeout /t 5 /nobreak # ----------------------------------------------------------------- # Build and test psqlodbc From 464922946c42dc03f8c1c90a7f62a834aa4b020a Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Wed, 1 Jul 2026 10:05:23 -0400 Subject: [PATCH 5/5] Use ping instead of timeout for CI delay timeout /t requires interactive console input, which GitHub Actions does not provide ("ERROR: Input redirection is not supported"). Use ping -n 6 127.0.0.1 as a ~5s delay that works in non-interactive shells. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ce11fa6c..c9637a77 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -306,7 +306,7 @@ jobs: C:\OTHERBIN\postgresql_install.exe --mode unattended --unattendedmodeui none --superpassword password --enable-components server sc config "postgresql-x64-17" start= auto sc start "postgresql-x64-17" - timeout /t 5 /nobreak + ping -n 6 127.0.0.1 >nul # ----------------------------------------------------------------- # Build and test psqlodbc