[fix](workload-group) fix workload group non-existence error (#20428)
This commit is contained in:
@ -560,9 +560,9 @@ public class StmtExecutor {
|
||||
|
||||
private void handleQueryWithRetry(TUniqueId queryId) throws Exception {
|
||||
// queue query here
|
||||
if (!parsedStmt.isExplain() && Config.enable_workload_group && Config.enable_query_queue) {
|
||||
this.queryQueue = analyzer.getEnv().getWorkloadGroupMgr()
|
||||
.getWorkloadGroupQueryQueue(context.sessionVariable.workloadGroup);
|
||||
if (!parsedStmt.isExplain() && Config.enable_workload_group && Config.enable_query_queue
|
||||
&& context.getSessionVariable().enablePipelineEngine()) {
|
||||
this.queryQueue = analyzer.getEnv().getWorkloadGroupMgr().getWorkloadGroupQueryQueue(context);
|
||||
try {
|
||||
this.offerRet = queryQueue.offer();
|
||||
} catch (InterruptedException e) {
|
||||
|
||||
@ -102,10 +102,7 @@ public class WorkloadGroupMgr implements Writable, GsonPostProcessable {
|
||||
}
|
||||
|
||||
public List<TPipelineWorkloadGroup> getWorkloadGroup(ConnectContext context) throws UserException {
|
||||
String groupName = context.getSessionVariable().getWorkloadGroup();
|
||||
if (Strings.isNullOrEmpty(groupName)) {
|
||||
groupName = Env.getCurrentEnv().getAuth().getWorkloadGroup(context.getQualifiedUser());
|
||||
}
|
||||
String groupName = getWorkloadGroupName(context);
|
||||
List<TPipelineWorkloadGroup> workloadGroups = Lists.newArrayList();
|
||||
readLock();
|
||||
try {
|
||||
@ -120,7 +117,8 @@ public class WorkloadGroupMgr implements Writable, GsonPostProcessable {
|
||||
return workloadGroups;
|
||||
}
|
||||
|
||||
public QueryQueue getWorkloadGroupQueryQueue(String groupName) throws UserException {
|
||||
public QueryQueue getWorkloadGroupQueryQueue(ConnectContext context) throws UserException {
|
||||
String groupName = getWorkloadGroupName(context);
|
||||
readLock();
|
||||
try {
|
||||
WorkloadGroup workloadGroup = nameToWorkloadGroup.get(groupName);
|
||||
@ -133,6 +131,17 @@ public class WorkloadGroupMgr implements Writable, GsonPostProcessable {
|
||||
}
|
||||
}
|
||||
|
||||
private String getWorkloadGroupName(ConnectContext context) {
|
||||
String groupName = context.getSessionVariable().getWorkloadGroup();
|
||||
if (Strings.isNullOrEmpty(groupName)) {
|
||||
groupName = Env.getCurrentEnv().getAuth().getWorkloadGroup(context.getQualifiedUser());
|
||||
}
|
||||
if (Strings.isNullOrEmpty(groupName)) {
|
||||
groupName = DEFAULT_GROUP_NAME;
|
||||
}
|
||||
return groupName;
|
||||
}
|
||||
|
||||
private void checkAndCreateDefaultGroup() {
|
||||
WorkloadGroup defaultWorkloadGroup = null;
|
||||
writeLock();
|
||||
|
||||
Reference in New Issue
Block a user