Skip to content

feat: add UInt128 type support for PostgreSQL to ClickHouse replication#4027

Open
testtt234 wants to merge 2 commits intoPeerDB-io:mainfrom
testtt234:feat/uint128-support-v2
Open

feat: add UInt128 type support for PostgreSQL to ClickHouse replication#4027
testtt234 wants to merge 2 commits intoPeerDB-io:mainfrom
testtt234:feat/uint128-support-v2

Conversation

@testtt234
Copy link
Copy Markdown

When PostgreSQL has a uint128 extension (pg_uint128), PeerDB now recognizes the type and maps it natively to ClickHouse's UInt128 instead of falling back to string. Adds full pipeline support: type enum, QValue struct, Avro serialization (16-byte fixed), CDC handling, and connector mappings.

When PostgreSQL has a uint128 extension (pg_uint128), PeerDB now recognizes
the type and maps it natively to ClickHouse's UInt128 instead of falling
back to string. Adds full pipeline support: type enum, QValue struct,
Avro serialization (16-byte fixed), CDC handling, and connector mappings.
@testtt234 testtt234 had a problem deploying to external-contributor March 9, 2026 14:25 — with GitHub Actions Failure
@testtt234 testtt234 had a problem deploying to external-contributor March 9, 2026 14:25 — with GitHub Actions Failure
@testtt234 testtt234 had a problem deploying to external-contributor March 9, 2026 14:25 — with GitHub Actions Failure
@testtt234 testtt234 had a problem deploying to external-contributor March 9, 2026 14:25 — with GitHub Actions Failure
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Mar 9, 2026

CLA assistant check
All committers have signed the CLA.

@ilidemi
Copy link
Copy Markdown
Contributor

ilidemi commented Mar 10, 2026

We aim to support the most popular extensions (like pgvector) but pg_uint128 would be below that bar. Given it does propagate as a string and ClickHouse supports arbitrary transformations in MVs, we'd direct people to follow that route (or use a fork).

@testtt234
Copy link
Copy Markdown
Author

but, it's literally just 90 lines of code

@testtt234
Copy link
Copy Markdown
Author

testtt234 commented Mar 21, 2026

It's not about supporting postgres extension.
it's about supporting postgres column type

just because conversion to string doens't break the replication, it doens't mean it doens't break the applications.

please

@testtt234
Copy link
Copy Markdown
Author

testtt234 commented Mar 21, 2026

It doesn't even make sense business wise, just because an extension is popular it doesn't mean enterprise businesses would use it.
or just because an extension isn't popular that enterprise would not use it.

pg-uint128 is type of extension only enterprise and deep tech startups would ever use, it is an edge case for you guys, to support broader spectrum of deep tech startups

@testtt234 testtt234 requested a deployment to external-contributor March 26, 2026 01:35 — with GitHub Actions Waiting
@testtt234 testtt234 requested a deployment to external-contributor March 26, 2026 01:35 — with GitHub Actions Waiting
@testtt234 testtt234 requested a deployment to external-contributor March 26, 2026 01:35 — with GitHub Actions Waiting
@testtt234 testtt234 requested a deployment to external-contributor March 26, 2026 01:35 — with GitHub Actions Waiting
@testtt234 testtt234 requested a deployment to external-contributor March 26, 2026 01:35 — with GitHub Actions Waiting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants