(improvement)(chat) set native value in parser and execute , optimized the executeDirectQuery code (#196)

This commit is contained in:
lexluo09
2023-10-12 11:38:48 +08:00
committed by GitHub
parent e6f2ce2598
commit b753eda9b9
5 changed files with 165 additions and 136 deletions

View File

@@ -44,8 +44,16 @@ import org.springframework.util.CollectionUtils;
@Slf4j
@Component
public class QueryStructUtils {
public static Set<String> internalCols = new HashSet<>(
Arrays.asList("dayno", "plat_sys_var", "sys_imp_date", "sys_imp_week", "sys_imp_month"));
public static Set<String> internalTimeCols = new HashSet<>(
Arrays.asList("dayno", "sys_imp_date", "sys_imp_week", "sys_imp_month"));
public static Set<String> internalCols;
static {
internalCols = new HashSet<>(Arrays.asList("plat_sys_var"));
internalCols.addAll(internalTimeCols);
}
private final DateUtils dateUtils;
private final SqlFilterUtils sqlFilterUtils;
private final Catalog catalog;
@@ -160,11 +168,13 @@ public class QueryStructUtils {
sqlFilterUtils.getFiltersCol(queryStructCmd.getOriginalFilter()).stream().forEach(col -> resNameEnSet.add(col));
return resNameEnSet;
}
public Set<String> getResName(QueryDslReq queryDslReq) {
Set<String> resNameSet = SqlParserSelectHelper.getAllFields(queryDslReq.getSql())
.stream().collect(Collectors.toSet());
.stream().collect(Collectors.toSet());
return resNameSet;
}
public Set<String> getResNameEnExceptInternalCol(QueryStructReq queryStructCmd) {
Set<String> resNameEnSet = getResNameEn(queryStructCmd);
return resNameEnSet.stream().filter(res -> !internalCols.contains(res)).collect(Collectors.toSet());