Skip to content

Commit

Permalink
[HOPSWROKS-2925] refactor SqlCondition and SqlFilterLogic (#765)
Browse files Browse the repository at this point in the history
  • Loading branch information
kennethmhc authored and SirOibaf committed Jan 18, 2022
1 parent d4f4bb8 commit b3c0619
Show file tree
Hide file tree
Showing 24 changed files with 160 additions and 134 deletions.
13 changes: 13 additions & 0 deletions hopsworks-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,19 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.apache.calcite</groupId>
<artifactId>calcite-core</artifactId>
</dependency>
<!-- Here we are lying to Maven. Calcite has some dependency that depends on protobuf 3.0.0.
We are not going to use that codepath as we only use a small subset of calcite code.
Still the dependency to protobuf collides with the Hops dependency to protobuf and causes issues
during compilation. So here we add the protobuf-java dependency just for the compilation.
-->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import io.hops.hopsworks.common.featurestore.query.filter.Filter;
import io.hops.hopsworks.common.featurestore.query.filter.FilterController;
import io.hops.hopsworks.common.featurestore.query.filter.FilterLogic;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import io.hops.hopsworks.common.featurestore.trainingdatasets.TrainingDatasetController;
import io.hops.hopsworks.exceptions.FeaturestoreException;
import io.hops.hopsworks.persistence.entity.featurestore.Featurestore;
Expand Down
13 changes: 0 additions & 13 deletions hopsworks-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -188,19 +188,6 @@
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
<dependency>
<groupId>org.apache.calcite</groupId>
<artifactId>calcite-core</artifactId>
</dependency>
<!-- Here we are lying to Maven. Calcite has some dependency that depends on protobuf 3.0.0.
We are not going to use that codepath as we only use a small subset of calcite code.
Still the dependency to protobuf collides with the Hops dependency to protobuf and causes issues
during compilation. So here we add the protobuf-java dependency just for the compilation.
-->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>

<dependency>
<groupId>com.logicalclocks</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.FeaturegroupType;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.cached.FeatureGroupCommit;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.cached.TimeTravelFormat;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import io.hops.hopsworks.persistence.entity.project.Project;
import io.hops.hopsworks.persistence.entity.user.Users;
import io.hops.hopsworks.restutils.RESTCodes;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package io.hops.hopsworks.common.featurestore.query.filter;

import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;

import java.util.Arrays;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.exceptions.FeaturestoreException;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.Featuregroup;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlFilterLogic;
import io.hops.hopsworks.restutils.RESTCodes;
import org.apache.calcite.sql.SqlIdentifier;
import org.apache.calcite.sql.SqlLiteral;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package io.hops.hopsworks.common.featurestore.query.filter;

import io.hops.hopsworks.common.featurestore.feature.FeatureGroupFeatureDTO;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;

import javax.xml.bind.annotation.XmlRootElement;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package io.hops.hopsworks.common.featurestore.query.filter;

import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlFilterLogic;

public class FilterLogic {
private SqlFilterLogic type;
private Filter leftFilter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package io.hops.hopsworks.common.featurestore.query.filter;

import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlFilterLogic;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import org.apache.calcite.sql.JoinType;

import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import io.hops.hopsworks.common.featurestore.query.ConstructorController;
import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import org.apache.calcite.sql.JoinConditionType;
import org.apache.calcite.sql.SqlIdentifier;
import org.apache.calcite.sql.SqlJoin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.common.featurestore.query.QueryDTO;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import io.hops.hopsworks.common.featurestore.query.filter.Filter;
import io.hops.hopsworks.common.featurestore.query.filter.FilterController;
import io.hops.hopsworks.common.featurestore.query.join.Join;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,10 @@
import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.common.featurestore.query.QueryDTO;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.common.featurestore.query.filter.Filter;
import io.hops.hopsworks.common.featurestore.query.filter.FilterLogic;
import io.hops.hopsworks.common.featurestore.query.filter.FilterValue;
import io.hops.hopsworks.common.featurestore.query.filter.SqlFilterLogic;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlFilterLogic;
import io.hops.hopsworks.common.featurestore.query.join.Join;
import io.hops.hopsworks.common.featurestore.query.pit.PitJoinController;
import io.hops.hopsworks.common.featurestore.statistics.StatisticsController;
Expand Down Expand Up @@ -441,7 +440,7 @@ private TrainingDatasetFilter makeTrainingDatasetFilter(String path, TrainingDat
TrainingDatasetFilterCondition condition = filter == null ? null : convertFilter(filter, trainingDatasetFilter);
trainingDatasetFilter.setCondition(condition);
trainingDatasetFilter.setPath(path);
trainingDatasetFilter.setType(type.name());
trainingDatasetFilter.setType(type);
return trainingDatasetFilter;
}

Expand All @@ -450,7 +449,7 @@ private TrainingDatasetFilterCondition convertFilter(Filter filter, TrainingData
trainingDatasetFilter,
filter.getFeatures().get(0).getFeatureGroup(),
filter.getFeatures().get(0).getName(),
filter.getCondition().toString(),
filter.getCondition(),
filter.getValue().getFeatureGroupId(),
filter.getValue().getValue()
);
Expand Down Expand Up @@ -812,9 +811,9 @@ FilterLogic convertToFilterLogic(Collection<TrainingDatasetFilter> trainingDatas
.filter(filter -> filter.getPath().equals(headPath)).findFirst()
.orElseThrow(() -> new FeaturestoreException(RESTCodes.FeaturestoreErrorCode.COULD_NOT_GET_QUERY_FILTER,
Level.WARNING));
filterLogic.setType(SqlFilterLogic.valueOf(headNode.getType()));
filterLogic.setType(headNode.getType());

if (headNode.getType().equals(SqlFilterLogic.SINGLE.name())) {
if (headNode.getType().equals(SqlFilterLogic.SINGLE)) {
Filter filter = convertToFilter(headNode.getCondition(), features);
filterLogic.setLeftFilter(filter);
} else {
Expand Down Expand Up @@ -854,7 +853,7 @@ private Filter convertToFilter(TrainingDatasetFilterCondition condition, Map<Str
}
return new Filter(
features.get(makeFeatureLookupKey(condition.getFeatureGroup().getId(), condition.getFeature())),
SqlCondition.valueOf(condition.getCondition()),
condition.getCondition(),
filterValue
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.common.featurestore.query.QueryDTO;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import io.hops.hopsworks.common.featurestore.query.filter.Filter;
import io.hops.hopsworks.common.featurestore.query.filter.FilterController;
import io.hops.hopsworks.common.featurestore.query.filter.FilterLogic;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import io.hops.hopsworks.common.featurestore.query.filter.Filter;
import io.hops.hopsworks.common.featurestore.query.filter.FilterController;
import io.hops.hopsworks.common.featurestore.query.filter.FilterLogic;
import io.hops.hopsworks.common.featurestore.query.filter.SqlFilterLogic;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlFilterLogic;
import io.hops.hopsworks.common.featurestore.query.join.Join;
import io.hops.hopsworks.common.featurestore.query.join.JoinController;
import io.hops.hopsworks.common.featurestore.query.join.JoinDTO;
Expand All @@ -35,6 +35,7 @@
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.Featuregroup;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.cached.CachedFeaturegroup;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.cached.TimeTravelFormat;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import io.hops.hopsworks.persistence.entity.project.Project;
import io.hops.hopsworks.persistence.entity.user.Users;
import org.apache.calcite.sql.JoinType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,14 @@
import io.hops.hopsworks.common.featurestore.query.ConstructorController;
import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import io.hops.hopsworks.common.featurestore.query.join.Join;
import io.hops.hopsworks.exceptions.FeaturestoreException;
import io.hops.hopsworks.persistence.entity.featurestore.Featurestore;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.Featuregroup;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.cached.CachedFeaturegroup;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.cached.TimeTravelFormat;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlFilterLogic;
import io.hops.hopsworks.persistence.entity.project.Project;
import org.apache.calcite.sql.JoinType;
import org.apache.calcite.sql.SqlDialect;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import io.hops.hopsworks.common.featurestore.query.ConstructorController;
import io.hops.hopsworks.common.featurestore.query.Feature;
import io.hops.hopsworks.common.featurestore.query.Query;
import io.hops.hopsworks.common.featurestore.query.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.trainingdataset.SqlCondition;
import io.hops.hopsworks.persistence.entity.featurestore.Featurestore;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.Featuregroup;
import io.hops.hopsworks.persistence.entity.featurestore.featuregroup.cached.CachedFeaturegroup;
Expand Down
Loading

0 comments on commit b3c0619

Please sign in to comment.