[fix](stats) Fix analyze failed when there are thousands of partitions. (#24521)

It's caused by we used same query id for multiple queries of same olap analyze task, but many structures related to query execution depends on query id.
This commit is contained in:
AKIRA
2023-09-18 18:27:10 +09:00
committed by GitHub
parent dcabc06510
commit 67e8951b72
3 changed files with 24 additions and 5 deletions

View File

@ -2571,6 +2571,9 @@ public class StmtExecutor {
public List<ResultRow> executeInternalQuery() {
LOG.debug("INTERNAL QUERY: " + originStmt.toString());
UUID uuid = UUID.randomUUID();
TUniqueId queryId = new TUniqueId(uuid.getMostSignificantBits(), uuid.getLeastSignificantBits());
context.setQueryId(queryId);
try {
List<ResultRow> resultRows = new ArrayList<>();
try {

View File

@ -73,7 +73,6 @@ import org.apache.doris.statistics.ResultRow;
import org.apache.doris.statistics.StatisticConstants;
import org.apache.doris.system.Frontend;
import org.apache.doris.system.SystemInfoService;
import org.apache.doris.thrift.TUniqueId;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
@ -105,7 +104,6 @@ import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.StringJoiner;
import java.util.UUID;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -188,9 +186,6 @@ public class StatisticsUtil {
connectContext.setDatabase(FeConstants.INTERNAL_DB_NAME);
connectContext.setQualifiedUser(UserIdentity.ROOT.getQualifiedUser());
connectContext.setCurrentUserIdentity(UserIdentity.ROOT);
UUID uuid = UUID.randomUUID();
TUniqueId queryId = new TUniqueId(uuid.getMostSignificantBits(), uuid.getLeastSignificantBits());
connectContext.setQueryId(queryId);
connectContext.setStartTime();
connectContext.setCluster(SystemInfoService.DEFAULT_CLUSTER);
return new AutoCloseConnectContext(connectContext);