Skip to content

Commit

Permalink
fix: mvn test errors
Browse files Browse the repository at this point in the history
  • Loading branch information
zhenglinli committed Jul 13, 2023
1 parent 6bb6c3f commit bbb4e4f
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 40 deletions.
1 change: 0 additions & 1 deletion src/sqlancer/stonedb/StoneDBOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import com.beust.jcommander.Parameter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,17 @@ public void check() throws Exception {

if (originalResult == null && metamorphicResult != null
|| originalResult != null && (!originalResult.contentEquals(metamorphicResult)
&& !ComparatorHelper.isEqualDouble(originalResult, metamorphicResult))) {
&& !ComparatorHelper.isEqualDouble(originalResult, metamorphicResult))) {
throw new AssertionError("aggregate result mismatch!" + System.lineSeparator() + output);
}
}

private String createMetamorphicUnionQuery(StoneDBSelect select,
NewFunctionNode<StoneDBExpression, StoneDBAggregateFunction> aggregate,
List<Node<StoneDBExpression>> from) {
NewFunctionNode<StoneDBExpression, StoneDBAggregateFunction> aggregate,
List<Node<StoneDBExpression>> from) {
String metamorphicQuery;
Node<StoneDBExpression> whereClause = gen.generateExpression();
;

Node<StoneDBExpression> negatedClause = new NewUnaryPrefixOperatorNode<>(whereClause,
StoneDBUnaryPrefixOperator.NOT);
Node<StoneDBExpression> notNullClause = new NewUnaryPostfixOperatorNode<>(whereClause,
Expand Down Expand Up @@ -117,19 +117,19 @@ private List<Node<StoneDBExpression>> mapped(

StoneDBCastOperation count;
switch (aggregate.getFunc()) {
case COUNT:
case MAX:
case MIN:
case SUM:
return aliasArgs(List.of(aggregate));
case AVG:
NewFunctionNode<StoneDBExpression, StoneDBAggregateFunction> sum = new NewFunctionNode<>(
aggregate.getArgs(), StoneDBAggregateFunction.SUM);
count = new StoneDBCastOperation(new NewFunctionNode<>(aggregate.getArgs(), StoneDBAggregateFunction.COUNT),
new StoneDBCompositeDataType(StoneDBDataType.FLOAT, 8).getPrimitiveDataType());
return aliasArgs(Arrays.asList(sum, count));
default:
throw new AssertionError(aggregate.getFunc());
case COUNT:
case MAX:
case MIN:
case SUM:
return aliasArgs(List.of(aggregate));
case AVG:
NewFunctionNode<StoneDBExpression, StoneDBAggregateFunction> sum = new NewFunctionNode<>(
aggregate.getArgs(), StoneDBAggregateFunction.SUM);
count = new StoneDBCastOperation(new NewFunctionNode<>(aggregate.getArgs(), StoneDBAggregateFunction.COUNT),
new StoneDBCompositeDataType(StoneDBDataType.FLOAT, 8).getPrimitiveDataType());
return aliasArgs(Arrays.asList(sum, count));
default:
throw new AssertionError(aggregate.getFunc());
}
}

Expand All @@ -144,17 +144,17 @@ private List<Node<StoneDBExpression>> aliasArgs(List<Node<StoneDBExpression>> or

private String getOuterAggregateFunction(NewFunctionNode<StoneDBExpression, StoneDBAggregateFunction> aggregate) {
switch (aggregate.getFunc()) {
case AVG:
return "SUM(agg0)/SUM(agg1)";
case COUNT:
return StoneDBAggregateFunction.SUM + "(agg0)";
default:
return aggregate.getFunc().toString() + "(agg0)";
case AVG:
return "SUM(agg0)/SUM(agg1)";
case COUNT:
return StoneDBAggregateFunction.SUM + "(agg0)";
default:
return aggregate.getFunc().toString() + "(agg0)";
}
}

private StoneDBSelect getSelect(List<Node<StoneDBExpression>> aggregates, List<Node<StoneDBExpression>> fromList,
Node<StoneDBExpression> whereClause, List<Node<StoneDBExpression>> joinList) {
Node<StoneDBExpression> whereClause, List<Node<StoneDBExpression>> joinList) {
StoneDBSelect select = new StoneDBSelect();
select.setFetchColumns(aggregates);
select.setFromList(fromList);
Expand Down
8 changes: 4 additions & 4 deletions src/sqlancer/stonedb/oracle/StoneDBQueryPartitioningBase.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package sqlancer.stonedb.oracle;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import sqlancer.Randomly;
import sqlancer.common.ast.newast.ColumnReferenceNode;
import sqlancer.common.ast.newast.Node;
Expand All @@ -17,10 +21,6 @@
import sqlancer.stonedb.ast.StoneDBSelect;
import sqlancer.stonedb.gen.StoneDBExpressionGenerator;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class StoneDBQueryPartitioningBase
extends TernaryLogicPartitioningOracleBase<Node<StoneDBExpression>, StoneDBGlobalState>
implements TestOracle<StoneDBGlobalState> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package sqlancer.stonedb.oracle;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import sqlancer.ComparatorHelper;
import sqlancer.Randomly;
import sqlancer.common.ast.newast.ColumnReferenceNode;
Expand All @@ -9,10 +13,6 @@
import sqlancer.stonedb.StoneDBToStringVisitor;
import sqlancer.stonedb.ast.StoneDBExpression;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class StoneDBQueryPartitioningGroupByTester extends StoneDBQueryPartitioningBase {
public StoneDBQueryPartitioningGroupByTester(StoneDBGlobalState state) {
super(state);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package sqlancer.stonedb.oracle;

import java.util.ArrayList;
import java.util.List;

import sqlancer.ComparatorHelper;
import sqlancer.Randomly;
import sqlancer.stonedb.StoneDBToStringVisitor;
import sqlancer.stonedb.StoneDBProvider.StoneDBGlobalState;

import java.util.ArrayList;
import java.util.List;
import sqlancer.stonedb.StoneDBToStringVisitor;

public class StoneDBQueryPartitioningHavingTester extends StoneDBQueryPartitioningBase {
public StoneDBQueryPartitioningHavingTester(StoneDBGlobalState state) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package sqlancer.stonedb.oracle;

import java.util.ArrayList;
import java.util.List;

import sqlancer.ComparatorHelper;
import sqlancer.Randomly;
import sqlancer.stonedb.StoneDBProvider.StoneDBGlobalState;
import sqlancer.stonedb.StoneDBToStringVisitor;

import java.util.ArrayList;
import java.util.List;

public class StoneDBQueryPartitioningWhereTester extends StoneDBQueryPartitioningBase {
public StoneDBQueryPartitioningWhereTester(StoneDBGlobalState state) {
super(state);
Expand Down

0 comments on commit bbb4e4f

Please sign in to comment.