(improvement)(Headless) supports glm-4、glm-3-turbo、qwen (#1058)

This commit is contained in:
mainmain
2024-05-30 21:51:35 +08:00
committed by GitHub
parent b4bc92e586
commit 4e6c076481
12 changed files with 427 additions and 13 deletions

View File

@@ -631,5 +631,30 @@ public class SqlReplaceHelper {
}
}
}
public static String dealAliasToOrderBy(String querySql) {
Select selectStatement = SqlSelectHelper.getSelect(querySql);
PlainSelect plainSelect = selectStatement.getPlainSelect();
List<SelectItem<?>> selectItemList = plainSelect.getSelectItems();
List<OrderByElement> orderByElementList = plainSelect.getOrderByElements();
if (CollectionUtils.isEmpty(orderByElementList)) {
return querySql;
}
Map<String, Expression> map = new HashMap<>();
for (int i = 0; i < selectItemList.size(); i++) {
if (!Objects.isNull(selectItemList.get(i).getAlias())) {
map.put(selectItemList.get(i).getAlias().getName(), selectItemList.get(i).getExpression());
selectItemList.get(i).setAlias(null);
}
}
for (OrderByElement orderByElement : orderByElementList) {
if (map.containsKey(orderByElement.getExpression().toString())) {
orderByElement.setExpression(map.get(orderByElement.getExpression().toString()));
}
}
plainSelect.setOrderByElements(orderByElementList);
return plainSelect.toString();
}
}

View File

@@ -46,6 +46,7 @@ import net.sf.jsqlparser.statement.select.SelectItem;
import net.sf.jsqlparser.statement.select.SelectVisitorAdapter;
import net.sf.jsqlparser.statement.select.SetOperationList;
import net.sf.jsqlparser.statement.select.WithItem;
import net.sf.jsqlparser.statement.select.Limit;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
@@ -612,6 +613,17 @@ public class SqlSelectHelper {
}
}
public static Boolean hasLimit(String querySql) {
Select selectStatement = SqlSelectHelper.getSelect(querySql);
PlainSelect plainSelect = selectStatement.getPlainSelect();
Limit limit = plainSelect.getLimit();
if (Objects.nonNull(limit)) {
return true;
} else {
return false;
}
}
public static Map<String, Set<String>> getFieldsWithSubQuery(String sql) {
List<PlainSelect> plainSelects = getPlainSelects(getPlainSelect(sql));
Map<String, Set<String>> results = new HashMap<>();