diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/AggOption.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/AggOption.java index c022105d4..a8a742e1d 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/AggOption.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/AggOption.java @@ -1,5 +1,10 @@ package com.tencent.supersonic.headless.api.enums; +/** + * Aggregation type of metric when query metric without aggregation method + * NATIVE: will not use Aggregation + * DEFAULT: will use the aggregation method define in the model + */ public enum AggOption { NATIVE, AGGREGATION, diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/DatasourceQuery.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/DatasourceQuery.java index 1f2aee525..7af517604 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/DatasourceQuery.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/DatasourceQuery.java @@ -1,6 +1,10 @@ package com.tencent.supersonic.headless.api.enums; - +/** + * model datasource define type: + * sql_query : view sql begin as select + * table_query: dbName.tableName + */ public enum DatasourceQuery { SQL_QUERY("sql_query"), diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/ModelSourceType.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/ModelSourceType.java index 746747c4a..d454a9577 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/ModelSourceType.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/enums/ModelSourceType.java @@ -1,7 +1,12 @@ package com.tencent.supersonic.headless.api.enums; import java.util.Objects; - +/** + * model source table type: + * FULL: table without time partition + * PARTITION: table with partition field + * ZIPPER: table with slowly changing dimension + */ public enum ModelSourceType { FULL, PARTITION, diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java index a76b39a86..2715fd7bd 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/DbAdaptor.java @@ -1,6 +1,8 @@ package com.tencent.supersonic.headless.core.adaptor.db; - +/** + * Adapters for different query engines to obtain table, field, and time formatting methods + */ public abstract class DbAdaptor { public abstract String getDateFormat(String dateType, String dateFormat, String column); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/QueryExecutor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/QueryExecutor.java index 201df3b37..a5a8c63b8 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/QueryExecutor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/QueryExecutor.java @@ -3,6 +3,9 @@ package com.tencent.supersonic.headless.core.executor; import com.tencent.supersonic.headless.api.response.QueryResultWithSchemaResp; import com.tencent.supersonic.headless.core.pojo.QueryStatement; +/** + * Query data or execute sql from a query engine + */ public interface QueryExecutor { boolean accept(QueryStatement queryStatement); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/DimensionYamlManager.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/DimensionYamlManager.java index 43f747871..92ca4acb0 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/DimensionYamlManager.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/DimensionYamlManager.java @@ -13,7 +13,9 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; - +/** + * manager to handle the dimension + */ @Slf4j @Service public class DimensionYamlManager { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/MetricYamlManager.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/MetricYamlManager.java index 3cea1df9d..8ddb8eb57 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/MetricYamlManager.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/MetricYamlManager.java @@ -15,7 +15,9 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; - +/** + * manager to handle the metric + */ @Slf4j @Service public class MetricYamlManager { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/ModelYamlManager.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/ModelYamlManager.java index b26d61c70..3f0f4dc09 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/ModelYamlManager.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/manager/ModelYamlManager.java @@ -24,7 +24,9 @@ import org.springframework.util.CollectionUtils; import java.util.Objects; import java.util.stream.Collectors; - +/** + * manager to handle the model + */ @Service @Slf4j public class ModelYamlManager { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/DetailQuery.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/DetailQuery.java index 36663137a..5a34fe137 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/DetailQuery.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/DetailQuery.java @@ -10,6 +10,9 @@ import org.springframework.util.CollectionUtils; import java.util.Objects; import java.util.stream.Collectors; +/** + * Remove the default metric added by the system when the query only has dimensions + */ @Slf4j @Component("DetailQuery") public class DetailQuery implements QueryOptimizer { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/QueryOptimizer.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/QueryOptimizer.java index ea1ba0db2..49a10c962 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/QueryOptimizer.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/optimizer/QueryOptimizer.java @@ -3,6 +3,9 @@ package com.tencent.supersonic.headless.core.optimizer; import com.tencent.supersonic.headless.api.request.QueryStructReq; import com.tencent.supersonic.headless.core.pojo.QueryStatement; +/** + * the interface that rewrites QueryStatement with some optimization rules + */ public interface QueryOptimizer { void rewrite(QueryStructReq queryStructCmd, QueryStatement queryStatement); } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/HeadlessConverter.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/HeadlessConverter.java index 053144157..e20b544bb 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/HeadlessConverter.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/HeadlessConverter.java @@ -2,6 +2,9 @@ package com.tencent.supersonic.headless.core.parser; import com.tencent.supersonic.headless.core.pojo.QueryStatement; +/** + * to supplement,translate the request Body + */ public interface HeadlessConverter { boolean accept(QueryStatement queryStatement); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/QueryParser.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/QueryParser.java index be09491ed..b727d385b 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/QueryParser.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/QueryParser.java @@ -19,6 +19,9 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +/** + * logical parse from ParseSqlReq or MetricReq + */ @Component @Slf4j @Primary diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/CalciteSqlParser.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/CalciteSqlParser.java index 4211911d2..dc5bae46f 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/CalciteSqlParser.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/CalciteSqlParser.java @@ -10,6 +10,9 @@ import com.tencent.supersonic.headless.core.parser.calcite.schema.RuntimeOptions import com.tencent.supersonic.headless.core.pojo.QueryStatement; import org.springframework.stereotype.Component; +/** + * the calcite parse implements + */ @Component("CalciteSqlParser") public class CalciteSqlParser implements SqlParser { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/Configuration.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/Configuration.java index 69fc95f1c..7e918265b 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/Configuration.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/Configuration.java @@ -36,6 +36,9 @@ import org.apache.calcite.sql2rel.SqlToRelConverter; import org.apache.calcite.tools.FrameworkConfig; import org.apache.calcite.tools.Frameworks; +/** + * global configuration of the calcite + */ public class Configuration { public static Properties configProperties = new Properties(); @@ -94,7 +97,8 @@ public class Configuration { return SqlToRelConverter.config() .withHintStrategyTable(strategies) .withTrimUnusedFields(true) - .withExpand(true); + .withExpand(true) + .addRelBuilderConfigTransform(c -> c.withSimplify(false)); } public static SqlToRelConverter getSqlToRelConverter(SqlValidatorScope scope, SqlValidator sqlValidator, diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/AggPlanner.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/AggPlanner.java index 006e6d266..44ac3cfe1 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/AggPlanner.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/AggPlanner.java @@ -36,6 +36,9 @@ import java.util.ListIterator; import java.util.Objects; import java.util.Stack; +/** + * parsing from query dimensions and metrics + */ @Slf4j public class AggPlanner implements Planner { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/Planner.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/Planner.java index 9797bf958..ebc19b35d 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/Planner.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/planner/Planner.java @@ -5,6 +5,9 @@ import com.tencent.supersonic.headless.api.enums.AggOption; import com.tencent.supersonic.headless.core.pojo.QueryStatement; import com.tencent.supersonic.headless.core.parser.calcite.schema.HeadlessSchema; +/** + * parse and generate SQL and other execute information + */ public interface Planner { public void explain(QueryStatement queryStatement, AggOption aggOption) throws Exception; diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/DataSourceTable.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/DataSourceTable.java index 70862e004..b35755064 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/DataSourceTable.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/DataSourceTable.java @@ -22,6 +22,9 @@ import org.apache.calcite.schema.TranslatableTable; import org.apache.calcite.schema.impl.AbstractTable; import org.apache.calcite.sql.type.SqlTypeName; +/** + * customize the AbstractTable + */ public class DataSourceTable extends AbstractTable implements ScannableTable, TranslatableTable { private final String tableName; diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSchema.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSchema.java index 18a23fe3b..62eaa2d5c 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSchema.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSchema.java @@ -16,6 +16,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; + public class HeadlessSchema extends AbstractSchema { private final String rootPath; diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlConformance.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlConformance.java index 3983c385e..9c96eb01b 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlConformance.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlConformance.java @@ -4,6 +4,9 @@ import org.apache.calcite.sql.fun.SqlLibrary; import org.apache.calcite.sql.validate.SqlConformance; import org.apache.calcite.sql.validate.SqlConformanceEnum; +/** + * customize the SqlConformance + */ public class HeadlessSqlConformance implements SqlConformance { @Override diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlTypeFactoryImpl.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlTypeFactoryImpl.java index 99d50121f..450940b9a 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlTypeFactoryImpl.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/HeadlessSqlTypeFactoryImpl.java @@ -4,6 +4,9 @@ import java.nio.charset.Charset; import org.apache.calcite.rel.type.RelDataTypeSystem; import org.apache.calcite.sql.type.SqlTypeFactoryImpl; +/** + * customize the SqlTypeFactoryImpl + */ public class HeadlessSqlTypeFactoryImpl extends SqlTypeFactoryImpl { public HeadlessSqlTypeFactoryImpl(RelDataTypeSystem typeSystem) { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/SemanticSqlDialect.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/SemanticSqlDialect.java index f6c1a5c5b..ad61b6180 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/SemanticSqlDialect.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/SemanticSqlDialect.java @@ -10,6 +10,9 @@ import org.apache.calcite.sql.SqlWriter; import org.apache.calcite.sql.validate.SqlConformance; import org.checkerframework.checker.nullness.qual.Nullable; +/** + * customize the SqlDialect + */ public class SemanticSqlDialect extends SqlDialect { public static final Context DEFAULT_CONTEXT = SqlDialect.EMPTY_CONTEXT diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/ViewExpanderImpl.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/ViewExpanderImpl.java index f9a6cced0..6b158e46e 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/ViewExpanderImpl.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/schema/ViewExpanderImpl.java @@ -5,6 +5,9 @@ import org.apache.calcite.plan.RelOptTable; import org.apache.calcite.rel.RelRoot; import org.apache.calcite.rel.type.RelDataType; +/** + * customize the ViewExpander + */ public class ViewExpanderImpl implements RelOptTable.ViewExpander { public ViewExpanderImpl() { } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/Renderer.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/Renderer.java index 6de0c845d..ef42adc48 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/Renderer.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/Renderer.java @@ -20,6 +20,9 @@ import lombok.Data; import org.apache.calcite.sql.SqlNode; import org.apache.calcite.sql.validate.SqlValidatorScope; +/** + * process TableView + */ @Data public abstract class Renderer { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/S2SQLSqlValidatorImpl.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/S2SQLSqlValidatorImpl.java index f246a30a8..c1a8aa383 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/S2SQLSqlValidatorImpl.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/S2SQLSqlValidatorImpl.java @@ -5,6 +5,9 @@ import org.apache.calcite.sql.SqlOperatorTable; import org.apache.calcite.sql.validate.SqlValidatorCatalogReader; import org.apache.calcite.sql.validate.SqlValidatorImpl; +/** + * customize the SqlValidatorImpl + */ public class S2SQLSqlValidatorImpl extends SqlValidatorImpl { public S2SQLSqlValidatorImpl(SqlOperatorTable opTab, SqlValidatorCatalogReader catalogReader, diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/TableView.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/TableView.java index 83ee02265..9b2fdedb1 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/TableView.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/TableView.java @@ -12,6 +12,9 @@ import org.apache.calcite.sql.SqlNodeList; import org.apache.calcite.sql.SqlSelect; import org.apache.calcite.sql.parser.SqlParserPos; +/** + * basic query project + */ @Data public class TableView { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/SemanticNode.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/SemanticNode.java index dba77f42d..9ecbf96e9 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/SemanticNode.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/SemanticNode.java @@ -42,6 +42,9 @@ import org.apache.calcite.sql.validate.SqlValidatorScope; import org.apache.calcite.sql2rel.SqlToRelConverter; import org.apache.commons.lang3.StringUtils; +/** + * model item node + */ public abstract class SemanticNode { public static Set AGGREGATION_KIND = new HashSet<>(); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/extend/LateralViewExplodeNode.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/extend/LateralViewExplodeNode.java index f16e96c57..74526987a 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/extend/LateralViewExplodeNode.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/node/extend/LateralViewExplodeNode.java @@ -11,6 +11,9 @@ import org.apache.calcite.sql.SqlNodeList; import org.apache.calcite.sql.SqlOperator; import org.apache.calcite.sql.SqlWriter; +/** + * extend node to handle lateral explode view + */ public class LateralViewExplodeNode extends ExtendNode { public final String sqlNameView = "view"; diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/optimizer/FilterToGroupScanRule.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/optimizer/FilterToGroupScanRule.java index da94c0d85..6efeed823 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/optimizer/FilterToGroupScanRule.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/optimizer/FilterToGroupScanRule.java @@ -26,6 +26,10 @@ import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.Pair; import org.apache.commons.lang3.tuple.Triple; +/** + * push down the time filter into group using the RuntimeOptions defined minMaxTime + * + */ public class FilterToGroupScanRule extends RelRule implements TransformationRule { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/FilterRender.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/FilterRender.java index c73bf7d48..359ae8ba1 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/FilterRender.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/FilterRender.java @@ -23,6 +23,9 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +/** + * process query specified filtering information + */ public class FilterRender extends Renderer { @Override diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/JoinRender.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/JoinRender.java index 707df4af8..fea5b5060 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/JoinRender.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/JoinRender.java @@ -41,6 +41,9 @@ import java.util.Queue; import java.util.Set; import java.util.stream.Collectors; +/** + * process the join conditions when the source number is greater than 1 + */ @Slf4j public class JoinRender extends Renderer { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/OutputRender.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/OutputRender.java index 0709b63af..eccb0dd4e 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/OutputRender.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/OutputRender.java @@ -18,6 +18,9 @@ import org.apache.calcite.sql.parser.SqlParserPos; import org.apache.calcite.sql.validate.SqlValidatorScope; import org.springframework.util.CollectionUtils; +/** + * process the query result items from query request + */ public class OutputRender extends Renderer { @Override diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/SourceRender.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/SourceRender.java index 3c67003c9..08edb7776 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/SourceRender.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/calcite/sql/render/SourceRender.java @@ -32,6 +32,9 @@ import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; +/** + * process the table view from the defined data model schema + */ @Slf4j public class SourceRender extends Renderer { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/CalculateAggConverter.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/CalculateAggConverter.java index 1fd4c208d..f8eb19502 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/CalculateAggConverter.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/CalculateAggConverter.java @@ -24,7 +24,9 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; - +/** + * supplement the QueryStatement when query with custom aggregation method + */ @Component("CalculateAggConverter") @Slf4j public class CalculateAggConverter implements HeadlessConverter { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/ParserDefaultConverter.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/ParserDefaultConverter.java index e3f71d1dc..0b4b7db64 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/ParserDefaultConverter.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/parser/converter/ParserDefaultConverter.java @@ -17,6 +17,9 @@ import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; +/** + * HeadlessConverter default implement + */ @Component("ParserDefaultConverter") @Slf4j public class ParserDefaultConverter implements HeadlessConverter { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/ComponentFactory.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/ComponentFactory.java index fb4288469..419ece0c7 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/ComponentFactory.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/ComponentFactory.java @@ -16,6 +16,9 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +/** + * HeadlessConverter QueryOptimizer QueryExecutor object factory + */ public class ComponentFactory { private static List headlessConverters = new ArrayList<>(); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/DataTransformUtils.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/DataTransformUtils.java index f3980ff68..6ab8c3c2c 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/DataTransformUtils.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/DataTransformUtils.java @@ -11,6 +11,9 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +/** + * transform query results to return the users + */ public class DataTransformUtils { public static List> transform(List> originalData, String metric, diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java index a7a06e4ba..17ea9db2a 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/JdbcDataSourceUtils.java @@ -27,6 +27,9 @@ import static com.tencent.supersonic.common.pojo.Constants.NEW_LINE_CHAR; import static com.tencent.supersonic.common.pojo.Constants.PATTERN_JDBC_TYPE; import static com.tencent.supersonic.common.pojo.Constants.SPACE; +/** + * tools functions about jdbc + */ @Slf4j public class JdbcDataSourceUtils { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java index 8664c39ab..017abadf6 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java @@ -35,6 +35,9 @@ import static com.tencent.supersonic.common.pojo.Constants.MONTH; import static com.tencent.supersonic.common.pojo.Constants.UNDERLINE; import static com.tencent.supersonic.common.pojo.Constants.WEEK; +/** + * tools functions to analyze queryStructReq + */ @Component @Slf4j public class SqlGenerateUtils { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlUtils.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlUtils.java index a45a8bbf1..55f652997 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlUtils.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlUtils.java @@ -29,7 +29,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; - +/** + * tools functions about sql query + */ @Slf4j @Component public class SqlUtils { diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SysTimeDimensionBuilder.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SysTimeDimensionBuilder.java index ff9509248..e662e855d 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SysTimeDimensionBuilder.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SysTimeDimensionBuilder.java @@ -9,6 +9,9 @@ import lombok.extern.slf4j.Slf4j; import java.util.List; +/** + * generate system time dimension tools + */ @Slf4j public class SysTimeDimensionBuilder {