mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 20:51:48 +00:00
[improvement][headless]Rename metric and tag query type to aggregate and detail respectively.
This commit is contained in:
@@ -54,9 +54,9 @@ public class TimeCorrector extends BaseSemanticCorrector {
|
||||
TimeDefaultConfig timeConfig;
|
||||
QueryConfig queryConfig = dataSetSchema.getQueryConfig();
|
||||
if (QueryType.METRIC.equals(semanticParseInfo.getQueryType())) {
|
||||
timeConfig = queryConfig.getMetricTypeDefaultConfig().getTimeDefaultConfig();
|
||||
timeConfig = queryConfig.getAggregateTypeDefaultConfig().getTimeDefaultConfig();
|
||||
} else {
|
||||
timeConfig = queryConfig.getTagTypeDefaultConfig().getTimeDefaultConfig();
|
||||
timeConfig = queryConfig.getDetailTypeDefaultConfig().getTimeDefaultConfig();
|
||||
}
|
||||
|
||||
String timeFormat = dataSetSchema.getPartitionTimeFormat();
|
||||
|
||||
@@ -38,6 +38,7 @@ public class OnePassSCSqlGenStrategy extends SqlGenStrategy {
|
||||
+ "\n4.DO NOT calculate date range using functions."
|
||||
+ "\n5.DO NOT calculate date range using DATE_SUB."
|
||||
+ "\n6.DO NOT miss the AGGREGATE operator of metrics, always add it as needed."
|
||||
+ "\n7.ALWAYS USE `with` statement to handle secondary calculation scenario."
|
||||
+ "\n#Exemplars:\n{{exemplar}}"
|
||||
+ "#Question:\nQuestion:{{question}},Schema:{{schema}},SideInfo:{{information}}";
|
||||
|
||||
|
||||
@@ -2,11 +2,8 @@ package com.tencent.supersonic.headless.chat.query.rule.detail;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.pojo.Order;
|
||||
import com.tencent.supersonic.headless.api.pojo.DataSetSchema;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaElement;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
|
||||
import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo;
|
||||
import com.tencent.supersonic.headless.api.pojo.TagTypeDefaultConfig;
|
||||
import com.tencent.supersonic.headless.api.pojo.*;
|
||||
import com.tencent.supersonic.headless.api.pojo.DetailTypeDefaultConfig;
|
||||
import com.tencent.supersonic.headless.chat.ChatQueryContext;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
||||
@@ -35,13 +32,14 @@ public abstract class DetailListQuery extends DetailSemanticQuery {
|
||||
Set<SchemaElement> dimensions = new LinkedHashSet<>();
|
||||
Set<SchemaElement> metrics = new LinkedHashSet<>();
|
||||
Set<Order> orders = new LinkedHashSet<>();
|
||||
TagTypeDefaultConfig tagTypeDefaultConfig = dataSetSchema.getTagTypeDefaultConfig();
|
||||
if (tagTypeDefaultConfig != null
|
||||
&& tagTypeDefaultConfig.getDefaultDisplayInfo() != null) {
|
||||
DetailTypeDefaultConfig detailTypeDefaultConfig =
|
||||
dataSetSchema.getTagTypeDefaultConfig();
|
||||
if (detailTypeDefaultConfig != null
|
||||
&& detailTypeDefaultConfig.getDefaultDisplayInfo() != null) {
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
tagTypeDefaultConfig.getDefaultDisplayInfo().getMetricIds())) {
|
||||
detailTypeDefaultConfig.getDefaultDisplayInfo().getMetricIds())) {
|
||||
metrics =
|
||||
tagTypeDefaultConfig.getDefaultDisplayInfo().getMetricIds().stream()
|
||||
detailTypeDefaultConfig.getDefaultDisplayInfo().getMetricIds().stream()
|
||||
.map(
|
||||
id -> {
|
||||
SchemaElement metric =
|
||||
@@ -59,9 +57,10 @@ public abstract class DetailListQuery extends DetailSemanticQuery {
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
tagTypeDefaultConfig.getDefaultDisplayInfo().getDimensionIds())) {
|
||||
detailTypeDefaultConfig.getDefaultDisplayInfo().getDimensionIds())) {
|
||||
dimensions =
|
||||
tagTypeDefaultConfig.getDefaultDisplayInfo().getDimensionIds().stream()
|
||||
detailTypeDefaultConfig.getDefaultDisplayInfo().getDimensionIds()
|
||||
.stream()
|
||||
.map(
|
||||
id ->
|
||||
dataSetSchema.getElement(
|
||||
|
||||
@@ -2,14 +2,8 @@ package com.tencent.supersonic.headless.chat.corrector;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.enums.QueryType;
|
||||
import com.tencent.supersonic.common.util.ContextUtils;
|
||||
import com.tencent.supersonic.headless.api.pojo.DataSetSchema;
|
||||
import com.tencent.supersonic.headless.api.pojo.DefaultDisplayInfo;
|
||||
import com.tencent.supersonic.headless.api.pojo.QueryConfig;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaElement;
|
||||
import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo;
|
||||
import com.tencent.supersonic.headless.api.pojo.SemanticSchema;
|
||||
import com.tencent.supersonic.headless.api.pojo.SqlInfo;
|
||||
import com.tencent.supersonic.headless.api.pojo.TagTypeDefaultConfig;
|
||||
import com.tencent.supersonic.headless.api.pojo.*;
|
||||
import com.tencent.supersonic.headless.api.pojo.DetailTypeDefaultConfig;
|
||||
import com.tencent.supersonic.headless.chat.ChatQueryContext;
|
||||
import org.junit.Assert;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -58,7 +52,7 @@ class SelectCorrectorTest {
|
||||
List<DataSetSchema> dataSetSchemaList = new ArrayList<>();
|
||||
DataSetSchema dataSetSchema = new DataSetSchema();
|
||||
QueryConfig queryConfig = new QueryConfig();
|
||||
TagTypeDefaultConfig tagTypeDefaultConfig = new TagTypeDefaultConfig();
|
||||
DetailTypeDefaultConfig detailTypeDefaultConfig = new DetailTypeDefaultConfig();
|
||||
DefaultDisplayInfo defaultDisplayInfo = new DefaultDisplayInfo();
|
||||
List<Long> dimensionIds = new ArrayList<>();
|
||||
dimensionIds.add(1L);
|
||||
@@ -70,8 +64,8 @@ class SelectCorrectorTest {
|
||||
metricIds.add(4L);
|
||||
defaultDisplayInfo.setMetricIds(metricIds);
|
||||
|
||||
tagTypeDefaultConfig.setDefaultDisplayInfo(defaultDisplayInfo);
|
||||
queryConfig.setTagTypeDefaultConfig(tagTypeDefaultConfig);
|
||||
detailTypeDefaultConfig.setDefaultDisplayInfo(defaultDisplayInfo);
|
||||
queryConfig.setDetailTypeDefaultConfig(detailTypeDefaultConfig);
|
||||
|
||||
dataSetSchema.setQueryConfig(queryConfig);
|
||||
SchemaElement schemaElement = new SchemaElement();
|
||||
|
||||
Reference in New Issue
Block a user