Skip to content

Commit 0af14aa

Browse files
committed
fix
1 parent 00503c3 commit 0af14aa

File tree

3 files changed

+39
-5
lines changed

3 files changed

+39
-5
lines changed

paimon-core/src/main/java/org/apache/paimon/globalindex/GlobalIndexScanner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public GlobalIndexScanner(
8383
.computeIfAbsent(fieldId, k -> new HashMap<>())
8484
.computeIfAbsent(indexType, k -> new HashMap<>())
8585
.computeIfAbsent(
86-
new Range(meta.rowRangeStart(), meta.rowRangeStart()),
86+
new Range(meta.rowRangeStart(), meta.rowRangeEnd()),
8787
k -> new ArrayList<>())
8888
.add(indexFile);
8989
}

paimon-core/src/main/java/org/apache/paimon/table/source/VectorReadImpl.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,12 @@
4141

4242
import java.io.IOException;
4343
import java.util.ArrayList;
44+
import java.util.Comparator;
4445
import java.util.Iterator;
4546
import java.util.List;
4647
import java.util.Optional;
4748
import java.util.Set;
48-
import java.util.stream.Collectors;
49+
import java.util.TreeSet;
4950

5051
import static java.util.Collections.singletonList;
5152
import static org.apache.paimon.utils.ManifestReadThreadPool.randomlyExecuteSequentialReturn;
@@ -114,9 +115,10 @@ public GlobalIndexResult read(List<VectorSearchSplit> splits) {
114115

115116
private Optional<RoaringNavigableMap64> preFilter(List<VectorSearchSplit> splits) {
116117
Set<IndexFileMeta> scalarIndexFiles =
117-
splits.stream()
118-
.flatMap(split -> split.scalarIndexFiles().stream())
119-
.collect(Collectors.toSet());
118+
new TreeSet<>(Comparator.comparing(IndexFileMeta::fileName));
119+
for (VectorSearchSplit split : splits) {
120+
scalarIndexFiles.addAll(split.scalarIndexFiles());
121+
}
120122
if (scalarIndexFiles.isEmpty()) {
121123
return Optional.empty();
122124
}

paimon-core/src/main/java/org/apache/paimon/table/source/VectorSearchSplit.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.io.ObjectOutputStream;
2929
import java.io.Serializable;
3030
import java.util.List;
31+
import java.util.Objects;
3132

3233
/** Split of vector search. */
3334
public class VectorSearchSplit implements Serializable {
@@ -95,4 +96,35 @@ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundE
9596
this.vectorIndexFiles = serializer.deserializeList(view);
9697
this.scalarIndexFiles = serializer.deserializeList(view);
9798
}
99+
100+
@Override
101+
public boolean equals(Object o) {
102+
if (o == null || getClass() != o.getClass()) {
103+
return false;
104+
}
105+
VectorSearchSplit that = (VectorSearchSplit) o;
106+
return rowRangeStart == that.rowRangeStart
107+
&& rowRangeEnd == that.rowRangeEnd
108+
&& Objects.equals(vectorIndexFiles, that.vectorIndexFiles)
109+
&& Objects.equals(scalarIndexFiles, that.scalarIndexFiles);
110+
}
111+
112+
@Override
113+
public int hashCode() {
114+
return Objects.hash(rowRangeStart, rowRangeEnd, vectorIndexFiles, scalarIndexFiles);
115+
}
116+
117+
@Override
118+
public String toString() {
119+
return "VectorSearchSplit{"
120+
+ "rowRangeStart="
121+
+ rowRangeStart
122+
+ ", rowRangeEnd="
123+
+ rowRangeEnd
124+
+ ", vectorIndexFiles="
125+
+ vectorIndexFiles
126+
+ ", scalarIndexFiles="
127+
+ scalarIndexFiles
128+
+ '}';
129+
}
98130
}

0 commit comments

Comments
 (0)