branch-2.1: [fix](split)Fixed the bug that batch mode split could not query data in multiple be scenarios. #46218 (#46227)

Cherry-picked from #46218

Co-authored-by: daidai <changyuwei@selectdb.com>
This commit is contained in:
github-actions[bot]
2025-01-01 00:34:48 +08:00
committed by GitHub
parent 2f6c13d4c0
commit 9593a7bfc3

View File

@ -339,7 +339,10 @@ public abstract class FileQueryScanNode extends FileScanNode {
totalFileSize = fileSplit.getLength() * selectedSplitNum;
long maxWaitTime = ConnectContext.get().getSessionVariable().getFetchSplitsMaxWaitTime();
// Not accurate, only used to estimate concurrency.
int numSplitsPerBE = numApproximateSplits() / backendPolicy.numBackends();
// Here, we must take the max of 1, because
// in the case of multiple BEs, `numApproximateSplits() / backendPolicy.numBackends()` may be 0,
// and finally numSplitsPerBE is 0, resulting in no data being queried.
int numSplitsPerBE = Math.max(numApproximateSplits() / backendPolicy.numBackends(), 1);
for (Backend backend : backendPolicy.getBackends()) {
SplitSource splitSource = new SplitSource(backend, splitAssignment, maxWaitTime);
splitSources.add(splitSource);