mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 13:07:32 +00:00
(improvement)(Headless) supports glm-4、glm-3-turbo、qwen (#1058)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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<>();
|
||||
|
||||
Reference in New Issue
Block a user