This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0-beta
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0-beta by this push:
     new eb72e30f22 [Improvement](multi-catalog) paimon supports projection 
push down (#20522)
eb72e30f22 is described below

commit eb72e30f22f4111dd2a66647aaf8e5f21b5960e6
Author: yuxuan-luo <[email protected]>
AuthorDate: Wed Jun 7 00:39:08 2023 +0800

    [Improvement](multi-catalog) paimon supports projection push down (#20522)
    
    Co-authored-by: hugoluo <[email protected]>
---
 .../src/main/java/org/apache/doris/jni/PaimonJniScanner.java      | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git 
a/fe/java-udf/src/main/java/org/apache/doris/jni/PaimonJniScanner.java 
b/fe/java-udf/src/main/java/org/apache/doris/jni/PaimonJniScanner.java
index 03c8b6564e..18d8d1dc4b 100644
--- a/fe/java-udf/src/main/java/org/apache/doris/jni/PaimonJniScanner.java
+++ b/fe/java-udf/src/main/java/org/apache/doris/jni/PaimonJniScanner.java
@@ -46,6 +46,7 @@ import org.apache.paimon.table.source.TableRead;
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Map;
 
 
@@ -104,7 +105,8 @@ public class PaimonJniScanner extends JniScanner {
         } catch (IOException e) {
             e.printStackTrace();
         }
-        ReadBuilder readBuilder = table.newReadBuilder();
+        ReadBuilder readBuilder = table.newReadBuilder()
+                                    
.withProjection(Arrays.stream(ids).mapToInt(Integer::parseInt).toArray());
         TableRead read = readBuilder.newRead();
         reader = read.createReader(paimonInputSplit.split());
     }
@@ -118,13 +120,13 @@ public class PaimonJniScanner extends JniScanner {
     protected int getNext() throws IOException {
         int rows = 0;
         try {
-            RecordReader.RecordIterator batch;
+            RecordReader.RecordIterator<InternalRow> batch;
             while ((batch = reader.readBatch()) != null) {
                 Object record;
                 while ((record = batch.next()) != null) {
                     columnValue.setOffsetRow((ColumnarRow) record);
                     for (int i = 0; i < ids.length; i++) {
-                        columnValue.setIdx(Integer.parseInt(ids[i]));
+                        columnValue.setIdx(i);
                         appendData(i, columnValue);
                     }
                     rows++;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to