1 Commits

Author SHA1 Message Date
QJ_wonder
5f6443c081 Merge 1ad6c9ddd7 into 08705c9d3b 2025-05-13 06:27:00 +00:00

View File

@@ -48,16 +48,15 @@ public class SqlQueryParser implements QueryParser {
List<String> queryFields = SqlSelectHelper.getAllSelectFields(sqlQuery.getSql());
Set<String> queryAliases = SqlSelectHelper.getAliasFields(sqlQuery.getSql());
Set<String> ontologyMetricsDimensions = Collections.synchronizedSet(new HashSet<String>());
Set<String> ontologyBizNameMetricsDimensions = Collections.synchronizedSet(new HashSet<String>());
queryFields.removeAll(queryAliases);
Ontology ontology = queryStatement.getOntology();
OntologyQuery ontologyQuery = buildOntologyQuery(ontology, queryFields);
Set<String> queryFieldsSet = new HashSet<>(queryFields);
ontologyQuery.getMetrics().forEach(m -> {ontologyMetricsDimensions.add(m.getName()); ontologyBizNameMetricsDimensions.add(m.getBizName());});
ontologyQuery.getDimensions().forEach(d -> {ontologyMetricsDimensions.add(d.getName()); ontologyBizNameMetricsDimensions.add(d.getBizName());});
ontologyQuery.getMetrics().forEach(m -> ontologyMetricsDimensions.add(m.getName()));
ontologyQuery.getDimensions().forEach(d -> ontologyMetricsDimensions.add(d.getName()));
// check if there are fields not matched with any metric or dimension
if (!(queryFieldsSet.containsAll(ontologyMetricsDimensions)||queryFieldsSet.containsAll(ontologyBizNameMetricsDimensions))) {
if (!queryFieldsSet.containsAll(ontologyMetricsDimensions)) {
List<String> semanticFields = Lists.newArrayList();
ontologyQuery.getMetrics().forEach(m -> semanticFields.add(m.getName()));
ontologyQuery.getDimensions().forEach(d -> semanticFields.add(d.getName()));