(improvement)(Headless) JsqlParser upgrade to 4.7 (#931)

This commit is contained in:
jipeli
2024-04-22 20:33:54 +08:00
committed by GitHub
parent c4b4896f8f
commit 110f35eac7
22 changed files with 303 additions and 291 deletions

View File

@@ -31,9 +31,8 @@ import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.GroupByElement;
import net.sf.jsqlparser.statement.select.Limit;
import net.sf.jsqlparser.statement.select.OrderByElement;
import net.sf.jsqlparser.statement.select.ParenthesedSelect;
import net.sf.jsqlparser.statement.select.PlainSelect;
import net.sf.jsqlparser.statement.select.Select;
import net.sf.jsqlparser.statement.select.SelectExpressionItem;
import net.sf.jsqlparser.statement.select.SelectItem;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
@@ -169,14 +168,14 @@ public class QueryStructReq extends SemanticQueryReq {
}
private String buildSql(QueryStructReq queryStructReq, boolean isBizName) throws JSQLParserException {
Select select = new Select();
ParenthesedSelect select = new ParenthesedSelect();
//1.Set the select items (columns)
PlainSelect plainSelect = new PlainSelect();
List<SelectItem> selectItems = new ArrayList<>();
List<SelectItem<?>> selectItems = new ArrayList<>();
List<String> groups = queryStructReq.getGroups();
if (!CollectionUtils.isEmpty(groups)) {
for (String group : groups) {
selectItems.add(new SelectExpressionItem(new Column(group)));
selectItems.add(new SelectItem(new Column(group)));
}
}
List<Aggregator> aggregators = queryStructReq.getAggregators();
@@ -184,7 +183,7 @@ public class QueryStructReq extends SemanticQueryReq {
for (Aggregator aggregator : aggregators) {
String columnName = aggregator.getColumn();
if (queryStructReq.getQueryType().isNativeAggQuery()) {
selectItems.add(new SelectExpressionItem(new Column(columnName)));
selectItems.add(new SelectItem(new Column(columnName)));
} else {
Function sumFunction = new Function();
AggOperatorEnum func = aggregator.getFunc();
@@ -197,7 +196,7 @@ public class QueryStructReq extends SemanticQueryReq {
sumFunction.setDistinct(true);
}
sumFunction.setParameters(new ExpressionList(new Column(columnName)));
SelectExpressionItem selectExpressionItem = new SelectExpressionItem(sumFunction);
SelectItem selectExpressionItem = new SelectItem(sumFunction);
String alias = StringUtils.isNotBlank(aggregator.getAlias()) ? aggregator.getAlias() : columnName;
selectExpressionItem.setAlias(new Alias(alias));
selectItems.add(selectExpressionItem);
@@ -243,7 +242,9 @@ public class QueryStructReq extends SemanticQueryReq {
limit.setRowCount(new LongValue(queryStructReq.getLimit()));
plainSelect.setLimit(limit);
}
select.setSelectBody(plainSelect);
//select.setSelectBody(plainSelect);
select.setSelect(plainSelect);
//6.Set where
List<Filter> dimensionFilters = queryStructReq.getDimensionFilters();

View File

@@ -56,7 +56,7 @@ public class DefaultDimValueConverter implements HeadlessConverter {
expressionList.setExpressions(exprs);
InExpression inExpression = new InExpression();
inExpression.setLeftExpression(new Column(dimension.getBizName()));
inExpression.setRightItemsList(expressionList);
inExpression.setRightExpression(expressionList);
expressions.add(inExpression);
if (metricTable != null) {
metricTable.getDimensions().add(dimension.getBizName());

View File

@@ -501,7 +501,7 @@ public class ChatQueryServiceImpl implements ChatQueryService {
});
expressionList.setExpressions(expressions);
inExpression.setLeftExpression(column);
inExpression.setRightItemsList(expressionList);
inExpression.setRightExpression(expressionList);
addConditions.add(inExpression);
contextMetricFilters.stream().forEach(o -> {
if (o.getName().equals(dslQueryFilter.getName())) {

View File

@@ -33,7 +33,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;