Skip to content

Commit dbbe829

Browse files
committed
Refactor: reduce duplicated codes
1 parent d36539c commit dbbe829

File tree

3 files changed

+8
-22
lines changed

3 files changed

+8
-22
lines changed

backends-clickhouse/src/main/java/org/apache/gluten/vectorized/BatchIterator.java

+3-15
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,8 @@
1919
import org.apache.gluten.metrics.IMetrics;
2020
import org.apache.gluten.metrics.NativeMetrics;
2121

22-
import org.apache.spark.sql.execution.utils.CHExecUtil;
23-
import org.apache.spark.sql.vectorized.ColumnVector;
2422
import org.apache.spark.sql.vectorized.ColumnarBatch;
2523

26-
import java.io.IOException;
2724
import java.util.concurrent.atomic.AtomicBoolean;
2825

2926
public class BatchIterator extends GeneralOutIterator {
@@ -43,8 +40,6 @@ public String getId() {
4340

4441
private native boolean nativeHasNext(long nativeHandle);
4542

46-
private native byte[] nativeNext(long nativeHandle);
47-
4843
private native long nativeCHNext(long nativeHandle);
4944

5045
private native void nativeClose(long nativeHandle);
@@ -54,22 +49,15 @@ public String getId() {
5449
private native String nativeFetchMetrics(long nativeHandle);
5550

5651
@Override
57-
public boolean hasNextInternal() throws IOException {
52+
public boolean hasNextInternal() {
5853
return nativeHasNext(handle);
5954
}
6055

6156
@Override
62-
public ColumnarBatch nextInternal() throws IOException {
57+
public ColumnarBatch nextInternal() {
6358
long block = nativeCHNext(handle);
6459
CHNativeBlock nativeBlock = new CHNativeBlock(block);
65-
int cols = nativeBlock.numColumns();
66-
ColumnVector[] columnVectors = new ColumnVector[cols];
67-
for (int i = 0; i < cols; i++) {
68-
columnVectors[i] =
69-
new CHColumnVector(
70-
CHExecUtil.inferSparkDataType(nativeBlock.getTypeByPosition(i)), block, i);
71-
}
72-
return new ColumnarBatch(columnVectors, nativeBlock.numRows());
60+
return nativeBlock.toColumnarBatch();
7361
}
7462

7563
@Override

backends-clickhouse/src/main/java/org/apache/gluten/vectorized/CHColumnVector.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
public class CHColumnVector extends ColumnVector {
2727
private final int columnPosition;
28-
private long blockAddress;
28+
private final long blockAddress;
2929

3030
public CHColumnVector(DataType type, long blockAddress, int columnPosition) {
3131
super(type);

backends-clickhouse/src/main/java/org/apache/gluten/vectorized/CHNativeBlock.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,13 @@ public static void closeFromColumnarBatch(ColumnarBatch cb) {
9090
}
9191

9292
public ColumnarBatch toColumnarBatch() {
93-
ColumnVector[] vectors = new ColumnVector[numColumns()];
94-
for (int i = 0; i < numColumns(); i++) {
93+
int numRows = numRows();
94+
int cols = numColumns();
95+
ColumnVector[] vectors = new ColumnVector[cols];
96+
for (int i = 0; i < cols; i++) {
9597
vectors[i] =
9698
new CHColumnVector(CHExecUtil.inferSparkDataType(getTypeByPosition(i)), blockAddress, i);
9799
}
98-
int numRows = 0;
99-
if (numColumns() != 0) {
100-
numRows = numRows();
101-
}
102100
return new ColumnarBatch(vectors, numRows);
103101
}
104102
}

0 commit comments

Comments
 (0)