diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountFilter.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountFilter.java index 2097ced2b3..505729894a 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountFilter.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountFilter.java @@ -22,8 +22,8 @@ import com.bakdata.conquery.models.query.queryplan.filter.FilterNode; import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.FilterContext; +import com.bakdata.conquery.sql.conversion.model.aggregator.CountSqlAggregator; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; -import com.bakdata.conquery.sql.conversion.model.select.CountSqlAggregator; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountQuartersFilter.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountQuartersFilter.java index 1bb0d67f19..9d4fc693fc 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountQuartersFilter.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/CountQuartersFilter.java @@ -17,8 +17,8 @@ import com.bakdata.conquery.models.query.queryplan.filter.FilterNode; import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.FilterContext; +import com.bakdata.conquery.sql.conversion.model.aggregator.CountQuartersSqlAggregator; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; -import com.bakdata.conquery.sql.conversion.model.select.CountQuartersSqlAggregator; import lombok.Getter; import lombok.Setter; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/DateDistanceFilter.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/DateDistanceFilter.java index 7a33869c13..fdca832758 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/DateDistanceFilter.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/DateDistanceFilter.java @@ -19,8 +19,8 @@ import com.bakdata.conquery.models.query.queryplan.filter.FilterNode; import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.FilterContext; +import com.bakdata.conquery.sql.conversion.model.aggregator.DateDistanceSqlAggregator; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; -import com.bakdata.conquery.sql.conversion.model.select.DateDistanceSqlAggregator; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/FlagFilter.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/FlagFilter.java index b27200c27e..4f9ad7f1b7 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/FlagFilter.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/FlagFilter.java @@ -21,8 +21,8 @@ import com.bakdata.conquery.models.query.queryplan.filter.FilterNode; import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.FilterContext; +import com.bakdata.conquery.sql.conversion.model.aggregator.FlagSqlAggregator; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; -import com.bakdata.conquery.sql.conversion.model.select.FlagSqlAggregator; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import io.dropwizard.validation.ValidationMethod; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/NumberFilter.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/NumberFilter.java index 84a9a72236..e6884bc392 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/NumberFilter.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/NumberFilter.java @@ -19,8 +19,8 @@ import com.bakdata.conquery.models.query.queryplan.filter.FilterNode; import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.FilterContext; +import com.bakdata.conquery.sql.conversion.model.aggregator.NumberSqlAggregator; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; -import com.bakdata.conquery.sql.conversion.model.select.NumberSqlAggregator; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/PrefixTextFilter.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/PrefixTextFilter.java index 02480ea143..3c0056abbc 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/PrefixTextFilter.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/PrefixTextFilter.java @@ -34,5 +34,4 @@ public EnumSet getAcceptedColumnTypes() { public FilterNode createFilterNode(String value) { return new PrefixTextFilterNode(getColumn(), value); } - } diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/SumFilter.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/SumFilter.java index 721718ffc9..8e66e32f2d 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/SumFilter.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/filters/specific/SumFilter.java @@ -34,9 +34,9 @@ import com.bakdata.conquery.models.query.queryplan.filter.FilterNode; import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.FilterContext; +import com.bakdata.conquery.sql.conversion.model.aggregator.SumDistinctSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.SumSqlAggregator; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; -import com.bakdata.conquery.sql.conversion.model.select.SumDistinctSqlAggregator; -import com.bakdata.conquery.sql.conversion.model.select.SumSqlAggregator; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/concept/specific/ExistsSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/concept/specific/ExistsSelect.java index 6cc56558da..368e756c8e 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/concept/specific/ExistsSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/concept/specific/ExistsSelect.java @@ -10,7 +10,7 @@ import com.bakdata.conquery.models.datasets.concepts.select.concept.UniversalSelect; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.ExistsAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.ExistsSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.ExistsSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Getter; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/FirstValueSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/FirstValueSelect.java index f4193fa3d1..8a0c4341bf 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/FirstValueSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/FirstValueSelect.java @@ -9,7 +9,7 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.value.FirstValueAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.FirstValueSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.FirstValueSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/LastValueSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/LastValueSelect.java index b2b5d5c1d8..0e4b5b32bb 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/LastValueSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/LastValueSelect.java @@ -9,7 +9,7 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.value.LastValueAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.LastValueSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.LastValueSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/RandomValueSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/RandomValueSelect.java index 28b907c9f2..94c0f1c2af 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/RandomValueSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/RandomValueSelect.java @@ -9,7 +9,7 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.value.RandomValueAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.RandomValueSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.RandomValueSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountQuartersSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountQuartersSelect.java index 8847bf06e7..f883ac1dc0 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountQuartersSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountQuartersSelect.java @@ -12,7 +12,7 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.specific.CountQuartersOfDateRangeAggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.CountQuartersOfDatesAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.CountQuartersSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.CountQuartersSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountSelect.java index 0e5193425e..46d104ed4b 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/CountSelect.java @@ -15,7 +15,7 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.DistinctValuesWrapperAggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.CountAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.CountSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.CountSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/DateDistanceSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/DateDistanceSelect.java index 5a51626ac3..0711d2d7a1 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/DateDistanceSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/DateDistanceSelect.java @@ -14,7 +14,7 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.DateDistanceAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.DateDistanceSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.DateDistanceSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.fasterxml.jackson.annotation.JsonCreator; import lombok.Getter; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/FlagSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/FlagSelect.java index b183047135..49532d731a 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/FlagSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/FlagSelect.java @@ -13,7 +13,7 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.FlagsAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; -import com.bakdata.conquery.sql.conversion.model.select.FlagSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.FlagSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/PrefixSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/PrefixSelect.java index 2b81bdcea3..91705f7f3a 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/PrefixSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/PrefixSelect.java @@ -4,9 +4,9 @@ import com.bakdata.conquery.io.cps.CPSType; import com.bakdata.conquery.io.jackson.serializer.NsIdRef; +import com.bakdata.conquery.models.datasets.Column; import com.bakdata.conquery.models.datasets.concepts.select.Select; import com.bakdata.conquery.models.datasets.concepts.select.connector.SingleColumnSelect; -import com.bakdata.conquery.models.datasets.Column; import com.bakdata.conquery.models.events.MajorTypeId; import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator; import com.bakdata.conquery.models.query.queryplan.aggregators.specific.PrefixTextAggregator; diff --git a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/SumSelect.java b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/SumSelect.java index db8a5a38b4..d09e6283d9 100644 --- a/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/SumSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/models/datasets/concepts/select/connector/specific/SumSelect.java @@ -27,9 +27,9 @@ import com.bakdata.conquery.models.query.queryplan.aggregators.specific.sum.RealSumAggregator; import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; +import com.bakdata.conquery.sql.conversion.model.aggregator.SumDistinctSqlAggregator; +import com.bakdata.conquery.sql.conversion.model.aggregator.SumSqlAggregator; import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; -import com.bakdata.conquery.sql.conversion.model.select.SumDistinctSqlAggregator; -import com.bakdata.conquery.sql.conversion.model.select.SumSqlAggregator; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import io.dropwizard.validation.ValidationMethod; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conquery/SqlResultInfo.java b/backend/src/main/java/com/bakdata/conquery/sql/conquery/SqlResultInfo.java deleted file mode 100644 index 5ab7aa2102..0000000000 --- a/backend/src/main/java/com/bakdata/conquery/sql/conquery/SqlResultInfo.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bakdata.conquery.sql.conquery; - -import java.util.Set; - -import com.bakdata.conquery.models.query.PrintSettings; -import com.bakdata.conquery.models.query.resultinfo.ResultInfo; -import com.bakdata.conquery.models.types.ResultType; -import com.bakdata.conquery.models.types.SemanticType; - -/** - * Temporary result info that sets all {@link ResultType} to {@link com.bakdata.conquery.models.types.ResultType.StringT}. - */ -public class SqlResultInfo extends ResultInfo { - private final ResultInfo delegate; - - public SqlResultInfo(ResultInfo delegate) { - this.delegate = delegate; - } - - @Override - public String userColumnName(PrintSettings printSettings) { - return delegate.userColumnName(printSettings); - } - - @Override - public String defaultColumnName(PrintSettings printSettings) { - return delegate.defaultColumnName(printSettings); - } - - @Override - public ResultType getType() { - return ResultType.StringT.getINSTANCE(); - } - - @Override - public Set getSemantics() { - return delegate.getSemantics(); - } - - @Override - public String getDescription() { - return delegate.getDescription(); - } -} diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationCteStep.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationCteStep.java index 45fcd9baaf..53520440f3 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationCteStep.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationCteStep.java @@ -4,9 +4,4 @@ interface DateAggregationCteStep extends CteStep { - @Override - default String cteName(String nodeLabel) { - return "%s%s".formatted(nodeLabel, getSuffix()); - } - } diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationDates.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationDates.java index 6fba04fe73..64e78fb98f 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationDates.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/DateAggregationDates.java @@ -24,7 +24,6 @@ public class DateAggregationDates { private static final String RANGE_START = "RANGE_START"; private static final String RANGE_END = "RANGE_END"; - private static final AtomicInteger validityDateCounter = new AtomicInteger(); private final List validityDates; public static DateAggregationDates forSingleStep(QueryStep queryStep) { @@ -36,9 +35,10 @@ public static DateAggregationDates forSingleStep(QueryStep queryStep) { } public static DateAggregationDates forSteps(List querySteps) { + AtomicInteger validityDateCounter = new AtomicInteger(0); List validityDates = querySteps.stream() .filter(queryStep -> queryStep.getSelects().getValidityDate().isPresent()) - .map(DateAggregationDates::numerateValidityDate) + .map(queryStep -> numerateValidityDate(queryStep, validityDateCounter)) .toList(); return new DateAggregationDates(validityDates); } @@ -70,7 +70,7 @@ public DateAggregationDates qualify(String qualifier) { return new DateAggregationDates(qualified); } - private static ColumnDateRange numerateValidityDate(QueryStep queryStep) { + private static ColumnDateRange numerateValidityDate(QueryStep queryStep, AtomicInteger validityDateCounter) { ColumnDateRange validityDate = queryStep.getQualifiedSelects().getValidityDate().get(); if (validityDate.isSingleColumnRange()) { diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/IntersectCteStep.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/IntersectCteStep.java index 706e283bf4..d77e7598b9 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/IntersectCteStep.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/IntersectCteStep.java @@ -13,9 +13,9 @@ @RequiredArgsConstructor enum IntersectCteStep implements DateAggregationCteStep { - OVERLAP("_overlap", OverlapCte::new, null), - INTERMEDIATE_TABLE("_no_overlap", IntermediateTableCte::new, null), - MERGE("_merge", MergeCte::new, OVERLAP); + OVERLAP("overlap", OverlapCte::new, null), + INTERMEDIATE_TABLE("no_overlap", IntermediateTableCte::new, null), + MERGE("merge", MergeCte::new, OVERLAP); private static final Set REQUIRED_STEPS = Set.of(values()); private final String suffix; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/InvertCteStep.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/InvertCteStep.java index 20646b9f32..d2f8bdead5 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/InvertCteStep.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/InvertCteStep.java @@ -13,8 +13,8 @@ @RequiredArgsConstructor enum InvertCteStep implements DateAggregationCteStep { - ROW_NUMBER("_row_numbers", RowNumberCte::new, null), - INVERT("_inverted_dates", InvertCte::new, InvertCteStep.ROW_NUMBER); + ROW_NUMBER("row_numbers", RowNumberCte::new, null), + INVERT("inverted_dates", InvertCte::new, InvertCteStep.ROW_NUMBER); private static final Set REQUIRED_STEPS = Set.of(values()); private final String suffix; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/MergeCteStep.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/MergeCteStep.java index a05436d4b5..1e5fca7618 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/MergeCteStep.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/MergeCteStep.java @@ -13,10 +13,10 @@ @RequiredArgsConstructor enum MergeCteStep implements DateAggregationCteStep { - OVERLAP("_overlap", OverlapCte::new, null), - INTERMEDIATE_TABLE("_no_overlap", IntermediateTableCte::new, null), - NODE_NO_OVERLAP("_node_no_overlap", NodeNoOverlapCte::new, INTERMEDIATE_TABLE), - MERGE("_merge", MergeCte::new, OVERLAP); + OVERLAP("overlap", OverlapCte::new, null), + INTERMEDIATE_TABLE("no_overlap", IntermediateTableCte::new, null), + NODE_NO_OVERLAP("node_no_overlap", NodeNoOverlapCte::new, INTERMEDIATE_TABLE), + MERGE("merge", MergeCte::new, OVERLAP); private static final Set REQUIRED_STEPS = Set.of(values()); private final String suffix; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/PostgreSqlDateAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/PostgreSqlDateAggregator.java index e3ddaa6b30..d11e9eeb02 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/PostgreSqlDateAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/aggregation/PostgreSqlDateAggregator.java @@ -14,23 +14,20 @@ import com.bakdata.conquery.sql.conversion.model.Selects; import com.bakdata.conquery.sql.conversion.model.select.SqlSelect; import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.jooq.Field; import org.jooq.impl.DSL; public class PostgreSqlDateAggregator implements SqlDateAggregator { @Getter + @RequiredArgsConstructor private enum PostgresDateAggregationCteStep implements DateAggregationCteStep { DATE_AGGREGATED("dates_aggregated"), DATES_INVERTED("dates_inverted"); private final String suffix; - - PostgresDateAggregationCteStep(String suffix) { - this.suffix = suffix; - } - } private final SqlFunctionProvider functionProvider; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationFilterCte.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationFilterCte.java index d38d97022e..902e5e8254 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationFilterCte.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationFilterCte.java @@ -2,11 +2,13 @@ import java.util.List; +import com.bakdata.conquery.sql.conversion.model.QualifyingUtil; import com.bakdata.conquery.sql.conversion.model.QueryStep; import com.bakdata.conquery.sql.conversion.model.Selects; import com.bakdata.conquery.sql.conversion.model.filter.WhereCondition; import com.bakdata.conquery.sql.conversion.model.select.SqlSelect; import org.jooq.Condition; +import org.jooq.Field; class AggregationFilterCte extends ConnectorCte { @@ -14,8 +16,9 @@ class AggregationFilterCte extends ConnectorCte { public QueryStep.QueryStepBuilder convertStep(CQTableContext tableContext) { String predecessorTableName = tableContext.getConnectorTables().getPredecessor(cteStep()); + Field primaryColumn = QualifyingUtil.qualify(tableContext.getPrimaryColumn(), predecessorTableName); Selects aggregationFilterSelects = Selects.builder() - .primaryColumn(tableContext.getPrimaryColumn()) + .primaryColumn(primaryColumn) .sqlSelects(getForAggregationFilterSelects(tableContext)) .build() .qualify(predecessorTableName); diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationSelectCte.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationSelectCte.java index 2559b377ea..65d4f80b86 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationSelectCte.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/AggregationSelectCte.java @@ -2,28 +2,33 @@ import java.util.List; +import com.bakdata.conquery.sql.conversion.model.QualifyingUtil; import com.bakdata.conquery.sql.conversion.model.QueryStep; import com.bakdata.conquery.sql.conversion.model.Selects; import com.bakdata.conquery.sql.conversion.model.select.SqlSelect; +import org.jooq.Field; class AggregationSelectCte extends ConnectorCte { @Override public QueryStep.QueryStepBuilder convertStep(CQTableContext tableContext) { + String predecessor = tableContext.getConnectorTables().getPredecessor(ConnectorCteStep.AGGREGATION_SELECT); + Field primaryColumn = QualifyingUtil.qualify(tableContext.getPrimaryColumn(), predecessor); + List requiredInAggregationFilterStep = tableContext.allSqlSelects().stream() .flatMap(sqlSelects -> sqlSelects.getAggregationSelects().stream()) .distinct() .toList(); Selects aggregationSelectSelects = Selects.builder() - .primaryColumn(tableContext.getPrimaryColumn()) + .primaryColumn(primaryColumn) .sqlSelects(requiredInAggregationFilterStep) .build(); return QueryStep.builder() .selects(aggregationSelectSelects) - .groupBy(List.of(tableContext.getPrimaryColumn())); + .groupBy(List.of(primaryColumn)); } @Override diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/ConnectorCteStep.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/ConnectorCteStep.java index 2515a20e75..374a881b71 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/ConnectorCteStep.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/ConnectorCteStep.java @@ -28,14 +28,8 @@ public enum ConnectorCteStep implements CteStep { private final ConnectorCteStep predecessor; public static Set withOptionalSteps(ConnectorCteStep... connectorCteStep) { - HashSet steps = new HashSet<>(MANDATORY_STEPS); + Set steps = new HashSet<>(MANDATORY_STEPS); steps.addAll(Set.of(connectorCteStep)); return steps; } - - @Override - public String cteName(String conceptLabel) { - return "%s-%s".formatted(conceptLabel, this.suffix); - } - } diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/EventFilterCte.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/EventFilterCte.java index 8491ff2bf8..68f2760796 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/EventFilterCte.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/concept/EventFilterCte.java @@ -4,11 +4,13 @@ import java.util.Optional; import com.bakdata.conquery.sql.conversion.model.ColumnDateRange; +import com.bakdata.conquery.sql.conversion.model.QualifyingUtil; import com.bakdata.conquery.sql.conversion.model.QueryStep; import com.bakdata.conquery.sql.conversion.model.Selects; import com.bakdata.conquery.sql.conversion.model.filter.WhereCondition; import com.bakdata.conquery.sql.conversion.model.select.SqlSelect; import org.jooq.Condition; +import org.jooq.Field; class EventFilterCte extends ConnectorCte { @@ -32,6 +34,8 @@ public ConnectorCteStep cteStep() { private Selects getEventFilterSelects(CQTableContext tableContext) { String predecessorTableName = tableContext.getConnectorTables().getPredecessor(cteStep()); + Field primaryColumn = QualifyingUtil.qualify(tableContext.getPrimaryColumn(), predecessorTableName); + Optional validityDate = tableContext.getValidityDate(); if (validityDate.isPresent()) { validityDate = Optional.of(validityDate.get().qualify(predecessorTableName)); @@ -43,7 +47,7 @@ private Selects getEventFilterSelects(CQTableContext tableContext) { .toList(); return Selects.builder() - .primaryColumn(tableContext.getPrimaryColumn()) + .primaryColumn(primaryColumn) .validityDate(validityDate) .sqlSelects(sqlSelects) .build(); diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/intervalpacking/IntervalPackingCteStep.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/intervalpacking/IntervalPackingCteStep.java index bf33c1a61e..5a1370dfe1 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/intervalpacking/IntervalPackingCteStep.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/cqelement/intervalpacking/IntervalPackingCteStep.java @@ -8,16 +8,11 @@ @RequiredArgsConstructor public enum IntervalPackingCteStep implements CteStep { - PREVIOUS_END("_previous_end", null), - RANGE_INDEX("_range_index", PREVIOUS_END), - INTERVAL_COMPLETE("_interval_complete", RANGE_INDEX); + PREVIOUS_END("previous_end", null), + RANGE_INDEX("range_index", PREVIOUS_END), + INTERVAL_COMPLETE("interval_complete", RANGE_INDEX); private final String suffix; private final IntervalPackingCteStep predecessor; - @Override - public String cteName(String nodeLabel) { - return "%s%s".formatted(nodeLabel, this.suffix); - } - } diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/HanaSqlFunctionProvider.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/HanaSqlFunctionProvider.java index 9a46ef9bc2..3de5aac2ae 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/HanaSqlFunctionProvider.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/HanaSqlFunctionProvider.java @@ -18,7 +18,7 @@ class HanaSqlFunctionProvider implements SqlFunctionProvider { - public static final char DELIMITER = ','; + private static final char DELIMITER = ','; private static final String MAX_DATE_VALUE = "9999-12-31"; private static final String MIN_DATE_VALUE = "0001-01-01"; private static final String ANY_CHAR_REGEX = ".*"; @@ -78,7 +78,7 @@ public ColumnDateRange daterange(CDateRange dateRestriction) { } @Override - public ColumnDateRange daterange(ValidityDate validityDate, String qualifier, String conceptLabel) { + public ColumnDateRange daterange(ValidityDate validityDate, String qualifier, String label) { Column startColumn; Column endColumn; @@ -104,7 +104,7 @@ public ColumnDateRange daterange(ValidityDate validityDate, String qualifier, St ); return ColumnDateRange.of(rangeStart, rangeEnd) - .asValidityDateRange(conceptLabel); + .asValidityDateRange(label); } @Override diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/PostgreSqlFunctionProvider.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/PostgreSqlFunctionProvider.java index dd7e56ee41..df70e75185 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/PostgreSqlFunctionProvider.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/PostgreSqlFunctionProvider.java @@ -89,7 +89,7 @@ public ColumnDateRange daterange(CDateRange dateRestriction) { } @Override - public ColumnDateRange daterange(ValidityDate validityDate, String qualifier, String conceptLabel) { + public ColumnDateRange daterange(ValidityDate validityDate, String qualifier, String label) { Field dateRange; @@ -125,7 +125,7 @@ public ColumnDateRange daterange(ValidityDate validityDate, String qualifier, St } return ColumnDateRange.of(dateRange) - .asValidityDateRange(conceptLabel); + .asValidityDateRange(label); } @Override diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/SqlFunctionProvider.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/SqlFunctionProvider.java index 3fb1a65707..8e952cec7a 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/SqlFunctionProvider.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/dialect/SqlFunctionProvider.java @@ -48,7 +48,7 @@ public interface SqlFunctionProvider { ColumnDateRange daterange(CDateRange dateRestriction); - ColumnDateRange daterange(ValidityDate validityDate, String qualifier, String conceptLabel); + ColumnDateRange daterange(ValidityDate validityDate, String qualifier, String label); ColumnDateRange aggregated(ColumnDateRange columnDateRange); diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QualifyingUtil.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QualifyingUtil.java index bf7f4dbb7e..cfd1fe0ef6 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QualifyingUtil.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QualifyingUtil.java @@ -15,7 +15,7 @@ public static Field qualify(Field field, String qualifier) { public static List qualify(List sqlSelects, String qualifier) { return sqlSelects.stream() - .map(sqlSelect -> sqlSelect.createAliasedReference(qualifier)) + .map(sqlSelect -> sqlSelect.createAliasReference(qualifier)) .collect(Collectors.toList()); } diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QueryStepJoiner.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QueryStepJoiner.java index 15da8647d6..a7a5ed1874 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QueryStepJoiner.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/QueryStepJoiner.java @@ -21,7 +21,7 @@ public class QueryStepJoiner { - static String PRIMARY_COLUMN_NAME = "primary_column"; + private static final String PRIMARY_COLUMN_NAME = "primary_column"; public static ConversionContext joinChildren( Iterable children, @@ -37,7 +37,7 @@ public static ConversionContext joinChildren( List queriesToJoin = childrenContext.getQuerySteps(); - String joinedCteName = constructJoinedQueryStepLabel(queriesToJoin, logicalOperation); + String joinedCteName = context.getNameGenerator().joinedNodeName(logicalOperation); Field primaryColumn = coalescePrimaryColumns(queriesToJoin); List mergedSelects = mergeSelects(queriesToJoin); TableLike joinedTable = constructJoinedTable(queriesToJoin, logicalOperation, context); @@ -112,20 +112,6 @@ public static List mergeSelects(List querySteps) { .collect(Collectors.toList()); } - private static String constructJoinedQueryStepLabel(List queriesToJoin, LogicalOperation logicalOperation) { - - String labelConnector = switch (logicalOperation) { - case AND -> "AND"; - case OR -> "OR"; - }; - - String concatenatedCteNames = queriesToJoin.stream() - .map(QueryStep::getCteName) - .collect(Collectors.joining("")); - - return "%s_%8H".formatted(labelConnector, concatenatedCteNames.hashCode()); - } - private static Table getIntitialJoinTable(List queriesToJoin) { return DSL.table(DSL.name(queriesToJoin.get(0).getCteName())); } diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/Selects.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/Selects.java index 982ed51568..9a2d4740f8 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/Selects.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/Selects.java @@ -38,7 +38,7 @@ public Selects blockValidityDate() { public Selects qualify(String qualifier) { Field qualifiedPrimaryColumn = DSL.field(DSL.name(qualifier, this.primaryColumn.getName())); List sqlSelects = this.sqlSelects.stream() - .map(sqlSelect -> sqlSelect.createAliasedReference(qualifier)) + .map(sqlSelect -> sqlSelect.createAliasReference(qualifier)) .distinct() .collect(Collectors.toList()); diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/CountQuartersSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/CountQuartersSqlAggregator.java similarity index 84% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/CountQuartersSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/CountQuartersSqlAggregator.java index 75369ec659..2ebae196cb 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/CountQuartersSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/CountQuartersSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.sql.Date; @@ -14,6 +14,9 @@ import com.bakdata.conquery.sql.conversion.model.SqlTables; import com.bakdata.conquery.sql.conversion.model.filter.CountCondition; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Field; import org.jooq.impl.DSL; @@ -37,7 +40,7 @@ private CountQuartersSqlAggregator( Date.class ); - Field qualifiedRootSelect = rootSelect.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); + Field qualifiedRootSelect = rootSelect.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); FieldWrapper countQuartersField = new FieldWrapper<>( DSL.countDistinct(functionProvider.yearQuarter(qualifiedRootSelect)).as(alias), column.getName() @@ -48,13 +51,13 @@ private CountQuartersSqlAggregator( .aggregationSelect(countQuartersField); if (filterValue == null) { - ExtractingSqlSelect finalSelect = countQuartersField.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = countQuartersField.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = builder.finalSelect(finalSelect).build(); this.whereClauses = WhereClauses.builder().build(); } else { this.sqlSelects = builder.build(); - Field qualified = countQuartersField.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); + Field qualified = countQuartersField.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); CountCondition countCondition = new CountCondition(qualified, filterValue); this.whereClauses = WhereClauses.builder() .groupFilter(countCondition) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/CountSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/CountSqlAggregator.java similarity index 84% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/CountSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/CountSqlAggregator.java index 7f5283c76c..a43528dc66 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/CountSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/CountSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import com.bakdata.conquery.models.common.IRange; import com.bakdata.conquery.models.common.Range; @@ -12,6 +12,9 @@ import com.bakdata.conquery.sql.conversion.model.filter.CountCondition; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Field; import org.jooq.impl.DSL; @@ -36,7 +39,7 @@ private CountSqlAggregator( Object.class ); - Field qualifiedRootSelect = rootSelect.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); + Field qualifiedRootSelect = rootSelect.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); Field countField = countType == CountType.DISTINCT ? DSL.countDistinct(qualifiedRootSelect) : DSL.count(qualifiedRootSelect); @@ -47,14 +50,14 @@ private CountSqlAggregator( .aggregationSelect(countGroupBy); if (filterValue == null) { - ExtractingSqlSelect finalSelect = countGroupBy.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = countGroupBy.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = builder.finalSelect(finalSelect).build(); this.whereClauses = null; } else { this.sqlSelects = builder.build(); Field qualifiedCountSelect = - countGroupBy.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); + countGroupBy.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); CountCondition countCondition = new CountCondition(qualifiedCountSelect, filterValue); this.whereClauses = WhereClauses.builder() .groupFilter(countCondition) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/DateDistanceSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/DateDistanceSqlAggregator.java similarity index 89% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/DateDistanceSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/DateDistanceSqlAggregator.java index 38848ea2b5..eb9e5ff8c6 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/DateDistanceSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/DateDistanceSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.sql.Date; import java.time.LocalDate; @@ -19,6 +19,9 @@ import com.bakdata.conquery.sql.conversion.model.filter.DateDistanceCondition; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; import com.bakdata.conquery.sql.conversion.model.filter.WhereCondition; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import com.bakdata.conquery.sql.conversion.supplier.DateNowSupplier; import lombok.Value; import org.jooq.Field; @@ -52,11 +55,11 @@ private DateDistanceSqlAggregator( if (filterValue == null) { - Field qualifiedDateDistance = dateDistanceSelect.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)) + Field qualifiedDateDistance = dateDistanceSelect.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)) .select(); FieldWrapper minDateDistance = new FieldWrapper<>(DSL.min(qualifiedDateDistance).as(alias)); - ExtractingSqlSelect finalSelect = minDateDistance.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = minDateDistance.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = builder.aggregationSelect(minDateDistance) .finalSelect(finalSelect) @@ -67,7 +70,7 @@ private DateDistanceSqlAggregator( this.sqlSelects = builder.build(); Field qualifiedDateDistanceSelect = - dateDistanceSelect.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.EVENT_FILTER)).select(); + dateDistanceSelect.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.EVENT_FILTER)).select(); WhereCondition dateDistanceCondition = new DateDistanceCondition(qualifiedDateDistanceSelect, filterValue); this.whereClauses = WhereClauses.builder() .eventFilter(dateDistanceCondition) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/ExistsSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/ExistsSqlAggregator.java similarity index 77% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/ExistsSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/ExistsSqlAggregator.java index 0cc16db411..f245ecdbfa 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/ExistsSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/ExistsSqlAggregator.java @@ -1,8 +1,11 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import com.bakdata.conquery.models.datasets.concepts.select.concept.specific.ExistsSelect; import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; +import com.bakdata.conquery.sql.conversion.model.select.UniversalSqlSelect; import lombok.Value; import org.jooq.impl.DSL; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FirstValueSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/FirstValueSqlAggregator.java similarity index 80% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FirstValueSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/FirstValueSqlAggregator.java index 194e928b17..329a4101c8 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FirstValueSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/FirstValueSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.util.Collections; import java.util.List; @@ -12,6 +12,9 @@ import com.bakdata.conquery.sql.conversion.model.ColumnDateRange; import com.bakdata.conquery.sql.conversion.model.SqlTables; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Field; @@ -36,10 +39,10 @@ private FirstValueSqlAggregator( validityDate.map(_validityDate -> _validityDate.qualify(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT))) .map(ColumnDateRange::toFields) .orElse(Collections.emptyList()); - Field qualifiedRootSelect = rootSelect.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); + Field qualifiedRootSelect = rootSelect.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); FieldWrapper firstGroupBy = new FieldWrapper<>(functionProvider.first(qualifiedRootSelect, validityDateFields).as(alias), columnName); - ExtractingSqlSelect finalSelect = firstGroupBy.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = firstGroupBy.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = SqlSelects.builder() .preprocessingSelect(rootSelect) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FlagSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/FlagSqlAggregator.java similarity index 93% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FlagSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/FlagSqlAggregator.java index 97697f652a..2f59256bb0 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FlagSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/FlagSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.util.ArrayList; import java.util.Arrays; @@ -16,6 +16,10 @@ import com.bakdata.conquery.sql.conversion.model.SqlTables; import com.bakdata.conquery.sql.conversion.model.filter.FlagCondition; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Condition; import org.jooq.Field; @@ -80,7 +84,7 @@ public static FlagSqlAggregator create(FlagSelect flagSelect, SelectContext sele String alias = selectContext.getNameGenerator().selectName(flagSelect); FieldWrapper flagAggregation = createFlagSelect(alias, connectorTables, functionProvider, rootSelects); - ExtractingSqlSelect finalSelect = flagAggregation.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = flagAggregation.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); SqlSelects sqlSelects = SqlSelects.builder().preprocessingSelects(rootSelects.values()) .aggregationSelect(flagAggregation) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/LastValueSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/LastValueSqlAggregator.java similarity index 80% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/LastValueSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/LastValueSqlAggregator.java index ba4b13fd66..f094f97aba 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/LastValueSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/LastValueSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.util.Collections; import java.util.List; @@ -12,6 +12,9 @@ import com.bakdata.conquery.sql.conversion.model.ColumnDateRange; import com.bakdata.conquery.sql.conversion.model.SqlTables; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Field; @@ -36,10 +39,10 @@ private LastValueSqlAggregator( validityDate.map(_validityDate -> _validityDate.qualify(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT))) .map(ColumnDateRange::toFields) .orElse(Collections.emptyList()); - Field qualifiedRootSelect = rootSelect.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); + Field qualifiedRootSelect = rootSelect.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); FieldWrapper lastGroupBy = new FieldWrapper<>(functionProvider.last(qualifiedRootSelect, validityDateFields).as(alias), columnName); - ExtractingSqlSelect finalSelect = lastGroupBy.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = lastGroupBy.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = SqlSelects.builder() .preprocessingSelect(rootSelect) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/NumberMapUtil.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/NumberMapUtil.java similarity index 85% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/NumberMapUtil.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/NumberMapUtil.java index 6d0cf8431a..d50bcbf75e 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/NumberMapUtil.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/NumberMapUtil.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.math.BigDecimal; import java.util.Map; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/NumberSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/NumberSqlAggregator.java similarity index 93% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/NumberSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/NumberSqlAggregator.java index a6ce0c22aa..08a84356f1 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/NumberSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/NumberSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.math.BigDecimal; import java.util.List; @@ -11,8 +11,10 @@ import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import com.bakdata.conquery.sql.conversion.cqelement.concept.FilterContext; import com.bakdata.conquery.sql.conversion.model.SqlTables; -import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; import com.bakdata.conquery.sql.conversion.model.filter.NumberCondition; +import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Field; diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/RandomValueSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/RandomValueSqlAggregator.java similarity index 79% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/RandomValueSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/RandomValueSqlAggregator.java index 6aee5500ed..29763678a1 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/RandomValueSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/RandomValueSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import com.bakdata.conquery.models.datasets.Column; import com.bakdata.conquery.models.datasets.concepts.select.connector.RandomValueSelect; @@ -7,6 +7,9 @@ import com.bakdata.conquery.sql.conversion.dialect.SqlFunctionProvider; import com.bakdata.conquery.sql.conversion.model.SqlTables; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Field; @@ -26,10 +29,10 @@ private RandomValueSqlAggregator( String columnName = column.getName(); ExtractingSqlSelect rootSelect = new ExtractingSqlSelect<>(rootTableName, columnName, Object.class); - Field qualifiedRootSelect = rootSelect.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); + Field qualifiedRootSelect = rootSelect.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT)).select(); FieldWrapper randomGroupBy = new FieldWrapper<>(functionProvider.random(qualifiedRootSelect).as(alias), columnName); - ExtractingSqlSelect finalSelect = randomGroupBy.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = randomGroupBy.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = SqlSelects.builder() .preprocessingSelect(rootSelect) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SqlAggregator.java similarity index 72% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SqlAggregator.java index 46d624d89e..f79ed962a5 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SqlAggregator.java @@ -1,7 +1,8 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; public interface SqlAggregator { diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SumDistinctSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SumDistinctSqlAggregator.java similarity index 90% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SumDistinctSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SumDistinctSqlAggregator.java index 686e25ffce..f8938fca59 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SumDistinctSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SumDistinctSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.math.BigDecimal; import java.util.List; @@ -21,7 +21,11 @@ import com.bakdata.conquery.sql.conversion.model.SqlTables; import com.bakdata.conquery.sql.conversion.model.filter.SumCondition; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Getter; +import lombok.RequiredArgsConstructor; import lombok.Value; import org.jooq.Field; import org.jooq.impl.DSL; @@ -30,6 +34,7 @@ public class SumDistinctSqlAggregator implements SqlAggregator { @Getter + @RequiredArgsConstructor private enum SumDistinctCteStep implements CteStep { GROUP_BY_DISTINCT_COLUMNS("grouped_by_distinct_columns", null), @@ -37,16 +42,6 @@ private enum SumDistinctCteStep implements CteStep { private final String suffix; private final SumDistinctCteStep predecessor; - - SumDistinctCteStep(String suffix, SumDistinctCteStep predecessor) { - this.suffix = suffix; - this.predecessor = predecessor; - } - - @Override - public String cteName(String nodeLabel) { - return "%s-%s".formatted(nodeLabel, this.suffix); - } } private static final String ROW_NUMBER_ALIAS = "row_number"; @@ -77,12 +72,12 @@ public SumDistinctSqlAggregator( // sum column grouped by distinct columns String predecessor = connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_SELECT); - ExtractingSqlSelect qualifiedRootSelect = sumColumnRootSelect.createAliasedReference(predecessor); + ExtractingSqlSelect qualifiedRootSelect = sumColumnRootSelect.createAliasReference(predecessor); FieldWrapper firstSelect = new FieldWrapper<>(functionProvider.first(qualifiedRootSelect.select(), List.of()).as(alias)); QueryStep distinctColumnsStep = getGroupByDistinctColumnsStep(alias, primaryColumn, nameGenerator, predecessor, firstSelect, distinctByRootSelects); // sum select - Field firstSumColumn = firstSelect.createAliasedReference(distinctColumnsStep.getCteName()).select(); + Field firstSumColumn = firstSelect.createAliasReference(distinctColumnsStep.getCteName()).select(); FieldWrapper distinctSum = new FieldWrapper<>(DSL.sum(firstSumColumn).as(alias)); // sum aggregation @@ -97,14 +92,14 @@ public SumDistinctSqlAggregator( this.sqlSelects = builder.build(); Field qualifiedSumSelect = - distinctSum.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); + distinctSum.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); SumCondition sumCondition = new SumCondition(qualifiedSumSelect, filterValue); this.whereClauses = WhereClauses.builder() .groupFilter(sumCondition) .build(); } else { - ExtractingSqlSelect finalSelect = distinctSum.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = distinctSum.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = builder.finalSelect(finalSelect).build(); this.whereClauses = WhereClauses.builder().build(); } @@ -175,7 +170,7 @@ private static QueryStep getGroupByDistinctColumnsStep( List> groupByFields = Stream.concat( Stream.of(qualifiedPrimaryColumn), - distinctByRootSelects.stream().map(sqlSelect -> sqlSelect.createAliasedReference(predecessor)).map(ExtractingSqlSelect::select) + distinctByRootSelects.stream().map(sqlSelect -> sqlSelect.createAliasReference(predecessor)).map(ExtractingSqlSelect::select) ).collect(Collectors.toList()); return QueryStep.builder() diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SumSqlAggregator.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SumSqlAggregator.java similarity index 84% rename from backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SumSqlAggregator.java rename to backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SumSqlAggregator.java index e9878632bc..2e6563e068 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SumSqlAggregator.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/aggregator/SumSqlAggregator.java @@ -1,4 +1,4 @@ -package com.bakdata.conquery.sql.conversion.model.select; +package com.bakdata.conquery.sql.conversion.model.aggregator; import java.math.BigDecimal; import java.util.ArrayList; @@ -14,6 +14,9 @@ import com.bakdata.conquery.sql.conversion.model.SqlTables; import com.bakdata.conquery.sql.conversion.model.filter.SumCondition; import com.bakdata.conquery.sql.conversion.model.filter.WhereClauses; +import com.bakdata.conquery.sql.conversion.model.select.ExtractingSqlSelect; +import com.bakdata.conquery.sql.conversion.model.select.FieldWrapper; +import com.bakdata.conquery.sql.conversion.model.select.SqlSelects; import lombok.Value; import org.jooq.Field; import org.jooq.impl.DSL; @@ -51,12 +54,12 @@ private SumSqlAggregator( ); preprocessingSelects.add(subtractColumnRootSelect); - Field qualifiedRootSelect = rootSelect.createAliasedReference(aggregationSelectPredecessor).select(); - Field qualifiedSubtractRootSelect = subtractColumnRootSelect.createAliasedReference(aggregationSelectPredecessor).select(); + Field qualifiedRootSelect = rootSelect.createAliasReference(aggregationSelectPredecessor).select(); + Field qualifiedSubtractRootSelect = subtractColumnRootSelect.createAliasReference(aggregationSelectPredecessor).select(); sumField = qualifiedRootSelect.minus(qualifiedSubtractRootSelect); } else { - sumField = rootSelect.createAliasedReference(aggregationSelectPredecessor).select(); + sumField = rootSelect.createAliasReference(aggregationSelectPredecessor).select(); } FieldWrapper sumGroupBy = new FieldWrapper<>(DSL.sum(sumField).as(alias), sumColumn.getName()); @@ -65,14 +68,14 @@ private SumSqlAggregator( .aggregationSelect(sumGroupBy); if (filterValue == null) { - ExtractingSqlSelect finalSelect = sumGroupBy.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); + ExtractingSqlSelect finalSelect = sumGroupBy.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.FINAL)); this.sqlSelects = builder.finalSelect(finalSelect).build(); this.whereClauses = null; } else { this.sqlSelects = builder.build(); Field qualifiedSumGroupBy = - sumGroupBy.createAliasedReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); + sumGroupBy.createAliasReference(connectorTables.getPredecessor(ConnectorCteStep.AGGREGATION_FILTER)).select(); SumCondition sumCondition = new SumCondition(qualifiedSumGroupBy, filterValue); this.whereClauses = WhereClauses.builder() .groupFilter(sumCondition) diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/ExtractingSqlSelect.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/ExtractingSqlSelect.java index 04496ca30a..860125b3d5 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/ExtractingSqlSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/ExtractingSqlSelect.java @@ -37,7 +37,7 @@ public String columnName() { } @Override - public ExtractingSqlSelect createAliasedReference(String qualifier) { + public ExtractingSqlSelect createAliasReference(String qualifier) { Field aliased = aliased(); return new ExtractingSqlSelect<>( qualifier, diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FieldWrapper.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FieldWrapper.java index 39b93fc923..6f3dba73d6 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FieldWrapper.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/FieldWrapper.java @@ -51,7 +51,7 @@ public String columnName() { } @Override - public ExtractingSqlSelect createAliasedReference(String qualifier) { + public ExtractingSqlSelect createAliasReference(String qualifier) { Field aliased = aliased(); return new ExtractingSqlSelect<>( qualifier, diff --git a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SqlSelect.java b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SqlSelect.java index 507d09cf22..b2a795b0bf 100644 --- a/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SqlSelect.java +++ b/backend/src/main/java/com/bakdata/conquery/sql/conversion/model/select/SqlSelect.java @@ -1,7 +1,6 @@ package com.bakdata.conquery.sql.conversion.model.select; -import com.bakdata.conquery.sql.conversion.cqelement.concept.ConnectorCteStep; import org.jooq.Field; public interface SqlSelect { @@ -27,7 +26,8 @@ public interface SqlSelect { /** * @return Creates a reference to the alias of this SqlSelect qualified onto the given qualifier. */ - ExtractingSqlSelect createAliasedReference(String qualifier); + ExtractingSqlSelect createAliasReference(String qualifier); + /** * @return Creates a reference to the column of this SqlSelect qualified onto the given qualifier. */ @@ -40,7 +40,7 @@ default ExtractingSqlSelect createColumnReference(String qualifier) { } /** - * @return Determines if this is only part of the {@link ConnectorCteStep#FINAL} CTE and has no predeceasing selects. + * @return Determines if this SqlSelect is only part of the final concept conversion CTE and has no predeceasing selects. */ default boolean isUniversal() { return false;