Skip to content

Antalya 26.6 - Fix PostgreSQL server_version to be numeric-only (unblock Npgsql clients)#2034

Open
CarlosFelipeOR wants to merge 1 commit into
antalya-26.6from
fix-postgres-server-version
Open

Antalya 26.6 - Fix PostgreSQL server_version to be numeric-only (unblock Npgsql clients)#2034
CarlosFelipeOR wants to merge 1 commit into
antalya-26.6from
fix-postgres-server-version

Conversation

@CarlosFelipeOR

Copy link
Copy Markdown
Collaborator

Fix #2033

Changelog category (leave one):

  • Bug Fix (user-visible misbehavior in an official stable release)

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Advertise only the numeric portion of the version in the PostgreSQL wire protocol's server_version parameter, so Npgsql-based .NET clients can connect to Altinity builds.

Documentation entry for user-facing changes

...

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Performance tests
  • Aarch64 tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • All Regression
  • Disable CI Cache

Regression jobs to run:

  • Fast suites (mostly <1h)
  • Aggregate Functions (2h)
  • Alter (1.5h)
  • Benchmark (30m)
  • ClickHouse Keeper (1h)
  • Iceberg (2h)
  • LDAP (1h)
  • OAuth (5m)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • S3 Export (2h)
  • Swarms (30m)
  • Tiered Storage (2h)

…unblocking Npgsql clients

Signed-off-by: CarlosFelipeOR <carlosfelipeor@gmail.com>
@github-actions

Copy link
Copy Markdown

Workflow [PR], commit [d5798eb]

@CarlosFelipeOR CarlosFelipeOR requested a review from mkmkme July 10, 2026 09:31
message_transport->send(PostgreSQLProtocol::Messaging::ParameterStatus("client_encoding", "UTF8"));

message_transport->send(PostgreSQLProtocol::Messaging::ParameterStatus("server_version", VERSION_STRING));
/// VERSION_STRING may carry a non-numeric flavour suffix (e.g. ".altinityantalya") that .NET's System.Version.Parse rejects; keep only the leading numeric portion.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should work, but this looks hackish.

What I'd do instead is:

  • Provide a new helper toStringNumericOnly() to ClickHouseVersion.h and ClickHouseVersion.cpp (should to the same as toString() but ignore the suffix
  • Change the code here to look something like this
ClickHouseVersion server_version(VERSION_STRING);
message_transport->send(PostgreSQLProtocol::Messaging::ParameterStatus("server_version", server_version.toStringNumericOnly()))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants