Skip to content

Commit

Permalink
Make all connector conversion CTE steps mandatory (#3300)
Browse files Browse the repository at this point in the history
  • Loading branch information
jnsrnhld authored Feb 19, 2024
1 parent 95bb0b7 commit a1c53d3
Show file tree
Hide file tree
Showing 56 changed files with 613 additions and 476 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.bakdata.conquery.models.datasets.concepts.filters.specific;

import java.util.Set;

import com.bakdata.conquery.apiv1.frontend.FrontendFilterType;
import com.bakdata.conquery.io.cps.CPSType;
import com.bakdata.conquery.models.datasets.concepts.filters.Filter;
import com.bakdata.conquery.models.query.filter.event.MultiSelectFilterNode;
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.cqelement.concept.SelectFilterUtil;
import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters;
Expand Down Expand Up @@ -42,9 +39,4 @@ public SqlFilters convertToSqlFilter(FilterContext<String[]> filterContext) {
return SelectFilterUtil.convert(this, filterContext, filterContext.getValue());
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.EVENT_FILTER);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import javax.validation.constraints.NotNull;

Expand All @@ -20,7 +19,6 @@
import com.bakdata.conquery.models.query.queryplan.aggregators.DistinctValuesWrapperAggregator;
import com.bakdata.conquery.models.query.queryplan.aggregators.specific.CountAggregator;
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;
Expand Down Expand Up @@ -79,9 +77,4 @@ public SqlFilters convertToSqlFilter(FilterContext<Range.LongRange> filterContex
return CountSqlAggregator.create(this, filterContext).getSqlFilters();
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.AGGREGATION_FILTER);
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.bakdata.conquery.models.datasets.concepts.filters.specific;

import java.util.EnumSet;
import java.util.Set;

import com.bakdata.conquery.apiv1.frontend.FrontendFilterConfiguration;
import com.bakdata.conquery.apiv1.frontend.FrontendFilterType;
Expand All @@ -15,10 +14,9 @@
import com.bakdata.conquery.models.query.queryplan.aggregators.specific.CountQuartersOfDateRangeAggregator;
import com.bakdata.conquery.models.query.queryplan.aggregators.specific.CountQuartersOfDatesAggregator;
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;

Expand Down Expand Up @@ -53,8 +51,4 @@ public SqlFilters convertToSqlFilter(FilterContext<Range.LongRange> filterContex
return CountQuartersSqlAggregator.create(this, filterContext).getSqlFilters();
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.AGGREGATION_FILTER);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.time.temporal.ChronoUnit;
import java.util.EnumSet;
import java.util.Set;

import javax.validation.constraints.NotNull;

Expand All @@ -17,7 +16,6 @@
import com.bakdata.conquery.models.exceptions.ConceptConfigurationException;
import com.bakdata.conquery.models.query.filter.event.DateDistanceFilterNode;
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;
Expand Down Expand Up @@ -59,9 +57,4 @@ public SqlFilters convertToSqlFilter(FilterContext<Range.LongRange> filterContex
return DateDistanceSqlAggregator.create(this, filterContext).getSqlFilters();
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.EVENT_FILTER);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.bakdata.conquery.models.exceptions.ConceptConfigurationException;
import com.bakdata.conquery.models.query.filter.event.FlagColumnsFilterNode;
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;
Expand Down Expand Up @@ -99,8 +98,4 @@ public SqlFilters convertToSqlFilter(FilterContext<String[]> filterContext) {
return FlagSqlAggregator.create(this, filterContext).getSqlFilters();
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.EVENT_FILTER);
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.bakdata.conquery.models.datasets.concepts.filters.specific;

import java.util.Set;

import com.bakdata.conquery.apiv1.frontend.FrontendFilterType;
import com.bakdata.conquery.io.cps.CPSType;
import com.bakdata.conquery.models.datasets.concepts.filters.Filter;
import com.bakdata.conquery.models.query.filter.event.MultiSelectFilterNode;
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.cqelement.concept.SelectFilterUtil;
import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters;
Expand Down Expand Up @@ -41,9 +38,4 @@ public SqlFilters convertToSqlFilter(FilterContext<String[]> filterContext) {
return SelectFilterUtil.convert(this, filterContext, filterContext.getValue());
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.EVENT_FILTER);
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.bakdata.conquery.models.datasets.concepts.filters.specific;

import java.math.BigDecimal;
import java.util.Set;

import com.bakdata.conquery.apiv1.frontend.FrontendFilterConfiguration;
import com.bakdata.conquery.apiv1.frontend.FrontendFilterType;
Expand All @@ -17,7 +16,6 @@
import com.bakdata.conquery.models.query.filter.event.number.MoneyFilterNode;
import com.bakdata.conquery.models.query.filter.event.number.RealFilterNode;
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;
Expand Down Expand Up @@ -64,9 +62,4 @@ public SqlFilters convertToSqlFilter(FilterContext<RANGE> filterContext) {
return NumberSqlAggregator.create(this, filterContext).getSqlFilters();
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.EVENT_FILTER);
}

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.bakdata.conquery.models.datasets.concepts.filters.specific;

import java.util.Set;

import com.bakdata.conquery.apiv1.frontend.FrontendFilterType;
import com.bakdata.conquery.io.cps.CPSType;
import com.bakdata.conquery.models.datasets.concepts.filters.Filter;
import com.bakdata.conquery.models.query.filter.event.SelectFilterNode;
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.cqelement.concept.SelectFilterUtil;
import com.bakdata.conquery.sql.conversion.model.filter.SqlFilters;
Expand Down Expand Up @@ -37,9 +34,4 @@ public SqlFilters convertToSqlFilter(FilterContext<String> filterContext) {
return SelectFilterUtil.convert(this, filterContext, new String[]{filterContext.getValue()});
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.EVENT_FILTER);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import javax.annotation.Nullable;
import javax.validation.constraints.NotNull;
Expand Down Expand Up @@ -32,7 +31,6 @@
import com.bakdata.conquery.models.query.queryplan.aggregators.specific.sum.MoneySumAggregator;
import com.bakdata.conquery.models.query.queryplan.aggregators.specific.sum.RealSumAggregator;
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;
Expand Down Expand Up @@ -116,14 +114,6 @@ public SqlFilters convertToSqlFilter(FilterContext<RANGE> filterContext) {
return SumSqlAggregator.create(this, filterContext).getSqlFilters();
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
if (distinctByColumn != null && !distinctByColumn.isEmpty()) {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.JOIN_PREDECESSORS, ConnectorCteStep.AGGREGATION_FILTER);
}
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.AGGREGATION_FILTER);
}

@JsonIgnore
private ColumnAggregator<?> getAggregator() {
if (getSubtractColumn() == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import com.bakdata.conquery.models.query.resultinfo.SelectResultInfo;
import com.bakdata.conquery.models.types.ResultType;
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.select.SelectContext;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import com.bakdata.conquery.models.datasets.concepts.select.Select;
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.SelectContext;
import com.bakdata.conquery.sql.conversion.model.aggregator.ExistsSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonIgnore;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.bakdata.conquery.models.index.InternToExternMapper;
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.SelectContext;
import com.bakdata.conquery.sql.conversion.model.aggregator.FirstValueSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonCreator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.bakdata.conquery.models.index.InternToExternMapper;
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.SelectContext;
import com.bakdata.conquery.sql.conversion.model.aggregator.LastValueSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonCreator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.bakdata.conquery.models.index.InternToExternMapper;
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.SelectContext;
import com.bakdata.conquery.sql.conversion.model.aggregator.RandomValueSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonCreator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator;
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.aggregator.CountQuartersSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SelectContext;
import com.bakdata.conquery.sql.conversion.model.select.CountQuartersSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonCreator;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import com.bakdata.conquery.models.query.queryplan.aggregators.Aggregator;
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.SelectContext;
import com.bakdata.conquery.sql.conversion.model.aggregator.CountSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
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.DateDistanceAggregator;
import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext;
import com.bakdata.conquery.sql.conversion.model.select.SelectContext;
import com.bakdata.conquery.sql.conversion.model.aggregator.DateDistanceSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonCreator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
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.FlagsAggregator;
import com.bakdata.conquery.sql.conversion.cqelement.concept.SelectContext;
import com.bakdata.conquery.sql.conversion.model.select.SelectContext;
import com.bakdata.conquery.sql.conversion.model.aggregator.FlagSqlAggregator;
import com.bakdata.conquery.sql.conversion.model.select.SqlSelects;
import com.fasterxml.jackson.annotation.JsonCreator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.Collections;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;

import javax.validation.constraints.NotNull;

Expand All @@ -25,8 +24,7 @@
import com.bakdata.conquery.models.query.queryplan.aggregators.specific.sum.IntegerSumAggregator;
import com.bakdata.conquery.models.query.queryplan.aggregators.specific.sum.MoneySumAggregator;
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.select.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;
Expand Down Expand Up @@ -136,12 +134,4 @@ public SqlSelects convertToSqlSelects(SelectContext selectContext) {
return SumSqlAggregator.create(this, selectContext).getSqlSelects();
}

@Override
public Set<ConnectorCteStep> getRequiredSqlSteps() {
if (distinctByColumn != null && !distinctByColumn.isEmpty()) {
return ConnectorCteStep.withOptionalSteps(ConnectorCteStep.JOIN_PREDECESSORS);
}
return ConnectorCteStep.MANDATORY_STEPS;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.bakdata.conquery.sql.conversion;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public enum SharedAliases {

PRIMARY_COLUMN("pid");

private final String alias;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.sql.Date;
import java.util.Optional;

import com.bakdata.conquery.sql.conversion.SharedAliases;
import com.bakdata.conquery.sql.conversion.dialect.SqlFunctionProvider;
import com.bakdata.conquery.sql.conversion.model.ColumnDateRange;
import com.bakdata.conquery.sql.conversion.model.QualifyingUtil;
Expand All @@ -24,7 +25,6 @@ class InvertCte extends DateAggregationCte {

public static final String ROWS_LEFT_TABLE_NAME = "rows_left";
public static final String ROWS_RIGHT_TABLE_NAME = "rows_right";
public static final String PRIMARY_COLUMN_FIELD_NAME = "primary_column";

private final DateAggregationCteStep cteStep;

Expand All @@ -41,7 +41,7 @@ protected QueryStep.QueryStepBuilder convertStep(DateAggregationContext context)
Field<Object> leftPrimaryColumn = QualifyingUtil.qualify(primaryColumn, ROWS_LEFT_TABLE_NAME);
Field<Object> rightPrimaryColumn = QualifyingUtil.qualify(primaryColumn, ROWS_RIGHT_TABLE_NAME);
Field<Object> coalescedPrimaryColumn = DSL.coalesce(leftPrimaryColumn, rightPrimaryColumn)
.as(PRIMARY_COLUMN_FIELD_NAME);
.as(SharedAliases.PRIMARY_COLUMN.getAlias());

Selects invertSelects = getInvertSelects(rowNumberStep, coalescedPrimaryColumn, context);
TableOnConditionStep<Record> fromTable = selfJoinWithShiftedRows(leftPrimaryColumn, rightPrimaryColumn, rowNumberStep);
Expand Down
Loading

0 comments on commit a1c53d3

Please sign in to comment.