[improvement][chat]Modify core workflow of NL2SQLParser, always invoking rule-based parsers first.#1729

This commit is contained in:
jerryjzhang
2024-10-29 13:07:02 +08:00
parent b01751afdb
commit 400b9f86f0
9 changed files with 96 additions and 52 deletions

View File

@@ -60,15 +60,12 @@ public class QueryReqBuilder {
queryStructReq.setGroups(parseInfo.getDimensions().stream().map(SchemaElement::getBizName)
.collect(Collectors.toList()));
queryStructReq.setLimit(parseInfo.getLimit());
// only one metric is queried at once
Set<SchemaElement> metrics = parseInfo.getMetrics();
if (!CollectionUtils.isEmpty(metrics)) {
SchemaElement metricElement = parseInfo.getMetrics().iterator().next();
Set<Order> order =
getOrder(parseInfo.getOrders(), parseInfo.getAggType(), metricElement);
queryStructReq
.setAggregators(getAggregatorByMetric(parseInfo.getAggType(), metricElement));
queryStructReq.setOrders(new ArrayList<>(order));
for (SchemaElement metricElement : parseInfo.getMetrics()) {
queryStructReq.getAggregators()
.addAll(getAggregatorByMetric(parseInfo.getAggType(), metricElement));
queryStructReq.setOrders(new ArrayList<>(
getOrder(parseInfo.getOrders(), parseInfo.getAggType(), metricElement)));
}
deletionDuplicated(queryStructReq);