Skip to content

branch-4.1: [fix](paimon) adapt FE for paimon 1.3.1 and iceberg 1.10.1 #60876#61391

Open
xylaaaaa wants to merge 1 commit intoapache:branch-4.1from
xylaaaaa:auto-pick-60876-branch-4.1
Open

branch-4.1: [fix](paimon) adapt FE for paimon 1.3.1 and iceberg 1.10.1 #60876#61391
xylaaaaa wants to merge 1 commit intoapache:branch-4.1from
xylaaaaa:auto-pick-60876-branch-4.1

Conversation

@xylaaaaa
Copy link
Contributor

Summary

Conflict Resolution

  • fe/pom.xml: accepted PR versions (iceberg 1.10.1, maxcompute 0.53.2-public)
  • PaimonScanNodeTest.java: accepted new test method testPaimonDataSystemTableForceJniEvenWhenNativeSupported

)

- bump `doris.hive.catalog.shade.version` to
`3.1.0-PAIMON_JUNWEI_SNAPSHOT`
- bump `iceberg.version` to `1.10.1`
- bump `paimon.version` to `1.3.1`
- adapt paimon metrics API changes in FE:
- `MetricRegistry` is now an interface (use `implements`)
- `withMetricsRegistry` renamed to `withMetricRegistry`

- `cd fe &&
/mnt/disk2/yunyou/chenjunwei/doris_tools/apache-maven-3.9.9/bin/mvn
-DskipTests -pl fe-core -am compile`
- build result: SUCCESS

---------

Co-authored-by: Calvin Kirs <kirs@apache.org>
@xylaaaaa xylaaaaa requested a review from yiguolei as a code owner March 16, 2026 11:34
Copilot AI review requested due to automatic review settings March 16, 2026 11:34
@hello-stephen
Copy link
Contributor

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?

@xylaaaaa
Copy link
Contributor Author

run buildall

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Cherry-picks upstream FE adaptations needed to build/work with newer Paimon (1.3.1) and Iceberg (1.10.1) on branch-4.1, primarily via dependency bumps and small API updates.

Changes:

  • Bump FE dependency versions (Iceberg 1.10.1, Paimon 1.3.1, plus related versions).
  • Adapt FE Paimon metrics hookup to the updated Paimon scan API (withMetricRegistry, MetricRegistry as interface).
  • Update unit tests for new library APIs and add a new Paimon scan test (currently problematic on this branch).

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
fe/pom.xml Updates dependency versions for Iceberg/Paimon/maxcompute and related properties.
fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/source/PaimonScanNode.java Adjusts to Paimon scan metrics API rename (withMetricRegistry).
fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/profile/PaimonMetricRegistry.java Updates implementation to match MetricRegistry becoming an interface.
fe/fe-core/src/test/java/org/apache/doris/datasource/paimon/source/PaimonScanNodeTest.java Updates DataFileMeta construction for Paimon 1.3.1 and adds a new system-table JNI forcing test (does not compile as-is).
fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/IcebergUtilsTest.java Updates manifest-file test scaffolding to avoid GenericManifestFile usage under newer Iceberg.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<properties>
<doris.hive.catalog.shade.version>3.1.0</doris.hive.catalog.shade.version>
<doris.hive.catalog.shade.version>3.1.1</doris.hive.catalog.shade.version>
<!-- iceberg 1.9.1 depends avro on 1.12 -->
@Test
public void testPaimonDataSystemTableForceJniEvenWhenNativeSupported() throws UserException {
TupleDescriptor desc = new TupleDescriptor(new TupleId(3));
PaimonScanNode paimonScanNode = new PaimonScanNode(new PlanNodeId(1), desc, false, sv);
Comment on lines +416 to +420
PaimonSource source = Mockito.mock(PaimonSource.class);
PaimonSysExternalTable binlogTable = Mockito.mock(PaimonSysExternalTable.class);
Mockito.when(binlogTable.getSysTableType()).thenReturn("binlog");
Mockito.when(source.getExternalTable()).thenReturn(binlogTable);
spyPaimonScanNode.setSource(source);
Comment on lines +438 to +439
Assert.assertTrue(spyPaimonScanNode.shouldForceJniForSystemTable());
List<org.apache.doris.spi.Split> splits = spyPaimonScanNode.getSplits(1);
Comment on lines +413 to +415
Mockito.doReturn(Collections.singletonList(dataSplit)).when(spyPaimonScanNode).getPaimonSplitFromAPI();
mockNativeReader(spyPaimonScanNode);

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