mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-15 06:27:21 +00:00
[improvement][headless&chat]Move EntityInfoProcessor from chat to headless module and optimize code.
[improvement][headless&chat]Move `EntityInfoProcessor` from `chat` to `headless` module and optimize code.
This commit is contained in:
@@ -244,7 +244,7 @@ public class SqlSelectHelper {
|
||||
return plainSelects;
|
||||
}
|
||||
|
||||
public static List<String> getAllFields(String sql) {
|
||||
public static List<String> getAllSelectFields(String sql) {
|
||||
List<PlainSelect> plainSelects = getPlainSelects(getPlainSelect(sql));
|
||||
Set<String> results = new HashSet<>();
|
||||
for (PlainSelect plainSelect : plainSelects) {
|
||||
|
||||
@@ -28,8 +28,8 @@ public class SqlValidHelper {
|
||||
}
|
||||
|
||||
//2. all fields
|
||||
List<String> thisAllFields = SqlSelectHelper.getAllFields(thisSql);
|
||||
List<String> otherAllFields = SqlSelectHelper.getAllFields(otherSql);
|
||||
List<String> thisAllFields = SqlSelectHelper.getAllSelectFields(thisSql);
|
||||
List<String> otherAllFields = SqlSelectHelper.getAllSelectFields(otherSql);
|
||||
|
||||
if (!CollectionUtils.isEqualCollection(thisAllFields, otherAllFields)) {
|
||||
return false;
|
||||
|
||||
@@ -24,12 +24,12 @@ class SqlAddHelperTest {
|
||||
String sql = "select 部门,sum (访问次数) from 超音数 where 数据日期 = '2023-08-08' "
|
||||
+ "and 用户 =alice and 发布日期 ='11' group by 部门 limit 1";
|
||||
sql = SqlAddHelper.addWhere(sql, "column_a", 123444555);
|
||||
List<String> selectFields = SqlSelectHelper.getAllFields(sql);
|
||||
List<String> selectFields = SqlSelectHelper.getAllSelectFields(sql);
|
||||
|
||||
Assert.assertEquals(selectFields.contains("column_a"), true);
|
||||
|
||||
sql = SqlAddHelper.addWhere(sql, "column_b", "123456666");
|
||||
selectFields = SqlSelectHelper.getAllFields(sql);
|
||||
selectFields = SqlSelectHelper.getAllSelectFields(sql);
|
||||
|
||||
Assert.assertEquals(selectFields.contains("column_b"), true);
|
||||
|
||||
|
||||
@@ -131,55 +131,55 @@ class SqlSelectHelperTest {
|
||||
@Test
|
||||
void testGetAllFields() {
|
||||
|
||||
List<String> allFields = SqlSelectHelper.getAllFields(
|
||||
List<String> allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"SELECT department, user_id, field_a FROM s2 WHERE sys_imp_date = '2023-08-08'"
|
||||
+ " AND user_id = 'alice' AND publish_date = '11' ORDER BY pv DESC LIMIT 1");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 6);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields(
|
||||
allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"SELECT department, user_id, field_a FROM s2 WHERE sys_imp_date >= '2023-08-08'"
|
||||
+ " AND user_id = 'alice' AND publish_date = '11' ORDER BY pv DESC LIMIT 1");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 6);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields(
|
||||
allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"select 部门,sum (访问次数) from 超音数 where 数据日期 = '2023-08-08' and 用户 = 'alice'"
|
||||
+ " and 发布日期 ='11' group by 部门 limit 1");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 5);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields(
|
||||
allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"SELECT user_name FROM 超音数 WHERE sys_imp_date <= '2023-09-03' AND "
|
||||
+ "sys_imp_date >= '2023-08-04' GROUP BY user_name ORDER BY sum(pv) DESC LIMIT 10 ");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 3);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields(
|
||||
allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"SELECT user_name FROM 超音数 WHERE sys_imp_date <= '2023-09-03' AND "
|
||||
+ "sys_imp_date >= '2023-08-04' GROUP BY user_name HAVING sum(pv) > 1000");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 3);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields(
|
||||
allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"SELECT department, user_id, field_a FROM s2 WHERE "
|
||||
+ "(user_id = 'alice' AND publish_date = '11') and sys_imp_date "
|
||||
+ "= '2023-08-08' ORDER BY pv DESC LIMIT 1");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 6);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields(
|
||||
allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"SELECT * FROM CSpider WHERE (评分 < (SELECT min(评分) FROM CSpider WHERE 语种 = '英文' ))"
|
||||
+ " AND 数据日期 = '2023-10-12'");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 3);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields("SELECT sum(销量) / (SELECT sum(销量) FROM 营销 "
|
||||
allFields = SqlSelectHelper.getAllSelectFields("SELECT sum(销量) / (SELECT sum(销量) FROM 营销 "
|
||||
+ "WHERE MONTH(数据日期) = 9) FROM 营销 WHERE 国家中文名 = '中国' AND MONTH(数据日期) = 9");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 3);
|
||||
|
||||
allFields = SqlSelectHelper.getAllFields(
|
||||
allFields = SqlSelectHelper.getAllSelectFields(
|
||||
"SELECT 用户, 页面 FROM 超音数用户部门 GROUP BY 用户, 页面 ORDER BY count(*) DESC");
|
||||
|
||||
Assert.assertEquals(allFields.size(), 2);
|
||||
|
||||
Reference in New Issue
Block a user