Skip to content

[#12070] fix(jdbc-clickhouse): complete V3 type compatibility#12086

Draft
nevzheng wants to merge 5 commits into
apache:mainfrom
nevzheng:codex/v3-phase2-clickhouse
Draft

[#12070] fix(jdbc-clickhouse): complete V3 type compatibility#12086
nevzheng wants to merge 5 commits into
apache:mainfrom
nevzheng:codex/v3-phase2-clickhouse

Conversation

@nevzheng

Copy link
Copy Markdown
Collaborator

What changes were proposed in this pull request?

Define and document ClickHouse compatibility for the five Gravitino V3-native type families.

Type family Outcome
Nanosecond timestamps Round-trip exact precision-9 timestamps, including the UTC timezone-aware representation.
Variant Reject because the available JSON-like types do not implement the complete Variant contract.
Unknown/Null Reject.
Geometry Reject because CRS metadata cannot be recovered faithfully.
Geography Reject because CRS and edge-algorithm metadata cannot be recovered faithfully.

Why are the changes needed?

ClickHouse can represent nanosecond timestamps exactly, but the remaining families would lose type identity or parameters. The connector must distinguish the exact mapping from the lossy ones.

Fix: #12070

Related: #12056

Shared JDBC preflight: #12065

Shared JDBC preflight PR: #12081

Does this PR introduce any user-facing change?

Yes. Precision-9 timestamps gain an exact mapping; unsupported Variant, Unknown, and spatial schemas fail before DDL.

How was this patch tested?

  • Added exact timestamp round-trip coverage.
  • Added converter and custom-operation rejection coverage.
  • Covered Docker rejected-create and no-table behavior.
  • Updated docs/jdbc-clickhouse-catalog.md.

@github-actions

Copy link
Copy Markdown

Code Coverage Report

Overall Project 67.9% +0.04% 🟢
Files changed 98.35% 🟢

Module Coverage
aliyun 1.72% 🔴
api 47.82% 🟢
authorization-common 85.96% 🟢
aws 42.04% 🟢
azure 2.47% 🔴
catalog-common 9.92% 🔴
catalog-fileset 80.23% 🟢
catalog-glue 66.91% 🟢
catalog-hive 79.42% 🟢
catalog-jdbc-clickhouse 82.08% +1.62% 🟢
catalog-jdbc-common 44.22% 🟢
catalog-jdbc-doris 81.6% 🟢
catalog-jdbc-hologres 54.03% 🟢
catalog-jdbc-mysql 79.23% 🟢
catalog-jdbc-oceanbase 80.91% 🟢
catalog-jdbc-postgresql 82.29% 🟢
catalog-jdbc-starrocks 78.51% 🟢
catalog-kafka 77.01% 🟢
catalog-lakehouse-generic 59.18% 🟢
catalog-lakehouse-hudi 79.1% 🟢
catalog-lakehouse-iceberg 86.56% 🟢
catalog-lakehouse-paimon 84.25% 🟢
catalog-model 77.72% 🟢
cli 44.5% 🟢
client-java 78.29% 🟢
common 51.95% 🟢
core 82.53% 🟢
filesystem-hadoop3 77.3% 🟢
flink 0.0% 🔴
flink-common 47.09% 🟢
flink-runtime 0.0% 🔴
gcp 14.12% 🔴
hadoop-auth 68.0% 🟢
hadoop-common 12.7% 🔴
hive-metastore-common 53.29% 🟢
iceberg-common 63.63% 🟢
iceberg-rest-server 74.97% 🟢
idp-basic 86.02% 🟢
integration-test-common 0.0% 🔴
jobs 66.17% 🟢
lance-common 20.67% 🔴
lance-rest-server 64.84% 🟢
lineage 53.02% 🟢
optimizer 83.17% 🟢
optimizer-api 21.95% 🔴
server 85.97% 🟢
server-common 75.78% 🟢
spark 28.57% 🔴
spark-common 46.01% 🟢
tencent 69.84% 🟢
trino-connector 40.29% 🟢
Files
Module File Coverage
catalog-jdbc-clickhouse ClickHouseTypeConverter.java 99.02% 🟢
TypeUtils.java 94.74% 🟢

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.

[Subtask] Complete V3 type compatibility for the ClickHouse catalog

1 participant