Repository: calcite Updated Branches: refs/heads/master 962eac566 -> 0938c7b6d
Fix up previous commit Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/baaf2562 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/baaf2562 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/baaf2562 Branch: refs/heads/master Commit: baaf2562ea16cc7d11964afb04a4d68d2d1ade04 Parents: 962eac5 Author: Julian Hyde <jh...@apache.org> Authored: Thu Sep 15 15:38:58 2016 -0700 Committer: Julian Hyde <jh...@apache.org> Committed: Thu Sep 15 17:02:19 2016 -0700 ---------------------------------------------------------------------- .../apache/calcite/jdbc/CalciteMetaImpl.java | 2 +- .../adapter/druid/DruidDateTimeUtils.java | 33 +++++++-------- .../calcite/adapter/druid/DruidQuery.java | 42 ++++++++++---------- .../calcite/adapter/druid/DruidRules.java | 4 +- .../calcite/adapter/druid/DruidTable.java | 6 +-- 5 files changed, 40 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/baaf2562/core/src/main/java/org/apache/calcite/jdbc/CalciteMetaImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/jdbc/CalciteMetaImpl.java b/core/src/main/java/org/apache/calcite/jdbc/CalciteMetaImpl.java index 434b1d4..168f356 100644 --- a/core/src/main/java/org/apache/calcite/jdbc/CalciteMetaImpl.java +++ b/core/src/main/java/org/apache/calcite/jdbc/CalciteMetaImpl.java @@ -452,7 +452,7 @@ public class CalciteMetaImpl extends MetaImpl { private ImmutableList<MetaTypeInfo> getAllDefaultType() { final ImmutableList.Builder<MetaTypeInfo> allTypeList = - new ImmutableList.Builder<>(); + ImmutableList.builder(); final CalciteConnectionImpl conn = (CalciteConnectionImpl) connection; final RelDataTypeSystem typeSystem = conn.typeFactory.getTypeSystem(); for (SqlTypeName sqlTypeName : SqlTypeName.values()) { http://git-wip-us.apache.org/repos/asf/calcite/blob/baaf2562/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java ---------------------------------------------------------------------- diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java index edfaad8..2921b9f 100644 --- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java +++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java @@ -60,12 +60,9 @@ public class DruidDateTimeUtils { } /** - * Given a list of predicates, it generates the equivalent Interval - * (if possible). It assumes that all the predicates in the input - * reference a single column : the timestamp column. - * - * @param conjs list of conditions to use for the transformation - * @return interval representing the conditions in the input list + * Generates a list of {@link Interval}s equivalent to a given + * expression. Assumes that all the predicates in the input + * reference a single column: the timestamp column. */ public static List<Interval> createInterval(RelDataType type, RexNode e) { final List<Range> ranges = extractRanges(type, e, false); @@ -90,9 +87,9 @@ public class DruidDateTimeUtils { return DruidTable.DEFAULT_INTERVAL; } long start = range.hasLowerBound() ? toLong(range.lowerEndpoint()) - : DruidTable.DEFAULT_INTERVAL.getStartMillis(); + : DruidTable.DEFAULT_INTERVAL.getStartMillis(); long end = range.hasUpperBound() ? toLong(range.upperEndpoint()) - : DruidTable.DEFAULT_INTERVAL.getEndMillis(); + : DruidTable.DEFAULT_INTERVAL.getEndMillis(); if (range.hasLowerBound() && range.lowerBoundType() == BoundType.OPEN) { start++; } @@ -109,7 +106,7 @@ public class DruidDateTimeUtils { } protected static List<Range> extractRanges(RelDataType type, RexNode node, - boolean withNot) { + boolean withNot) { switch (node.getKind()) { case EQUALS: case LESS_THAN: @@ -167,7 +164,7 @@ public class DruidDateTimeUtils { } protected static List<Range> leafToRanges(RelDataType type, RexCall call, - boolean withNot) { + boolean withNot) { switch (call.getKind()) { case EQUALS: case LESS_THAN: @@ -177,16 +174,16 @@ public class DruidDateTimeUtils { { RexLiteral literal = null; if (call.getOperands().get(0) instanceof RexInputRef - && call.getOperands().get(1) instanceof RexLiteral) { + && call.getOperands().get(1) instanceof RexLiteral) { literal = extractLiteral(call.getOperands().get(1)); } else if (call.getOperands().get(0) instanceof RexInputRef - && call.getOperands().get(1).getKind() == SqlKind.CAST) { + && call.getOperands().get(1).getKind() == SqlKind.CAST) { literal = extractLiteral(call.getOperands().get(1)); } else if (call.getOperands().get(1) instanceof RexInputRef - && call.getOperands().get(0) instanceof RexLiteral) { + && call.getOperands().get(0) instanceof RexLiteral) { literal = extractLiteral(call.getOperands().get(0)); } else if (call.getOperands().get(1) instanceof RexInputRef - && call.getOperands().get(0).getKind() == SqlKind.CAST) { + && call.getOperands().get(0).getKind() == SqlKind.CAST) { literal = extractLiteral(call.getOperands().get(0)); } if (literal == null) { @@ -230,10 +227,10 @@ public class DruidDateTimeUtils { boolean inverted = value1.compareTo(value2) > 0; if (!withNot) { return Arrays.<Range>asList( - inverted ? Range.closed(value2, value1) : Range.closed(value1, value2)); + inverted ? Range.closed(value2, value1) : Range.closed(value1, value2)); } return Arrays.<Range>asList(Range.lessThan(inverted ? value2 : value1), - Range.greaterThan(inverted ? value1 : value2)); + Range.greaterThan(inverted ? value1 : value2)); } case IN: { @@ -249,7 +246,7 @@ public class DruidDateTimeUtils { } if (withNot) { ranges.addAll( - Arrays.<Range>asList(Range.lessThan(element), Range.greaterThan(element))); + Arrays.<Range>asList(Range.lessThan(element), Range.greaterThan(element))); } else { ranges.add(Range.closed(element, element)); } @@ -433,7 +430,7 @@ public class DruidDateTimeUtils { } /** - * Extract granularity from a call FLOOR(<time> TO <timeunit>). + * Extracts granularity from a call {@code FLOOR(<time> TO <timeunit>)}. * Timeunit specifies the granularity. Returns null if it cannot * be inferred. * http://git-wip-us.apache.org/repos/asf/calcite/blob/baaf2562/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java ---------------------------------------------------------------------- diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java index cec8261..bb2a534 100644 --- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java +++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java @@ -97,7 +97,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { * @param traitSet Traits * @param table Table * @param druidTable Druid table - * @param interval Interval for the query + * @param intervals Intervals for the query * @param rels Internal relational expressions */ protected DruidQuery(RelOptCluster cluster, RelTraitSet traitSet, @@ -127,10 +127,10 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { for (RelNode rel : rels) { b.append(rel instanceof TableScan ? 's' : rel instanceof Project ? 'p' - : rel instanceof Filter ? 'f' - : rel instanceof Aggregate ? 'a' - : rel instanceof Sort ? 'l' - : '!'); + : rel instanceof Filter ? 'f' + : rel instanceof Aggregate ? 'a' + : rel instanceof Sort ? 'l' + : '!'); } return b.toString(); } @@ -243,13 +243,13 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { public static DruidQuery extendQuery(DruidQuery query, RelNode r) { final ImmutableList.Builder<RelNode> builder = ImmutableList.builder(); return DruidQuery.create(query.getCluster(), r.getTraitSet(), query.getTable(), - query.druidTable, query.intervals, builder.addAll(query.rels).add(r).build()); + query.druidTable, query.intervals, builder.addAll(query.rels).add(r).build()); } /** Extends a DruidQuery. */ public static DruidQuery extendQuery(DruidQuery query, List<Interval> intervals) { return DruidQuery.create(query.getCluster(), query.getTraitSet(), query.getTable(), - query.druidTable, intervals, query.rels); + query.druidTable, intervals, query.rels); } @Override public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) { @@ -259,8 +259,8 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { @Override public RelDataType deriveRowType() { return getCluster().getTypeFactory().createStructType( - Pair.right(Util.last(rels).getRowType().getFieldList()), - getQuerySpec().fieldNames); + Pair.right(Util.last(rels).getRowType().getFieldList()), + getQuerySpec().fieldNames); } public TableScan getTableScan() { @@ -296,7 +296,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { } else if (rel instanceof Sort) { final Sort sort = (Sort) rel; for (Ord<RelFieldCollation> ord - : Ord.zip(sort.collation.getFieldCollations())) { + : Ord.zip(sort.collation.getFieldCollations())) { pw.item("sort" + ord.i, ord.e.getFieldIndex()); } for (Ord<RelFieldCollation> ord @@ -392,7 +392,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { } return getQuery(rowType, filter, projects, groupSet, aggCalls, aggNames, - collationIndexes, collationDirections, fetch); + collationIndexes, collationDirections, fetch); } public QueryType getQueryType() { @@ -451,7 +451,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { // Reference, it could be to the timestamp column or any other dimension final RexInputRef ref = (RexInputRef) project; final String origin = druidTable.getRowType(getCluster().getTypeFactory()) - .getFieldList().get(ref.getIndex()).getName(); + .getFieldList().get(ref.getIndex()).getName(); if (origin.equals(druidTable.timestampFieldName)) { granularity = "none"; builder.add(s); @@ -465,7 +465,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { // Call, check if we should infer granularity final RexCall call = (RexCall) project; final String funcGranularity = - DruidDateTimeUtils.extractGranularity(call); + DruidDateTimeUtils.extractGranularity(call); if (funcGranularity != null) { granularity = funcGranularity; builder.add(s); @@ -507,12 +507,12 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { boolean sortsMetric = false; if (collationIndexes != null) { assert collationDirections != null; - ImmutableList.Builder<JsonCollation> colBuilder - = new ImmutableList.Builder<JsonCollation>(); + ImmutableList.Builder<JsonCollation> colBuilder = + ImmutableList.builder(); for (Pair<Integer, Direction> p : Pair.zip(collationIndexes, collationDirections)) { colBuilder.add( - new JsonCollation(fieldNames.get(p.left), - p.right == Direction.DESCENDING ? "descending" : "ascending")); + new JsonCollation(fieldNames.get(p.left), + p.right == Direction.DESCENDING ? "descending" : "ascending")); if (p.left >= groupSet.cardinality() && p.right == Direction.DESCENDING) { // Currently only support for DESC in TopN sortsMetric = true; @@ -619,7 +619,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { generator.writeFieldName("pagingSpec"); generator.writeStartObject(); generator.writeNumberField("threshold", fetch != null ? fetch - : CalciteConnectionProperty.DRUID_FETCH.wrap(new Properties()).getInt()); + : CalciteConnectionProperty.DRUID_FETCH.wrap(new Properties()).getInt()); generator.writeEndObject(); generator.writeFieldName("context"); @@ -789,7 +789,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { if (druidTable.metricFieldNames.contains(fieldName)) { metrics.add(fieldName); } else if (!druidTable.timestampFieldName.equals(fieldName) - && !DruidTable.DEFAULT_TIMESTAMP_COLUMN.equals(fieldName)) { + && !DruidTable.DEFAULT_TIMESTAMP_COLUMN.equals(fieldName)) { dimensions.add(fieldName); } } @@ -805,7 +805,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { if (druidTable.metricFieldNames.contains(fieldName)) { metrics.add(fieldName); } else if (!druidTable.timestampFieldName.equals(fieldName) - && !DruidTable.DEFAULT_TIMESTAMP_COLUMN.equals(fieldName)) { + && !DruidTable.DEFAULT_TIMESTAMP_COLUMN.equals(fieldName)) { dimensions.add(fieldName); } } @@ -916,7 +916,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { private static boolean containsLimit(QuerySpec querySpec) { return querySpec.queryString.contains("\"context\":{\"" - + DRUID_QUERY_FETCH + "\":true"); + + DRUID_QUERY_FETCH + "\":true"); } private ColumnMetaData.Rep getPrimitive(RelDataTypeField field) { http://git-wip-us.apache.org/repos/asf/calcite/blob/baaf2562/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java ---------------------------------------------------------------------- diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java index 3d1c23a..70917e8 100644 --- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java +++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java @@ -264,9 +264,7 @@ public class DruidRules { final int index = positions.indexOf(ref.getIndex()); return rexBuilder.makeInputRef(belowTypes.get(index), index); } - } - ) - ); + })); } return Pair.of(aboveNodes, belowNodes); } http://git-wip-us.apache.org/repos/asf/calcite/blob/baaf2562/druid/src/main/java/org/apache/calcite/adapter/druid/DruidTable.java ---------------------------------------------------------------------- diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidTable.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidTable.java index fce83a8..836941b 100644 --- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidTable.java +++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidTable.java @@ -50,10 +50,8 @@ import java.util.Set; public class DruidTable extends AbstractTable implements TranslatableTable { public static final String DEFAULT_TIMESTAMP_COLUMN = "__time"; - public static final Interval DEFAULT_INTERVAL = new Interval( - new DateTime("1900-01-01"), - new DateTime("3000-01-01") - ); + public static final Interval DEFAULT_INTERVAL = + new Interval(new DateTime("1900-01-01"), new DateTime("3000-01-01")); final DruidSchema schema; final String dataSource;