pzhdfy commented on code in PR #68988:
URL: https://github.com/apache/doris/pull/68988#discussion_r4258231619
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/source/PaimonScanNode.java:
##########
@@ -1156,6 +1266,13 @@ protected List<String> getDeleteFiles(TFileRangeDesc
rangeDesc) {
@Override
public List<Split> getSplits(int numBackends) throws UserException {
+ // Primary-key vector (ANN) search is planned entirely by Paimon's
+ // BatchVectorSearchBuilder: one BucketVectorSearchSplit per
(partition,
+ // bucket), serialized and carried to BE, which runs the whole search
+ // (recall + refine + row lookup + DV) in a single paimon-rust call.
+ if (isVectorSearch()) {
+ return getVectorSearchSplits();
Review Comment:
Correct — getVectorSearchSplits plans its own splits and never consults the
file-creation-time bound, so old files' nearest neighbors could leak into the
result. Snapshot/tag/version selectors are fine: they are resolved into the
table handle before the vector search, so the vector split inherits them
naturally.
▎
▎ Fixed in 4790f5a: a scan carrying scan.file-creation-time-millis now
declines the rewrite and runs through the ordinary path, which enforces the
bound in the manifest pass. The vector/ordinary differential regression with
relation OPTIONS is added to the ANN suite (both a keep-all bound and a
far-future bound that must exclude every file).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]