Skip to content

[fix](iceberg) Decouple JDBC catalog metadata name#62806

Merged
morningman merged 1 commit intoapache:masterfrom
suxiaogang223:codex/iceberg-jdbc-catalog-name
Apr 26, 2026
Merged

[fix](iceberg) Decouple JDBC catalog metadata name#62806
morningman merged 1 commit intoapache:masterfrom
suxiaogang223:codex/iceberg-jdbc-catalog-name

Conversation

@suxiaogang223
Copy link
Copy Markdown
Member

@suxiaogang223 suxiaogang223 commented Apr 24, 2026

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #59502

Problem Summary:

Doris initialized Iceberg JDBC Catalog with the Doris local catalog name. Iceberg JDBC Catalog uses the SDK catalog initialization name as the catalog_name isolation key in JDBC metadata tables, so a Doris catalog named differently from the writer catalog, such as Spark spark_catalog, could not list namespaces or tables written under that remote catalog_name.

This PR adds required iceberg.jdbc.catalog_name for Iceberg JDBC catalog and uses it as the Iceberg SDK catalog initialization name. The Doris local catalog name remains independent and continues to be used for Doris namespace/table identifier semantics.

Release note

Add required iceberg.jdbc.catalog_name for Iceberg JDBC catalog to specify the remote Iceberg JDBC metadata catalog_name.

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
      • ./run-fe-ut.sh --run org.apache.doris.datasource.property.metastore.IcebergJdbcMetaStorePropertiesTest
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes. Iceberg JDBC catalog now requires iceberg.jdbc.catalog_name, and Doris uses it as the Iceberg JDBC metadata catalog isolation name instead of reusing the Doris local catalog name.
  • Does this need documentation?

    • No.
    • Yes. Follow-up Doris website documentation should describe the new required Iceberg JDBC catalog property.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary: Doris initialized Iceberg JDBC Catalog with the Doris local catalog name, which also controls the catalog_name isolation key in Iceberg JDBC metadata tables. This made Doris unable to read metadata written under a different Iceberg JDBC catalog_name, such as Spark's catalog name.

### Release note

Add required iceberg.jdbc.catalog_name for Iceberg JDBC catalog to decouple Doris local catalog name from the Iceberg JDBC metadata catalog_name.

### Check List (For Author)

- Test: Unit Test
    - ./run-fe-ut.sh --run org.apache.doris.datasource.property.metastore.IcebergJdbcMetaStorePropertiesTest
    - Regression test not run per request; updated test_iceberg_jdbc_catalog to use a custom Doris catalog name with iceberg.jdbc.catalog_name.
- Behavior changed: Yes. Iceberg JDBC catalog now requires iceberg.jdbc.catalog_name and uses it as the SDK catalog name while preserving the Doris local catalog name.
- Does this need documentation: Yes (follow-up docs can describe the new required catalog property).
@Thearas
Copy link
Copy Markdown
Contributor

Thearas commented Apr 24, 2026

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@suxiaogang223 suxiaogang223 marked this pull request as ready for review April 24, 2026 08:29
@suxiaogang223
Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen
Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 5.26% (2/38) 🎉
Increment coverage report
Complete coverage report

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Apr 26, 2026
@github-actions
Copy link
Copy Markdown
Contributor

PR approved by at least one committer and no changes requested.

@github-actions
Copy link
Copy Markdown
Contributor

PR approved by anyone and no changes requested.

@morningman morningman merged commit b5fe79f into apache:master Apr 26, 2026
35 of 36 checks passed
github-actions Bot pushed a commit that referenced this pull request Apr 26, 2026
### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #59502

Problem Summary:

Doris initialized Iceberg JDBC Catalog with the Doris local catalog
name. Iceberg JDBC Catalog uses the SDK catalog initialization name as
the `catalog_name` isolation key in JDBC metadata tables, so a Doris
catalog named differently from the writer catalog, such as Spark
`spark_catalog`, could not list namespaces or tables written under that
remote `catalog_name`.

This PR adds required `iceberg.jdbc.catalog_name` for Iceberg JDBC
catalog and uses it as the Iceberg SDK catalog initialization name. The
Doris local catalog name remains independent and continues to be used
for Doris namespace/table identifier semantics.
morningman pushed a commit to apache/doris-website that referenced this pull request Apr 26, 2026
## Description

Document the required `iceberg.jdbc.catalog_name` property for Iceberg
JDBC Catalog.

This updates the current and 4.x Iceberg Catalog docs in both English
and Chinese:

- Add `jdbc` to the supported `iceberg.catalog.type` values.
- Add required `iceberg.jdbc.catalog_name` to the Iceberg JDBC Catalog
parameter table.
- Explain that it maps to the `catalog_name` isolation key in Iceberg
JDBC metadata tables and can differ from the Doris local catalog name.
- Update PostgreSQL, MySQL, and SQLite examples to include the property.
- Correct `iceberg.jdbc.user` and `iceberg.jdbc.password` from required
to optional.
- Note that `iceberg.jdbc.driver_class` is required when
`iceberg.jdbc.driver_url` is specified.

Related Doris PR: apache/doris#62806
yiguolei pushed a commit that referenced this pull request May 1, 2026
…#62844)

Cherry-picked from #62806

Co-authored-by: Socrates <suyiteng@selectdb.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. dev/4.1.1-merged kind/need-document-merged reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants