From 404a59c6acf495f8fa42d2bf02780275c4ff19a5 Mon Sep 17 00:00:00 2001 From: Aitozi Date: Tue, 24 Dec 2024 22:54:48 +0800 Subject: [PATCH] [core] optimize the binlog table read performance --- .../org/apache/paimon/table/system/BinlogTable.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/paimon-core/src/main/java/org/apache/paimon/table/system/BinlogTable.java b/paimon-core/src/main/java/org/apache/paimon/table/system/BinlogTable.java index b17d61d44e77..bae351542dca 100644 --- a/paimon-core/src/main/java/org/apache/paimon/table/system/BinlogTable.java +++ b/paimon-core/src/main/java/org/apache/paimon/table/system/BinlogTable.java @@ -102,14 +102,14 @@ private BinlogRead(InnerTableRead dataRead) { @Override public RecordReader createReader(Split split) throws IOException { DataSplit dataSplit = (DataSplit) split; + InternalRow.FieldGetter[] fieldGetters = wrapped.rowType().fieldGetters(); + if (dataSplit.isStreaming()) { return new PackChangelogReader( dataRead.createReader(split), (row1, row2) -> new AuditLogRow( - readProjection, - convertToArray( - row1, row2, wrapped.rowType().fieldGetters())), + readProjection, convertToArray(row1, row2, fieldGetters)), wrapped.rowType()); } else { return dataRead.createReader(split) @@ -117,10 +117,7 @@ public RecordReader createReader(Split split) throws IOException { (row) -> new AuditLogRow( readProjection, - convertToArray( - row, - null, - wrapped.rowType().fieldGetters()))); + convertToArray(row, null, fieldGetters))); } }