Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/mysql/AbstractBaseParseTest.java +7 −8 Original line number Diff line number Diff line Loading @@ -183,13 +183,13 @@ public abstract class AbstractBaseParseTest { @Override public AggregationSelectItem apply(final com.dangdang.ddframe.rdb.sharding.parsing.parser.jaxb.AggregationSelectItem input) { AggregationSelectItem result = new AggregationSelectItem(input.getExpression(), Optional.fromNullable(input.getAlias()), -1, AggregationSelectItem result = new AggregationSelectItem(input.getInnerExpression(), Optional.fromNullable(input.getAlias()), -1, AggregationType.valueOf(input.getAggregationType().toUpperCase())); if (null != input.getIndex()) { result.setColumnIndex(input.getIndex()); } for (com.dangdang.ddframe.rdb.sharding.parsing.parser.jaxb.AggregationSelectItem each : input.getDerivedColumns()) { result.getDerivedAggregationSelectItems().add(new AggregationSelectItem(each.getExpression(), Optional.fromNullable(each.getAlias()), -1, result.getDerivedAggregationSelectItems().add(new AggregationSelectItem(each.getInnerExpression(), Optional.fromNullable(each.getAlias()), -1, AggregationType.valueOf(each.getAggregationType().toUpperCase()))); } return result; Loading @@ -214,7 +214,7 @@ public abstract class AbstractBaseParseTest { assertExpectedConditions(actual); assertOrderBy(actual); assertGroupBy(actual); // assertAggregationSelectItem(actual); assertAggregationSelectItem(actual); assertLimit(actual); } Loading Loading @@ -243,11 +243,10 @@ public abstract class AbstractBaseParseTest { private void assertAggregationSelectItem(final SQLStatement actual) { for (AggregationSelectItem each : actual.getAggregationSelectItems()) { AggregationSelectItem expected = aggregationSelectItems.next(); assertTrue(new ReflectionEquals(expected).matches(each)); //assertThat(each, new ReflectionEquals(expected, "derivedColumns")); // for (int i = 0; i < each.getDerivedColumns().size(); i++) { // assertThat(each.getDerivedColumns().get(i), new ReflectionEquals(expected.getDerivedColumns().get(i))); // } assertTrue(new ReflectionEquals(expected, "derivedColumns").matches(each)); for (int i = 0; i < each.getDerivedAggregationSelectItems().size(); i++) { assertTrue(new ReflectionEquals(expected.getDerivedAggregationSelectItems().get(i)).matches(each.getDerivedAggregationSelectItems().get(i))); } } assertFalse(aggregationSelectItems.hasNext()); } Loading sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/jaxb/AggregationSelectItem.java +2 −2 Original line number Diff line number Diff line Loading @@ -32,8 +32,8 @@ import java.util.List; @XmlAccessorType(XmlAccessType.FIELD) public final class AggregationSelectItem { @XmlAttribute private String expression; @XmlAttribute(name = "inner-expression") private String innerExpression; @XmlAttribute(name = "aggregation-type") private String aggregationType; Loading sharding-jdbc-core/src/test/resources/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/mysql/statement/select_aggregate.xml +11 −15 Original line number Diff line number Diff line Loading @@ -5,9 +5,9 @@ <table name="order"/> </tables> <aggregation-select-items> <aggregation-select-item expression="COUNT(MAX(*))" aggregation-type="COUNT" alias="c" index="1" /> <aggregation-select-item expression="MAX(MIN(date))" aggregation-type="MAX" index="3" /> <aggregation-select-item expression="MIN(time)" aggregation-type="MIN" alias="Time" index="4" /> <aggregation-select-item inner-expression="(MAX(*))" aggregation-type="COUNT" alias="c" index="1" /> <aggregation-select-item inner-expression="(MIN(date))" aggregation-type="MAX" index="3" /> <aggregation-select-item inner-expression="(time)" aggregation-type="MIN" alias="Time" index="4" /> </aggregation-select-items> </assert> Loading @@ -16,18 +16,14 @@ <table name="order"/> </tables> <aggregation-select-items> <aggregation-select-item expression="AVG(MAX(date))" aggregation-type="AVG" alias="date" index="1"> <derived-column expression="COUNT(MAX(date))" aggregation-type="COUNT" alias="sharding_gen_1"/> <derived-column expression="SUM(MAX(date))" aggregation-type="SUM" alias="sharding_gen_2" /> <aggregation-select-item inner-expression="(MAX(date))" aggregation-type="AVG" alias="date" index="1"> <derived-column inner-expression="(MAX(date))" aggregation-type="COUNT" alias="AVG_DERIVED_COUNT_0"/> <derived-column inner-expression="(MAX(date))" aggregation-type="SUM" alias="AVG_DERIVED_SUM_0" /> </aggregation-select-item> <aggregation-select-item expression="COUNT(MAX(date))" aggregation-type="COUNT" alias="sharding_gen_1" /> <aggregation-select-item expression="SUM(MAX(date))" aggregation-type="SUM" alias="sharding_gen_2" /> <aggregation-select-item expression="AVG(DISTINCT time)" aggregation-type="AVG" index="2"> <derived-column expression="COUNT(DISTINCT time)" aggregation-type="COUNT" alias="sharding_gen_3" /> <derived-column expression="SUM(DISTINCT time)" aggregation-type="SUM" alias="sharding_gen_4" /> <aggregation-select-item inner-expression="(DISTINCT time)" aggregation-type="AVG" index="2"> <derived-column inner-expression="(DISTINCT time)" aggregation-type="COUNT" alias="AVG_DERIVED_COUNT_1" /> <derived-column inner-expression="(DISTINCT time)" aggregation-type="SUM" alias="AVG_DERIVED_SUM_1" /> </aggregation-select-item> <aggregation-select-item expression="COUNT(DISTINCT time)" aggregation-type="COUNT" alias="sharding_gen_3" /> <aggregation-select-item expression="SUM(DISTINCT time)" aggregation-type="SUM" alias="sharding_gen_4" /> </aggregation-select-items> </assert> Loading @@ -39,7 +35,7 @@ <group-by-column name="order_id" order-by-type="ASC" /> </group-by-columns> <aggregation-select-items> <aggregation-select-item expression="MAX(date)" aggregation-type="MAX" index="2" /> <aggregation-select-item inner-expression="(date)" aggregation-type="MAX" index="2" /> </aggregation-select-items> </assert> Loading @@ -55,7 +51,7 @@ <table name="order"/> </tables> <aggregation-select-items> <aggregation-select-item expression="COUNT(time)" aggregation-type="COUNT" index="2" /> <aggregation-select-item inner-expression="(time)" aggregation-type="COUNT" index="2" /> </aggregation-select-items> </assert> </asserts> Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/mysql/AbstractBaseParseTest.java +7 −8 Original line number Diff line number Diff line Loading @@ -183,13 +183,13 @@ public abstract class AbstractBaseParseTest { @Override public AggregationSelectItem apply(final com.dangdang.ddframe.rdb.sharding.parsing.parser.jaxb.AggregationSelectItem input) { AggregationSelectItem result = new AggregationSelectItem(input.getExpression(), Optional.fromNullable(input.getAlias()), -1, AggregationSelectItem result = new AggregationSelectItem(input.getInnerExpression(), Optional.fromNullable(input.getAlias()), -1, AggregationType.valueOf(input.getAggregationType().toUpperCase())); if (null != input.getIndex()) { result.setColumnIndex(input.getIndex()); } for (com.dangdang.ddframe.rdb.sharding.parsing.parser.jaxb.AggregationSelectItem each : input.getDerivedColumns()) { result.getDerivedAggregationSelectItems().add(new AggregationSelectItem(each.getExpression(), Optional.fromNullable(each.getAlias()), -1, result.getDerivedAggregationSelectItems().add(new AggregationSelectItem(each.getInnerExpression(), Optional.fromNullable(each.getAlias()), -1, AggregationType.valueOf(each.getAggregationType().toUpperCase()))); } return result; Loading @@ -214,7 +214,7 @@ public abstract class AbstractBaseParseTest { assertExpectedConditions(actual); assertOrderBy(actual); assertGroupBy(actual); // assertAggregationSelectItem(actual); assertAggregationSelectItem(actual); assertLimit(actual); } Loading Loading @@ -243,11 +243,10 @@ public abstract class AbstractBaseParseTest { private void assertAggregationSelectItem(final SQLStatement actual) { for (AggregationSelectItem each : actual.getAggregationSelectItems()) { AggregationSelectItem expected = aggregationSelectItems.next(); assertTrue(new ReflectionEquals(expected).matches(each)); //assertThat(each, new ReflectionEquals(expected, "derivedColumns")); // for (int i = 0; i < each.getDerivedColumns().size(); i++) { // assertThat(each.getDerivedColumns().get(i), new ReflectionEquals(expected.getDerivedColumns().get(i))); // } assertTrue(new ReflectionEquals(expected, "derivedColumns").matches(each)); for (int i = 0; i < each.getDerivedAggregationSelectItems().size(); i++) { assertTrue(new ReflectionEquals(expected.getDerivedAggregationSelectItems().get(i)).matches(each.getDerivedAggregationSelectItems().get(i))); } } assertFalse(aggregationSelectItems.hasNext()); } Loading
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/jaxb/AggregationSelectItem.java +2 −2 Original line number Diff line number Diff line Loading @@ -32,8 +32,8 @@ import java.util.List; @XmlAccessorType(XmlAccessType.FIELD) public final class AggregationSelectItem { @XmlAttribute private String expression; @XmlAttribute(name = "inner-expression") private String innerExpression; @XmlAttribute(name = "aggregation-type") private String aggregationType; Loading
sharding-jdbc-core/src/test/resources/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/mysql/statement/select_aggregate.xml +11 −15 Original line number Diff line number Diff line Loading @@ -5,9 +5,9 @@ <table name="order"/> </tables> <aggregation-select-items> <aggregation-select-item expression="COUNT(MAX(*))" aggregation-type="COUNT" alias="c" index="1" /> <aggregation-select-item expression="MAX(MIN(date))" aggregation-type="MAX" index="3" /> <aggregation-select-item expression="MIN(time)" aggregation-type="MIN" alias="Time" index="4" /> <aggregation-select-item inner-expression="(MAX(*))" aggregation-type="COUNT" alias="c" index="1" /> <aggregation-select-item inner-expression="(MIN(date))" aggregation-type="MAX" index="3" /> <aggregation-select-item inner-expression="(time)" aggregation-type="MIN" alias="Time" index="4" /> </aggregation-select-items> </assert> Loading @@ -16,18 +16,14 @@ <table name="order"/> </tables> <aggregation-select-items> <aggregation-select-item expression="AVG(MAX(date))" aggregation-type="AVG" alias="date" index="1"> <derived-column expression="COUNT(MAX(date))" aggregation-type="COUNT" alias="sharding_gen_1"/> <derived-column expression="SUM(MAX(date))" aggregation-type="SUM" alias="sharding_gen_2" /> <aggregation-select-item inner-expression="(MAX(date))" aggregation-type="AVG" alias="date" index="1"> <derived-column inner-expression="(MAX(date))" aggregation-type="COUNT" alias="AVG_DERIVED_COUNT_0"/> <derived-column inner-expression="(MAX(date))" aggregation-type="SUM" alias="AVG_DERIVED_SUM_0" /> </aggregation-select-item> <aggregation-select-item expression="COUNT(MAX(date))" aggregation-type="COUNT" alias="sharding_gen_1" /> <aggregation-select-item expression="SUM(MAX(date))" aggregation-type="SUM" alias="sharding_gen_2" /> <aggregation-select-item expression="AVG(DISTINCT time)" aggregation-type="AVG" index="2"> <derived-column expression="COUNT(DISTINCT time)" aggregation-type="COUNT" alias="sharding_gen_3" /> <derived-column expression="SUM(DISTINCT time)" aggregation-type="SUM" alias="sharding_gen_4" /> <aggregation-select-item inner-expression="(DISTINCT time)" aggregation-type="AVG" index="2"> <derived-column inner-expression="(DISTINCT time)" aggregation-type="COUNT" alias="AVG_DERIVED_COUNT_1" /> <derived-column inner-expression="(DISTINCT time)" aggregation-type="SUM" alias="AVG_DERIVED_SUM_1" /> </aggregation-select-item> <aggregation-select-item expression="COUNT(DISTINCT time)" aggregation-type="COUNT" alias="sharding_gen_3" /> <aggregation-select-item expression="SUM(DISTINCT time)" aggregation-type="SUM" alias="sharding_gen_4" /> </aggregation-select-items> </assert> Loading @@ -39,7 +35,7 @@ <group-by-column name="order_id" order-by-type="ASC" /> </group-by-columns> <aggregation-select-items> <aggregation-select-item expression="MAX(date)" aggregation-type="MAX" index="2" /> <aggregation-select-item inner-expression="(date)" aggregation-type="MAX" index="2" /> </aggregation-select-items> </assert> Loading @@ -55,7 +51,7 @@ <table name="order"/> </tables> <aggregation-select-items> <aggregation-select-item expression="COUNT(time)" aggregation-type="COUNT" index="2" /> <aggregation-select-item inner-expression="(time)" aggregation-type="COUNT" index="2" /> </aggregation-select-items> </assert> </asserts>