From 2e5432c0f0087f489c2f8c526715961b4fce1b0d Mon Sep 17 00:00:00 2001 From: leventov Date: Mon, 31 Jul 2017 18:11:25 +0300 Subject: [PATCH 1/3] Add methods getFloat(), getDouble() and getLong() to ColumnValueSelector --- .../druid/benchmark/ExpressionBenchmark.java | 4 +- .../benchmark/FilterPartitionBenchmark.java | 2 +- .../ApproximateHistogramAggregator.java | 2 +- .../ApproximateHistogramBufferAggregator.java | 2 +- .../variance/VarianceAggregator.java | 4 +- .../variance/VarianceBufferAggregator.java | 4 +- .../VarianceAggregatorCollectorTest.java | 2 +- .../aggregation/DoubleMaxAggregator.java | 2 +- .../aggregation/DoubleMinAggregator.java | 2 +- .../aggregation/DoubleSumAggregator.java | 2 +- .../query/aggregation/FloatMaxAggregator.java | 2 +- .../query/aggregation/FloatMinAggregator.java | 2 +- .../query/aggregation/FloatSumAggregator.java | 2 +- .../aggregation/HistogramAggregator.java | 2 +- .../HistogramBufferAggregator.java | 2 +- .../query/aggregation/LongMaxAggregator.java | 2 +- .../aggregation/LongMaxBufferAggregator.java | 2 +- .../query/aggregation/LongMinAggregator.java | 2 +- .../aggregation/LongMinBufferAggregator.java | 2 +- .../query/aggregation/LongSumAggregator.java | 2 +- .../aggregation/LongSumBufferAggregator.java | 2 +- .../SimpleDoubleBufferAggregator.java | 2 +- .../SimpleFloatBufferAggregator.java | 2 +- ...alityAggregatorColumnSelectorStrategy.java | 4 +- ...alityAggregatorColumnSelectorStrategy.java | 4 +- ...alityAggregatorColumnSelectorStrategy.java | 4 +- .../first/DoubleFirstAggregator.java | 4 +- .../first/DoubleFirstBufferAggregator.java | 4 +- .../first/FloatFirstAggregator.java | 4 +- .../first/FloatFirstBufferAggregator.java | 4 +- .../first/LongFirstAggregator.java | 4 +- .../first/LongFirstBufferAggregator.java | 4 +- .../last/DoubleLastAggregator.java | 6 +-- .../last/DoubleLastBufferAggregator.java | 4 +- .../aggregation/last/FloatLastAggregator.java | 6 +-- .../last/FloatLastBufferAggregator.java | 4 +- .../aggregation/last/LongLastAggregator.java | 6 +-- .../last/LongLastBufferAggregator.java | 4 +- ...bleValueMatcherColumnSelectorStrategy.java | 6 +-- ...oatValueMatcherColumnSelectorStrategy.java | 6 +-- ...ongValueMatcherColumnSelectorStrategy.java | 6 +-- .../RowBasedColumnSelectorFactory.java | 12 ++--- .../epinephelinae/RowBasedGrouperHelper.java | 10 +++-- .../DoubleGroupByColumnSelectorStrategy.java | 2 +- .../FloatGroupByColumnSelectorStrategy.java | 2 +- .../LongGroupByColumnSelectorStrategy.java | 2 +- .../druid/query/search/SearchQueryRunner.java | 6 +-- .../druid/query/select/SelectQueryEngine.java | 8 ++-- .../TimeBoundaryQueryRunnerFactory.java | 2 +- .../NumericTopNColumnSelectorStrategy.java | 6 +-- .../io/druid/segment/ColumnValueSelector.java | 9 ++++ .../io/druid/segment/DimensionSelector.java | 30 +++++++++++++ .../druid/segment/DoubleColumnSelector.java | 29 +++++++++++- .../druid/segment/DoubleDimensionIndexer.java | 6 +-- .../DoubleWrappingDimensionSelector.java | 4 +- .../io/druid/segment/FloatColumnSelector.java | 29 +++++++++++- .../druid/segment/FloatDimensionIndexer.java | 6 +-- .../FloatWrappingDimensionSelector.java | 4 +- .../io/druid/segment/LongColumnSelector.java | 29 +++++++++++- .../druid/segment/LongDimensionIndexer.java | 6 +-- .../LongWrappingDimensionSelector.java | 4 +- .../druid/segment/ObjectColumnSelector.java | 44 +++++++++++++++++-- .../segment/QueryableIndexStorageAdapter.java | 6 +-- .../segment/SingleScanTimeDimSelector.java | 2 +- .../segment/ZeroDoubleColumnSelector.java | 2 +- .../segment/ZeroFloatColumnSelector.java | 4 +- .../druid/segment/ZeroLongColumnSelector.java | 2 +- .../segment/filter/ExpressionFilter.java | 2 +- .../java/io/druid/segment/filter/Filters.java | 2 +- .../IncrementalIndexStorageAdapter.java | 8 ++-- .../virtual/ExpressionObjectSelector.java | 6 +-- .../segment/virtual/ExpressionSelectors.java | 6 +-- .../aggregation/FilteredAggregatorTest.java | 5 ++- .../JavaScriptAggregatorBenchmark.java | 4 +- .../aggregation/MetricManipulatorFnsTest.java | 4 +- .../aggregation/MetricSelectorUtils.java | 4 +- .../TestDoubleColumnSelectorImpl.java | 2 +- .../aggregation/TestFloatColumnSelector.java | 2 +- .../aggregation/TestLongColumnSelector.java | 2 +- .../TestColumnSelectorFactory.java | 6 +-- .../virtual/ExpressionVirtualColumnTest.java | 34 +++++++------- .../segment/virtual/VirtualColumnsTest.java | 35 +++++++-------- .../firehose/IngestSegmentFirehose.java | 2 +- 83 files changed, 343 insertions(+), 183 deletions(-) diff --git a/benchmarks/src/main/java/io/druid/benchmark/ExpressionBenchmark.java b/benchmarks/src/main/java/io/druid/benchmark/ExpressionBenchmark.java index 25409049d7f6..a8ce3d2837b6 100644 --- a/benchmarks/src/main/java/io/druid/benchmark/ExpressionBenchmark.java +++ b/benchmarks/src/main/java/io/druid/benchmark/ExpressionBenchmark.java @@ -215,8 +215,8 @@ public void init(final ByteBuffer buf, final int position) @Override public void aggregate(final ByteBuffer buf, final int position) { - final float x = xSelector.get(); - final double n = x > 0 ? x + 1 : ySelector.get() + 1; + final float x = xSelector.getFloat(); + final double n = x > 0 ? x + 1 : ySelector.getFloat() + 1; buf.putDouble(0, buf.getDouble(position) + n); } diff --git a/benchmarks/src/main/java/io/druid/benchmark/FilterPartitionBenchmark.java b/benchmarks/src/main/java/io/druid/benchmark/FilterPartitionBenchmark.java index 392dd061d441..cf547d4c833a 100644 --- a/benchmarks/src/main/java/io/druid/benchmark/FilterPartitionBenchmark.java +++ b/benchmarks/src/main/java/io/druid/benchmark/FilterPartitionBenchmark.java @@ -542,7 +542,7 @@ public List apply(Cursor input) List longvals = new ArrayList(); LongColumnSelector selector = input.makeLongColumnSelector("sumLongSequential"); while (!input.isDone()) { - long rowval = selector.get(); + long rowval = selector.getLong(); blackhole.consume(rowval); input.advance(); } diff --git a/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramAggregator.java b/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramAggregator.java index 767e5b5f004f..3601aa5da8a5 100644 --- a/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramAggregator.java +++ b/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramAggregator.java @@ -65,7 +65,7 @@ public ApproximateHistogramAggregator( @Override public void aggregate() { - histogram.offer(selector.get()); + histogram.offer(selector.getFloat()); } @Override diff --git a/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramBufferAggregator.java b/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramBufferAggregator.java index e1dacc4bba03..d36394153416 100644 --- a/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramBufferAggregator.java +++ b/extensions-core/histogram/src/main/java/io/druid/query/aggregation/histogram/ApproximateHistogramBufferAggregator.java @@ -68,7 +68,7 @@ public void aggregate(ByteBuffer buf, int position) mutationBuffer.position(position); ApproximateHistogram h0 = ApproximateHistogram.fromBytesDense(mutationBuffer); - h0.offer(selector.get()); + h0.offer(selector.getFloat()); mutationBuffer.position(position); h0.toBytesDense(mutationBuffer); diff --git a/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceAggregator.java b/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceAggregator.java index 9c45cd39ef19..5803b765f7d5 100644 --- a/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceAggregator.java +++ b/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceAggregator.java @@ -82,7 +82,7 @@ public FloatVarianceAggregator(FloatColumnSelector selector) @Override public void aggregate() { - holder.add(selector.get()); + holder.add(selector.getFloat()); } } @@ -99,7 +99,7 @@ public LongVarianceAggregator(LongColumnSelector selector) @Override public void aggregate() { - holder.add(selector.get()); + holder.add(selector.getLong()); } } diff --git a/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceBufferAggregator.java b/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceBufferAggregator.java index bcc44f71e889..db3dea400a89 100644 --- a/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceBufferAggregator.java +++ b/extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceBufferAggregator.java @@ -98,7 +98,7 @@ public FloatVarianceAggregator(String name, FloatColumnSelector selector) @Override public void aggregate(ByteBuffer buf, int position) { - float v = selector.get(); + float v = selector.getFloat(); long count = buf.getLong(position + COUNT_OFFSET) + 1; double sum = buf.getDouble(position + SUM_OFFSET) + v; buf.putLong(position, count); @@ -130,7 +130,7 @@ public LongVarianceAggregator(String name, LongColumnSelector selector) @Override public void aggregate(ByteBuffer buf, int position) { - long v = selector.get(); + long v = selector.getLong(); long count = buf.getLong(position + COUNT_OFFSET) + 1; double sum = buf.getDouble(position + SUM_OFFSET) + v; buf.putLong(position, count); diff --git a/extensions-core/stats/src/test/java/io/druid/query/aggregation/variance/VarianceAggregatorCollectorTest.java b/extensions-core/stats/src/test/java/io/druid/query/aggregation/variance/VarianceAggregatorCollectorTest.java index 3204b041cb4c..0c4aaaa36de8 100644 --- a/extensions-core/stats/src/test/java/io/druid/query/aggregation/variance/VarianceAggregatorCollectorTest.java +++ b/extensions-core/stats/src/test/java/io/druid/query/aggregation/variance/VarianceAggregatorCollectorTest.java @@ -146,7 +146,7 @@ private static class FloatHandOver extends TestFloatColumnSelector float v; @Override - public float get() + public float getFloat() { return v; } diff --git a/processing/src/main/java/io/druid/query/aggregation/DoubleMaxAggregator.java b/processing/src/main/java/io/druid/query/aggregation/DoubleMaxAggregator.java index 79042cb85920..6b4f384d51c7 100644 --- a/processing/src/main/java/io/druid/query/aggregation/DoubleMaxAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/DoubleMaxAggregator.java @@ -48,7 +48,7 @@ public DoubleMaxAggregator(DoubleColumnSelector selector) @Override public void aggregate() { - max = Math.max(max, selector.get()); + max = Math.max(max, selector.getDouble()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/DoubleMinAggregator.java b/processing/src/main/java/io/druid/query/aggregation/DoubleMinAggregator.java index 63d61fc44309..33e0477cf294 100644 --- a/processing/src/main/java/io/druid/query/aggregation/DoubleMinAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/DoubleMinAggregator.java @@ -48,7 +48,7 @@ public DoubleMinAggregator(DoubleColumnSelector selector) @Override public void aggregate() { - min = Math.min(min, (double) selector.get()); + min = Math.min(min, selector.getDouble()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/DoubleSumAggregator.java b/processing/src/main/java/io/druid/query/aggregation/DoubleSumAggregator.java index c8a1b64922b8..315becade115 100644 --- a/processing/src/main/java/io/druid/query/aggregation/DoubleSumAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/DoubleSumAggregator.java @@ -57,7 +57,7 @@ public DoubleSumAggregator(DoubleColumnSelector selector) @Override public void aggregate() { - sum += selector.get(); + sum += selector.getDouble(); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/FloatMaxAggregator.java b/processing/src/main/java/io/druid/query/aggregation/FloatMaxAggregator.java index 10f1e38cf8e1..0efbecdb1fd8 100644 --- a/processing/src/main/java/io/druid/query/aggregation/FloatMaxAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/FloatMaxAggregator.java @@ -48,7 +48,7 @@ public FloatMaxAggregator(FloatColumnSelector selector) @Override public void aggregate() { - max = Math.max(max, selector.get()); + max = Math.max(max, selector.getFloat()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/FloatMinAggregator.java b/processing/src/main/java/io/druid/query/aggregation/FloatMinAggregator.java index bccaf2602807..67cd93f9e9ae 100644 --- a/processing/src/main/java/io/druid/query/aggregation/FloatMinAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/FloatMinAggregator.java @@ -48,7 +48,7 @@ public FloatMinAggregator(FloatColumnSelector selector) @Override public void aggregate() { - min = Math.min(min, selector.get()); + min = Math.min(min, selector.getFloat()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/FloatSumAggregator.java b/processing/src/main/java/io/druid/query/aggregation/FloatSumAggregator.java index 4bbefae67ba2..d8b866051629 100644 --- a/processing/src/main/java/io/druid/query/aggregation/FloatSumAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/FloatSumAggregator.java @@ -56,7 +56,7 @@ public FloatSumAggregator(FloatColumnSelector selector) @Override public void aggregate() { - sum += selector.get(); + sum += selector.getFloat(); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/HistogramAggregator.java b/processing/src/main/java/io/druid/query/aggregation/HistogramAggregator.java index 036b2bc7b5e5..665bf8c9d877 100644 --- a/processing/src/main/java/io/druid/query/aggregation/HistogramAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/HistogramAggregator.java @@ -53,7 +53,7 @@ public HistogramAggregator(FloatColumnSelector selector, float[] breaks) @Override public void aggregate() { - histogram.offer(selector.get()); + histogram.offer(selector.getFloat()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/HistogramBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/HistogramBufferAggregator.java index 9ae050084824..a46888b7b1bd 100644 --- a/processing/src/main/java/io/druid/query/aggregation/HistogramBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/HistogramBufferAggregator.java @@ -57,7 +57,7 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - final float value = selector.get(); + final float value = selector.getFloat(); final int minPos = position + minOffset; final int maxPos = position + maxOffset; diff --git a/processing/src/main/java/io/druid/query/aggregation/LongMaxAggregator.java b/processing/src/main/java/io/druid/query/aggregation/LongMaxAggregator.java index 1a67f5211f48..b8bf861cf0f8 100644 --- a/processing/src/main/java/io/druid/query/aggregation/LongMaxAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/LongMaxAggregator.java @@ -48,7 +48,7 @@ public LongMaxAggregator(LongColumnSelector selector) @Override public void aggregate() { - max = Math.max(max, selector.get()); + max = Math.max(max, selector.getLong()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/LongMaxBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/LongMaxBufferAggregator.java index d918ea76fd41..429051d2552f 100644 --- a/processing/src/main/java/io/druid/query/aggregation/LongMaxBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/LongMaxBufferAggregator.java @@ -42,6 +42,6 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - buf.putLong(position, Math.max(buf.getLong(position), selector.get())); + buf.putLong(position, Math.max(buf.getLong(position), selector.getLong())); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/LongMinAggregator.java b/processing/src/main/java/io/druid/query/aggregation/LongMinAggregator.java index 39a541fdbb1e..1c8f45d3ac80 100644 --- a/processing/src/main/java/io/druid/query/aggregation/LongMinAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/LongMinAggregator.java @@ -48,7 +48,7 @@ public LongMinAggregator(LongColumnSelector selector) @Override public void aggregate() { - min = Math.min(min, selector.get()); + min = Math.min(min, selector.getLong()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/LongMinBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/LongMinBufferAggregator.java index 3b0e206e9844..ebbae496ccb4 100644 --- a/processing/src/main/java/io/druid/query/aggregation/LongMinBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/LongMinBufferAggregator.java @@ -42,6 +42,6 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - buf.putLong(position, Math.min(buf.getLong(position), selector.get())); + buf.putLong(position, Math.min(buf.getLong(position), selector.getLong())); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/LongSumAggregator.java b/processing/src/main/java/io/druid/query/aggregation/LongSumAggregator.java index 27f48a1078f8..0a6154b20d7b 100644 --- a/processing/src/main/java/io/druid/query/aggregation/LongSumAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/LongSumAggregator.java @@ -56,7 +56,7 @@ public LongSumAggregator(LongColumnSelector selector) @Override public void aggregate() { - sum += selector.get(); + sum += selector.getLong(); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/LongSumBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/LongSumBufferAggregator.java index ad029471136a..9ae1d8e1096e 100644 --- a/processing/src/main/java/io/druid/query/aggregation/LongSumBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/LongSumBufferAggregator.java @@ -42,6 +42,6 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - buf.putLong(position, buf.getLong(position) + selector.get()); + buf.putLong(position, buf.getLong(position) + selector.getLong()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/SimpleDoubleBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/SimpleDoubleBufferAggregator.java index e44484728eb1..ef80cae43e73 100644 --- a/processing/src/main/java/io/druid/query/aggregation/SimpleDoubleBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/SimpleDoubleBufferAggregator.java @@ -53,7 +53,7 @@ public DoubleColumnSelector getSelector() @Override public final void aggregate(ByteBuffer buf, int position) { - aggregate(buf, position, selector.get()); + aggregate(buf, position, selector.getDouble()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/SimpleFloatBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/SimpleFloatBufferAggregator.java index 1ff568f370c7..adf77103f37e 100644 --- a/processing/src/main/java/io/druid/query/aggregation/SimpleFloatBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/SimpleFloatBufferAggregator.java @@ -53,7 +53,7 @@ public FloatColumnSelector getSelector() @Override public final void aggregate(ByteBuffer buf, int position) { - aggregate(buf, position, selector.get()); + aggregate(buf, position, selector.getFloat()); } @Override diff --git a/processing/src/main/java/io/druid/query/aggregation/cardinality/types/DoubleCardinalityAggregatorColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/aggregation/cardinality/types/DoubleCardinalityAggregatorColumnSelectorStrategy.java index 79a3806f8732..d3a98c1ff4f9 100644 --- a/processing/src/main/java/io/druid/query/aggregation/cardinality/types/DoubleCardinalityAggregatorColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/aggregation/cardinality/types/DoubleCardinalityAggregatorColumnSelectorStrategy.java @@ -30,12 +30,12 @@ public class DoubleCardinalityAggregatorColumnSelectorStrategy implements Cardin @Override public void hashRow(DoubleColumnSelector dimSelector, Hasher hasher) { - hasher.putDouble(dimSelector.get()); + hasher.putDouble(dimSelector.getDouble()); } @Override public void hashValues(DoubleColumnSelector dimSelector, HyperLogLogCollector collector) { - collector.add(CardinalityAggregator.hashFn.hashLong(Double.doubleToLongBits(dimSelector.get())).asBytes()); + collector.add(CardinalityAggregator.hashFn.hashLong(Double.doubleToLongBits(dimSelector.getDouble())).asBytes()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/cardinality/types/FloatCardinalityAggregatorColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/aggregation/cardinality/types/FloatCardinalityAggregatorColumnSelectorStrategy.java index f80caf02b00b..76d0f44d2fcb 100644 --- a/processing/src/main/java/io/druid/query/aggregation/cardinality/types/FloatCardinalityAggregatorColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/aggregation/cardinality/types/FloatCardinalityAggregatorColumnSelectorStrategy.java @@ -30,12 +30,12 @@ public class FloatCardinalityAggregatorColumnSelectorStrategy @Override public void hashRow(FloatColumnSelector dimSelector, Hasher hasher) { - hasher.putFloat(dimSelector.get()); + hasher.putFloat(dimSelector.getFloat()); } @Override public void hashValues(FloatColumnSelector dimSelector, HyperLogLogCollector collector) { - collector.add(CardinalityAggregator.hashFn.hashInt(Float.floatToIntBits(dimSelector.get())).asBytes()); + collector.add(CardinalityAggregator.hashFn.hashInt(Float.floatToIntBits(dimSelector.getFloat())).asBytes()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/cardinality/types/LongCardinalityAggregatorColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/aggregation/cardinality/types/LongCardinalityAggregatorColumnSelectorStrategy.java index 174341f49330..e3d1dd5a3a52 100644 --- a/processing/src/main/java/io/druid/query/aggregation/cardinality/types/LongCardinalityAggregatorColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/aggregation/cardinality/types/LongCardinalityAggregatorColumnSelectorStrategy.java @@ -30,12 +30,12 @@ public class LongCardinalityAggregatorColumnSelectorStrategy @Override public void hashRow(LongColumnSelector dimSelector, Hasher hasher) { - hasher.putLong(dimSelector.get()); + hasher.putLong(dimSelector.getLong()); } @Override public void hashValues(LongColumnSelector dimSelector, HyperLogLogCollector collector) { - collector.add(CardinalityAggregator.hashFn.hashLong(dimSelector.get()).asBytes()); + collector.add(CardinalityAggregator.hashFn.hashLong(dimSelector.getLong()).asBytes()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstAggregator.java b/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstAggregator.java index d45391aa850a..2cc135467cf6 100644 --- a/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstAggregator.java @@ -50,10 +50,10 @@ public DoubleFirstAggregator( @Override public void aggregate() { - long time = timeSelector.get(); + long time = timeSelector.getLong(); if (time < firstTime) { firstTime = time; - firstValue = valueSelector.get(); + firstValue = valueSelector.getDouble(); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstBufferAggregator.java index 74aa3a1034da..5a03f4765c80 100644 --- a/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/first/DoubleFirstBufferAggregator.java @@ -48,11 +48,11 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - long time = timeSelector.get(); + long time = timeSelector.getLong(); long firstTime = buf.getLong(position); if (time < firstTime) { buf.putLong(position, time); - buf.putDouble(position + Long.BYTES, valueSelector.get()); + buf.putDouble(position + Long.BYTES, valueSelector.getDouble()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstAggregator.java b/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstAggregator.java index 4bba969f4139..151a343456eb 100644 --- a/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstAggregator.java @@ -50,10 +50,10 @@ public FloatFirstAggregator( @Override public void aggregate() { - long time = timeSelector.get(); + long time = timeSelector.getLong(); if (time < firstTime) { firstTime = time; - firstValue = valueSelector.get(); + firstValue = valueSelector.getFloat(); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstBufferAggregator.java index 62fa60002240..62a7a4958ede 100644 --- a/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/first/FloatFirstBufferAggregator.java @@ -48,11 +48,11 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - long time = timeSelector.get(); + long time = timeSelector.getLong(); long firstTime = buf.getLong(position); if (time < firstTime) { buf.putLong(position, time); - buf.putFloat(position + Long.BYTES, valueSelector.get()); + buf.putFloat(position + Long.BYTES, valueSelector.getFloat()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/first/LongFirstAggregator.java b/processing/src/main/java/io/druid/query/aggregation/first/LongFirstAggregator.java index be0dfd2ebc99..cdbf33ed7af5 100644 --- a/processing/src/main/java/io/druid/query/aggregation/first/LongFirstAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/first/LongFirstAggregator.java @@ -49,10 +49,10 @@ public LongFirstAggregator( @Override public void aggregate() { - long time = timeSelector.get(); + long time = timeSelector.getLong(); if (time < firstTime) { firstTime = time; - firstValue = valueSelector.get(); + firstValue = valueSelector.getLong(); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/first/LongFirstBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/first/LongFirstBufferAggregator.java index 148beae45c9b..1f95668c123f 100644 --- a/processing/src/main/java/io/druid/query/aggregation/first/LongFirstBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/first/LongFirstBufferAggregator.java @@ -48,11 +48,11 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - long time = timeSelector.get(); + long time = timeSelector.getLong(); long firstTime = buf.getLong(position); if (time < firstTime) { buf.putLong(position, time); - buf.putLong(position + Longs.BYTES, valueSelector.get()); + buf.putLong(position + Longs.BYTES, valueSelector.getLong()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastAggregator.java b/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastAggregator.java index b087e1587fb0..6b93f135bf92 100644 --- a/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastAggregator.java @@ -50,10 +50,10 @@ public DoubleLastAggregator( @Override public void aggregate() { - long time = timeSelector.get(); + long time = timeSelector.getLong(); if (time >= lastTime) { - lastTime = timeSelector.get(); - lastValue = valueSelector.get(); + lastTime = time; + lastValue = valueSelector.getDouble(); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastBufferAggregator.java index 7f035d82e6f0..cf2d16b0d45d 100644 --- a/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/last/DoubleLastBufferAggregator.java @@ -48,11 +48,11 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - long time = timeSelector.get(); + long time = timeSelector.getLong(); long lastTime = buf.getLong(position); if (time >= lastTime) { buf.putLong(position, time); - buf.putDouble(position + Long.BYTES, valueSelector.get()); + buf.putDouble(position + Long.BYTES, valueSelector.getDouble()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/last/FloatLastAggregator.java b/processing/src/main/java/io/druid/query/aggregation/last/FloatLastAggregator.java index 42c130d7b913..3cc0800b5add 100644 --- a/processing/src/main/java/io/druid/query/aggregation/last/FloatLastAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/last/FloatLastAggregator.java @@ -48,10 +48,10 @@ public FloatLastAggregator( @Override public void aggregate() { - long time = timeSelector.get(); + long time = timeSelector.getLong(); if (time >= lastTime) { - lastTime = timeSelector.get(); - lastValue = valueSelector.get(); + lastTime = time; + lastValue = valueSelector.getFloat(); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/last/FloatLastBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/last/FloatLastBufferAggregator.java index b5a25b623411..ed1befa6639a 100644 --- a/processing/src/main/java/io/druid/query/aggregation/last/FloatLastBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/last/FloatLastBufferAggregator.java @@ -48,11 +48,11 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - long time = timeSelector.get(); + long time = timeSelector.getLong(); long lastTime = buf.getLong(position); if (time >= lastTime) { buf.putLong(position, time); - buf.putFloat(position + Long.BYTES, valueSelector.get()); + buf.putFloat(position + Long.BYTES, valueSelector.getFloat()); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/last/LongLastAggregator.java b/processing/src/main/java/io/druid/query/aggregation/last/LongLastAggregator.java index fb9caabdf834..e70f0848c7fd 100644 --- a/processing/src/main/java/io/druid/query/aggregation/last/LongLastAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/last/LongLastAggregator.java @@ -48,10 +48,10 @@ public LongLastAggregator( @Override public void aggregate() { - long time = timeSelector.get(); + long time = timeSelector.getLong(); if (time >= lastTime) { - lastTime = timeSelector.get(); - lastValue = valueSelector.get(); + lastTime = time; + lastValue = valueSelector.getLong(); } } diff --git a/processing/src/main/java/io/druid/query/aggregation/last/LongLastBufferAggregator.java b/processing/src/main/java/io/druid/query/aggregation/last/LongLastBufferAggregator.java index 9d96c18837a6..a6d1b5d1c209 100644 --- a/processing/src/main/java/io/druid/query/aggregation/last/LongLastBufferAggregator.java +++ b/processing/src/main/java/io/druid/query/aggregation/last/LongLastBufferAggregator.java @@ -47,11 +47,11 @@ public void init(ByteBuffer buf, int position) @Override public void aggregate(ByteBuffer buf, int position) { - long time = timeSelector.get(); + long time = timeSelector.getLong(); long lastTime = buf.getLong(position); if (time >= lastTime) { buf.putLong(position, time); - buf.putLong(position + Long.BYTES, valueSelector.get()); + buf.putLong(position + Long.BYTES, valueSelector.getLong()); } } diff --git a/processing/src/main/java/io/druid/query/filter/DoubleValueMatcherColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/filter/DoubleValueMatcherColumnSelectorStrategy.java index 1478dfc3dc90..c750486defe8 100644 --- a/processing/src/main/java/io/druid/query/filter/DoubleValueMatcherColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/filter/DoubleValueMatcherColumnSelectorStrategy.java @@ -41,7 +41,7 @@ public ValueMatcher makeValueMatcher(final DoubleColumnSelector selector, final @Override public boolean matches() { - return Double.doubleToLongBits(selector.get()) == matchValLongBits; + return Double.doubleToLongBits(selector.getDouble()) == matchValLongBits; } @Override @@ -63,7 +63,7 @@ public ValueMatcher makeValueMatcher( @Override public boolean matches() { - return predicate.applyDouble(selector.get()); + return predicate.applyDouble(selector.getDouble()); } @Override @@ -83,7 +83,7 @@ public ValueGetter makeValueGetter(final DoubleColumnSelector selector) @Override public String[] get() { - return new String[]{ Double.toString(selector.get()) }; + return new String[]{ Double.toString(selector.getDouble()) }; } }; } diff --git a/processing/src/main/java/io/druid/query/filter/FloatValueMatcherColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/filter/FloatValueMatcherColumnSelectorStrategy.java index b209f1b65345..22e8d7e6303d 100644 --- a/processing/src/main/java/io/druid/query/filter/FloatValueMatcherColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/filter/FloatValueMatcherColumnSelectorStrategy.java @@ -40,7 +40,7 @@ public ValueMatcher makeValueMatcher(final FloatColumnSelector selector, final S @Override public boolean matches() { - return Float.floatToIntBits(selector.get()) == matchValIntBits; + return Float.floatToIntBits(selector.getFloat()) == matchValIntBits; } @Override @@ -62,7 +62,7 @@ public ValueMatcher makeValueMatcher( @Override public boolean matches() { - return predicate.applyFloat(selector.get()); + return predicate.applyFloat(selector.getFloat()); } @Override @@ -82,7 +82,7 @@ public ValueGetter makeValueGetter(final FloatColumnSelector selector) @Override public String[] get() { - return new String[]{ Float.toString(selector.get()) }; + return new String[]{ Float.toString(selector.getFloat()) }; } }; } diff --git a/processing/src/main/java/io/druid/query/filter/LongValueMatcherColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/filter/LongValueMatcherColumnSelectorStrategy.java index 3995d9e0ae76..233096bbc644 100644 --- a/processing/src/main/java/io/druid/query/filter/LongValueMatcherColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/filter/LongValueMatcherColumnSelectorStrategy.java @@ -39,7 +39,7 @@ public ValueMatcher makeValueMatcher(final LongColumnSelector selector, final St @Override public boolean matches() { - return selector.get() == matchValLong; + return selector.getLong() == matchValLong; } @Override @@ -61,7 +61,7 @@ public ValueMatcher makeValueMatcher( @Override public boolean matches() { - return predicate.applyLong(selector.get()); + return predicate.applyLong(selector.getLong()); } @Override @@ -81,7 +81,7 @@ public ValueGetter makeValueGetter(final LongColumnSelector selector) @Override public String[] get() { - return new String[]{ Long.toString(selector.get()) }; + return new String[]{ Long.toString(selector.getLong()) }; } }; } diff --git a/processing/src/main/java/io/druid/query/groupby/RowBasedColumnSelectorFactory.java b/processing/src/main/java/io/druid/query/groupby/RowBasedColumnSelectorFactory.java index 8ca587d05456..80133c6120f3 100644 --- a/processing/src/main/java/io/druid/query/groupby/RowBasedColumnSelectorFactory.java +++ b/processing/src/main/java/io/druid/query/groupby/RowBasedColumnSelectorFactory.java @@ -373,7 +373,7 @@ public void inspectRuntimeShape(RuntimeShapeInspector inspector) class TimeFloatColumnSelector extends RowBasedFloatColumnSelector { @Override - public float get() + public float getFloat() { return (float) row.get().getTimestampFromEpoch(); } @@ -383,7 +383,7 @@ public float get() return new RowBasedFloatColumnSelector() { @Override - public float get() + public float getFloat() { return row.get().getFloatMetric(columnName); } @@ -406,7 +406,7 @@ public void inspectRuntimeShape(RuntimeShapeInspector inspector) class TimeLongColumnSelector extends RowBasedLongColumnSelector { @Override - public long get() + public long getLong() { return row.get().getTimestampFromEpoch(); } @@ -416,7 +416,7 @@ public long get() return new RowBasedLongColumnSelector() { @Override - public long get() + public long getLong() { return row.get().getLongMetric(columnName); } @@ -475,7 +475,7 @@ public void inspectRuntimeShape(RuntimeShapeInspector inspector) class TimeDoubleColumnSelector extends RowBasedDoubleColumnSelector { @Override - public double get() + public double getDouble() { return (double) row.get().getTimestampFromEpoch(); } @@ -485,7 +485,7 @@ public double get() return new RowBasedDoubleColumnSelector() { @Override - public double get() + public double getDouble() { return row.get().getDoubleMetric(columnName); } diff --git a/processing/src/main/java/io/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java b/processing/src/main/java/io/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java index 95e1b345f15e..21e5f9daf32c 100644 --- a/processing/src/main/java/io/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java +++ b/processing/src/main/java/io/druid/query/groupby/epinephelinae/RowBasedGrouperHelper.java @@ -483,15 +483,17 @@ public InputRawSupplierColumnSelectorStrategy makeColumnSelectorStrategy( ) { ValueType type = capabilities.getType(); - switch(type) { + switch (type) { case STRING: return new StringInputRawSupplierColumnSelectorStrategy(); case LONG: - return (InputRawSupplierColumnSelectorStrategy) columnSelector -> columnSelector::get; + return (InputRawSupplierColumnSelectorStrategy) columnSelector -> columnSelector::getLong; case FLOAT: - return (InputRawSupplierColumnSelectorStrategy) columnSelector -> columnSelector::get; + return (InputRawSupplierColumnSelectorStrategy) + columnSelector -> columnSelector::getFloat; case DOUBLE: - return (InputRawSupplierColumnSelectorStrategy) columnSelector -> columnSelector::get; + return (InputRawSupplierColumnSelectorStrategy) + columnSelector -> columnSelector::getDouble; default: throw new IAE("Cannot create query type helper from invalid type [%s]", type); } diff --git a/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/DoubleGroupByColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/DoubleGroupByColumnSelectorStrategy.java index 3979f53dd2db..1a9e22f9836c 100644 --- a/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/DoubleGroupByColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/DoubleGroupByColumnSelectorStrategy.java @@ -46,7 +46,7 @@ public void processValueFromGroupingKey( @Override public void initColumnValues(ColumnValueSelector selector, int columnIndex, Object[] values) { - values[columnIndex] = ((DoubleColumnSelector) selector).get(); + values[columnIndex] = ((DoubleColumnSelector) selector).getDouble(); } @Override diff --git a/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/FloatGroupByColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/FloatGroupByColumnSelectorStrategy.java index 3e63be4d59d6..cb4b35ee015a 100644 --- a/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/FloatGroupByColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/FloatGroupByColumnSelectorStrategy.java @@ -47,7 +47,7 @@ public void processValueFromGroupingKey( @Override public void initColumnValues(ColumnValueSelector selector, int columnIndex, Object[] valuess) { - valuess[columnIndex] = ((FloatColumnSelector) selector).get(); + valuess[columnIndex] = ((FloatColumnSelector) selector).getFloat(); } @Override diff --git a/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/LongGroupByColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/LongGroupByColumnSelectorStrategy.java index 2e5fed321941..ff316ad42b82 100644 --- a/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/LongGroupByColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/groupby/epinephelinae/column/LongGroupByColumnSelectorStrategy.java @@ -47,7 +47,7 @@ public void processValueFromGroupingKey( @Override public void initColumnValues(ColumnValueSelector selector, int columnIndex, Object[] valuess) { - valuess[columnIndex] = ((LongColumnSelector) selector).get(); + valuess[columnIndex] = ((LongColumnSelector) selector).getLong(); } @Override diff --git a/processing/src/main/java/io/druid/query/search/SearchQueryRunner.java b/processing/src/main/java/io/druid/query/search/SearchQueryRunner.java index 712a2bb0bdb1..7670d5003d78 100644 --- a/processing/src/main/java/io/druid/query/search/SearchQueryRunner.java +++ b/processing/src/main/java/io/druid/query/search/SearchQueryRunner.java @@ -159,7 +159,7 @@ public void updateSearchResultSet( ) { if (selector != null) { - final String dimVal = String.valueOf(selector.get()); + final String dimVal = String.valueOf(selector.getLong()); if (searchQuerySpec.accept(dimVal)) { set.addTo(new SearchHit(outputName, dimVal), 1); } @@ -179,7 +179,7 @@ public void updateSearchResultSet( ) { if (selector != null) { - final String dimVal = String.valueOf(selector.get()); + final String dimVal = String.valueOf(selector.getFloat()); if (searchQuerySpec.accept(dimVal)) { set.addTo(new SearchHit(outputName, dimVal), 1); } @@ -199,7 +199,7 @@ public void updateSearchResultSet( ) { if (selector != null) { - final String dimVal = String.valueOf(selector.get()); + final String dimVal = String.valueOf(selector.getDouble()); if (searchQuerySpec.accept(dimVal)) { set.addTo(new SearchHit(outputName, dimVal), 1); } diff --git a/processing/src/main/java/io/druid/query/select/SelectQueryEngine.java b/processing/src/main/java/io/druid/query/select/SelectQueryEngine.java index b651b4362d08..8cf355048ef1 100644 --- a/processing/src/main/java/io/druid/query/select/SelectQueryEngine.java +++ b/processing/src/main/java/io/druid/query/select/SelectQueryEngine.java @@ -143,7 +143,7 @@ public void addRowValuesToSelectResult( if (dimSelector == null) { resultMap.put(outputName, null); } else { - resultMap.put(outputName, dimSelector.get()); + resultMap.put(outputName, dimSelector.getLong()); } } } @@ -158,7 +158,7 @@ public void addRowValuesToSelectResult( if (dimSelector == null) { resultMap.put(outputName, null); } else { - resultMap.put(outputName, dimSelector.get()); + resultMap.put(outputName, dimSelector.getFloat()); } } } @@ -174,7 +174,7 @@ public void addRowValuesToSelectResult( if (dimSelector == null) { resultMap.put(outputName, null); } else { - resultMap.put(outputName, dimSelector.get()); + resultMap.put(outputName, dimSelector.getDouble()); } } } @@ -300,7 +300,7 @@ public static Map singleEvent( ) { final Map theEvent = Maps.newLinkedHashMap(); - theEvent.put(timestampKey, new DateTime(timestampColumnSelector.get())); + theEvent.put(timestampKey, new DateTime(timestampColumnSelector.getLong())); for (ColumnSelectorPlus selectorPlus : selectorPlusList) { selectorPlus.getColumnSelectorStrategy().addRowValuesToSelectResult(selectorPlus.getOutputName(), selectorPlus.getSelector(), theEvent); diff --git a/processing/src/main/java/io/druid/query/timeboundary/TimeBoundaryQueryRunnerFactory.java b/processing/src/main/java/io/druid/query/timeboundary/TimeBoundaryQueryRunnerFactory.java index 1c51392086f2..d2498ecc54fb 100644 --- a/processing/src/main/java/io/druid/query/timeboundary/TimeBoundaryQueryRunnerFactory.java +++ b/processing/src/main/java/io/druid/query/timeboundary/TimeBoundaryQueryRunnerFactory.java @@ -103,7 +103,7 @@ public Result apply(Cursor cursor) return null; } final LongColumnSelector timestampColumnSelector = cursor.makeLongColumnSelector(Column.TIME_COLUMN_NAME); - final DateTime timestamp = new DateTime(timestampColumnSelector.get()); + final DateTime timestamp = new DateTime(timestampColumnSelector.getLong()); return new Result<>(adapter.getInterval().getStart(), timestamp); } }; diff --git a/processing/src/main/java/io/druid/query/topn/types/NumericTopNColumnSelectorStrategy.java b/processing/src/main/java/io/druid/query/topn/types/NumericTopNColumnSelectorStrategy.java index 0398ef020ad8..22a968519512 100644 --- a/processing/src/main/java/io/druid/query/topn/types/NumericTopNColumnSelectorStrategy.java +++ b/processing/src/main/java/io/druid/query/topn/types/NumericTopNColumnSelectorStrategy.java @@ -67,7 +67,7 @@ static long floatDimExtractionScanAndAggregate( { long processedRows = 0; while (!cursor.isDone()) { - int key = Float.floatToIntBits(selector.get()); + int key = Float.floatToIntBits(selector.getFloat()); Aggregator[] theAggregators = aggregatesStore.get(key); if (theAggregators == null) { theAggregators = BaseTopNAlgorithm.makeAggregators(cursor, query.getAggregatorSpecs()); @@ -91,7 +91,7 @@ static long doubleDimExtractionScanAndAggregate( { long processedRows = 0; while (!cursor.isDone()) { - long key = Double.doubleToLongBits(selector.get()); + long key = Double.doubleToLongBits(selector.getDouble()); Aggregator[] theAggregators = aggregatesStore.get(key); if (theAggregators == null) { theAggregators = BaseTopNAlgorithm.makeAggregators(cursor, query.getAggregatorSpecs()); @@ -115,7 +115,7 @@ static long longDimExtractionScanAndAggregate( { long processedRows = 0; while (!cursor.isDone()) { - long key = selector.get(); + long key = selector.getLong(); Aggregator[] theAggregators = aggregatesStore.get(key); if (theAggregators == null) { theAggregators = BaseTopNAlgorithm.makeAggregators(cursor, query.getAggregatorSpecs()); diff --git a/processing/src/main/java/io/druid/segment/ColumnValueSelector.java b/processing/src/main/java/io/druid/segment/ColumnValueSelector.java index d73ac68affea..2ca6e623b335 100644 --- a/processing/src/main/java/io/druid/segment/ColumnValueSelector.java +++ b/processing/src/main/java/io/druid/segment/ColumnValueSelector.java @@ -21,7 +21,16 @@ /** * Base type for interfaces that manage column value selection, e.g. DimensionSelector, LongColumnSelector + * + * This interface has methods to get the value in all primitive types, that have corresponding basic aggregators in + * Druid: Sum, Min, Max, etc: {@link #getFloat()}, {@link #getDouble()} and {@link #getLong()} to support "polymorphic" + * rollup aggregation during index merging. */ public interface ColumnValueSelector { + float getFloat(); + + double getDouble(); + + long getLong(); } diff --git a/processing/src/main/java/io/druid/segment/DimensionSelector.java b/processing/src/main/java/io/druid/segment/DimensionSelector.java index cce1f1c9c839..fa56c30928b4 100644 --- a/processing/src/main/java/io/druid/segment/DimensionSelector.java +++ b/processing/src/main/java/io/druid/segment/DimensionSelector.java @@ -117,4 +117,34 @@ public interface DimensionSelector extends ColumnValueSelector, HotLoopCallee */ @Nullable IdLookup idLookup(); + + /** + * @deprecated always throws {@link UnsupportedOperationException} + */ + @Deprecated + @Override + default float getFloat() + { + throw new UnsupportedOperationException("DimensionSelector cannot be operated as numeric ColumnValueSelector"); + } + + /** + * @deprecated always throws {@link UnsupportedOperationException} + */ + @Deprecated + @Override + default double getDouble() + { + throw new UnsupportedOperationException("DimensionSelector cannot be operated as numeric ColumnValueSelector"); + } + + /** + * @deprecated always throws {@link UnsupportedOperationException} + */ + @Deprecated + @Override + default long getLong() + { + throw new UnsupportedOperationException("DimensionSelector cannot be operated as numeric ColumnValueSelector"); + } } diff --git a/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java b/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java index 1fff5d51be87..a9b85dd560cf 100644 --- a/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java @@ -26,5 +26,32 @@ public interface DoubleColumnSelector extends ColumnValueSelector, HotLoopCallee { @CalledFromHotLoop - double get(); + @Override + double getDouble(); + + /** + * @deprecated This method is marked as deprecated in DoubleColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of DoubleColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @CalledFromHotLoop + @Override + default float getFloat() + { + return (float) getDouble(); + } + + /** + * @deprecated This method is marked as deprecated in DoubleColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of DoubleColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @CalledFromHotLoop + @Override + default long getLong() + { + return (long) getDouble(); + } } diff --git a/processing/src/main/java/io/druid/segment/DoubleDimensionIndexer.java b/processing/src/main/java/io/druid/segment/DoubleDimensionIndexer.java index 49d0b3542284..4bdbb170b9b0 100644 --- a/processing/src/main/java/io/druid/segment/DoubleDimensionIndexer.java +++ b/processing/src/main/java/io/druid/segment/DoubleDimensionIndexer.java @@ -104,7 +104,7 @@ public LongColumnSelector makeLongColumnSelector( class IndexerLongColumnSelector implements LongColumnSelector { @Override - public long get() + public long getLong() { final Object[] dims = currEntry.getKey().getDims(); @@ -135,7 +135,7 @@ public FloatColumnSelector makeFloatColumnSelector( class IndexerFloatColumnSelector implements FloatColumnSelector { @Override - public float get() + public float getFloat() { final Object[] dims = currEntry.getKey().getDims(); @@ -196,7 +196,7 @@ public DoubleColumnSelector makeDoubleColumnSelector( class IndexerDoubleColumnSelector implements DoubleColumnSelector { @Override - public double get() + public double getDouble() { final Object[] dims = currEntry.getKey().getDims(); diff --git a/processing/src/main/java/io/druid/segment/DoubleWrappingDimensionSelector.java b/processing/src/main/java/io/druid/segment/DoubleWrappingDimensionSelector.java index 3f23d334eab1..03ba74886636 100644 --- a/processing/src/main/java/io/druid/segment/DoubleWrappingDimensionSelector.java +++ b/processing/src/main/java/io/druid/segment/DoubleWrappingDimensionSelector.java @@ -39,9 +39,9 @@ public DoubleWrappingDimensionSelector(DoubleColumnSelector doubleColumnSelector protected String getValue() { if (extractionFn == null) { - return String.valueOf(selector.get()); + return String.valueOf(selector.getDouble()); } else { - return extractionFn.apply(selector.get()); + return extractionFn.apply(selector.getDouble()); } } diff --git a/processing/src/main/java/io/druid/segment/FloatColumnSelector.java b/processing/src/main/java/io/druid/segment/FloatColumnSelector.java index 706bd3d7ca81..b79876bb00d3 100644 --- a/processing/src/main/java/io/druid/segment/FloatColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/FloatColumnSelector.java @@ -30,5 +30,32 @@ public interface FloatColumnSelector extends ColumnValueSelector, HotLoopCallee { @CalledFromHotLoop - public float get(); + @Override + float getFloat(); + + /** + * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of FloatColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @CalledFromHotLoop + @Override + default double getDouble() + { + return getFloat(); + } + + /** + * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of FloatColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @CalledFromHotLoop + @Override + default long getLong() + { + return (long) getFloat(); + } } diff --git a/processing/src/main/java/io/druid/segment/FloatDimensionIndexer.java b/processing/src/main/java/io/druid/segment/FloatDimensionIndexer.java index de15bf4cecd0..6f53d4f1ab98 100644 --- a/processing/src/main/java/io/druid/segment/FloatDimensionIndexer.java +++ b/processing/src/main/java/io/druid/segment/FloatDimensionIndexer.java @@ -106,7 +106,7 @@ public LongColumnSelector makeLongColumnSelector( class IndexerLongColumnSelector implements LongColumnSelector { @Override - public long get() + public long getLong() { final Object[] dims = currEntry.getKey().getDims(); @@ -138,7 +138,7 @@ public FloatColumnSelector makeFloatColumnSelector( class IndexerFloatColumnSelector implements FloatColumnSelector { @Override - public float get() + public float getFloat() { final Object[] dims = currEntry.getKey().getDims(); @@ -200,7 +200,7 @@ public DoubleColumnSelector makeDoubleColumnSelector( class IndexerDoubleColumnSelector implements DoubleColumnSelector { @Override - public double get() + public double getDouble() { final Object[] dims = currEntry.getKey().getDims(); diff --git a/processing/src/main/java/io/druid/segment/FloatWrappingDimensionSelector.java b/processing/src/main/java/io/druid/segment/FloatWrappingDimensionSelector.java index 6a6a060695c2..5c81220c2f16 100644 --- a/processing/src/main/java/io/druid/segment/FloatWrappingDimensionSelector.java +++ b/processing/src/main/java/io/druid/segment/FloatWrappingDimensionSelector.java @@ -38,9 +38,9 @@ public FloatWrappingDimensionSelector(FloatColumnSelector selector, ExtractionFn protected String getValue() { if (extractionFn == null) { - return String.valueOf(selector.get()); + return String.valueOf(selector.getFloat()); } else { - return extractionFn.apply(selector.get()); + return extractionFn.apply(selector.getFloat()); } } diff --git a/processing/src/main/java/io/druid/segment/LongColumnSelector.java b/processing/src/main/java/io/druid/segment/LongColumnSelector.java index 0da638e5290c..2f2ef824880e 100644 --- a/processing/src/main/java/io/druid/segment/LongColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/LongColumnSelector.java @@ -27,5 +27,32 @@ public interface LongColumnSelector extends ColumnValueSelector, HotLoopCallee { @CalledFromHotLoop - public long get(); + @Override + long getLong(); + + /** + * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @CalledFromHotLoop + @Override + default float getFloat() + { + return (float) getLong(); + } + + /** + * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @CalledFromHotLoop + @Override + default double getDouble() + { + return (double) getLong(); + } } diff --git a/processing/src/main/java/io/druid/segment/LongDimensionIndexer.java b/processing/src/main/java/io/druid/segment/LongDimensionIndexer.java index cb133f87bcb3..0d333499e73c 100644 --- a/processing/src/main/java/io/druid/segment/LongDimensionIndexer.java +++ b/processing/src/main/java/io/druid/segment/LongDimensionIndexer.java @@ -106,7 +106,7 @@ public LongColumnSelector makeLongColumnSelector( class IndexerLongColumnSelector implements LongColumnSelector { @Override - public long get() + public long getLong() { final Object[] dims = currEntry.getKey().getDims(); @@ -137,7 +137,7 @@ public FloatColumnSelector makeFloatColumnSelector( class IndexerFloatColumnSelector implements FloatColumnSelector { @Override - public float get() + public float getFloat() { final Object[] dims = currEntry.getKey().getDims(); @@ -200,7 +200,7 @@ public DoubleColumnSelector makeDoubleColumnSelector( class IndexerDoubleColumnSelector implements DoubleColumnSelector { @Override - public double get() + public double getDouble() { final Object[] dims = currEntry.getKey().getDims(); diff --git a/processing/src/main/java/io/druid/segment/LongWrappingDimensionSelector.java b/processing/src/main/java/io/druid/segment/LongWrappingDimensionSelector.java index 5d7a34306266..082ef0c11474 100644 --- a/processing/src/main/java/io/druid/segment/LongWrappingDimensionSelector.java +++ b/processing/src/main/java/io/druid/segment/LongWrappingDimensionSelector.java @@ -38,9 +38,9 @@ public LongWrappingDimensionSelector(LongColumnSelector selector, ExtractionFn e protected String getValue() { if (extractionFn == null) { - return String.valueOf(selector.get()); + return String.valueOf(selector.getLong()); } else { - return extractionFn.apply(selector.get()); + return extractionFn.apply(selector.getLong()); } } diff --git a/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java b/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java index ec9ab94ab45a..9f817b2ff7e6 100644 --- a/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java @@ -19,12 +19,50 @@ package io.druid.segment; -import io.druid.query.monomorphicprocessing.CalledFromHotLoop; - public interface ObjectColumnSelector extends ColumnValueSelector { public Class classOfObject(); - @CalledFromHotLoop + /** + * This method is not annotated with {@link io.druid.query.monomorphicprocessing.CalledFromHotLoop}, because + * ObjectColumnSelector doesn't extend {@link io.druid.query.monomorphicprocessing.HotLoopCallee} yet. If it will, + * this method should be annotated. + */ public T get(); + + /** + * @deprecated This method is marked as deprecated in ObjectColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @Override + default float getFloat() + { + return ((Number) get()).floatValue(); + } + + /** + * @deprecated This method is marked as deprecated in ObjectColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @Override + default double getDouble() + { + return ((Number) get()).doubleValue(); + } + + /** + * @deprecated This method is marked as deprecated in ObjectColumnSelector to minimize the probability of accidential + * calling. "Polimorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} + * objects. + */ + @Deprecated + @Override + default long getLong() + { + return ((Number) get()).longValue(); + } } diff --git a/processing/src/main/java/io/druid/segment/QueryableIndexStorageAdapter.java b/processing/src/main/java/io/druid/segment/QueryableIndexStorageAdapter.java index 4ca33861425f..64b28b1765a7 100644 --- a/processing/src/main/java/io/druid/segment/QueryableIndexStorageAdapter.java +++ b/processing/src/main/java/io/druid/segment/QueryableIndexStorageAdapter.java @@ -559,7 +559,7 @@ public FloatColumnSelector makeFloatColumnSelector(String columnName) return new HistoricalFloatColumnSelector() { @Override - public float get() + public float getFloat() { return metricVals.getFloatSingleValueRow(cursorOffset.getOffset()); } @@ -605,7 +605,7 @@ public DoubleColumnSelector makeDoubleColumnSelector(String columnName) return new DoubleColumnSelector() { @Override - public double get() + public double getDouble() { return metricVals.getDoubleSingleValueRow(cursorOffset.getOffset()); } @@ -645,7 +645,7 @@ public LongColumnSelector makeLongColumnSelector(String columnName) return new LongColumnSelector() { @Override - public long get() + public long getLong() { return metricVals.getLongSingleValueRow(cursorOffset.getOffset()); } diff --git a/processing/src/main/java/io/druid/segment/SingleScanTimeDimSelector.java b/processing/src/main/java/io/druid/segment/SingleScanTimeDimSelector.java index 0415cd0bda1d..b36cc6576f93 100644 --- a/processing/src/main/java/io/druid/segment/SingleScanTimeDimSelector.java +++ b/processing/src/main/java/io/druid/segment/SingleScanTimeDimSelector.java @@ -112,7 +112,7 @@ public void inspectRuntimeShape(RuntimeShapeInspector inspector) private int getDimensionValueIndex() { // if this the first timestamp, apply and cache extraction function result - final long timestamp = selector.get(); + final long timestamp = selector.getLong(); if (index < 0) { currentTimestamp = timestamp; currentValue = extractionFn.apply(timestamp); diff --git a/processing/src/main/java/io/druid/segment/ZeroDoubleColumnSelector.java b/processing/src/main/java/io/druid/segment/ZeroDoubleColumnSelector.java index 1857cd9215ce..0e6544fe9997 100644 --- a/processing/src/main/java/io/druid/segment/ZeroDoubleColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/ZeroDoubleColumnSelector.java @@ -36,7 +36,7 @@ public static ZeroDoubleColumnSelector instance() } @Override - public double get() + public double getDouble() { return 0.0d; } diff --git a/processing/src/main/java/io/druid/segment/ZeroFloatColumnSelector.java b/processing/src/main/java/io/druid/segment/ZeroFloatColumnSelector.java index ffcd67e83fa6..3eab4d8b9069 100644 --- a/processing/src/main/java/io/druid/segment/ZeroFloatColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/ZeroFloatColumnSelector.java @@ -37,7 +37,7 @@ public static ZeroFloatColumnSelector instance() } @Override - public float get() + public float getFloat() { return 0.0f; } @@ -45,7 +45,7 @@ public float get() @Override public float get(int offset) { - return get(); + return getFloat(); } @Override diff --git a/processing/src/main/java/io/druid/segment/ZeroLongColumnSelector.java b/processing/src/main/java/io/druid/segment/ZeroLongColumnSelector.java index 71cb8128ce1f..7117b824a798 100644 --- a/processing/src/main/java/io/druid/segment/ZeroLongColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/ZeroLongColumnSelector.java @@ -36,7 +36,7 @@ public static ZeroLongColumnSelector instance() } @Override - public long get() + public long getLong() { return 0; } diff --git a/processing/src/main/java/io/druid/segment/filter/ExpressionFilter.java b/processing/src/main/java/io/druid/segment/filter/ExpressionFilter.java index c05def542ff8..e63f718dfcfe 100644 --- a/processing/src/main/java/io/druid/segment/filter/ExpressionFilter.java +++ b/processing/src/main/java/io/druid/segment/filter/ExpressionFilter.java @@ -57,7 +57,7 @@ public ValueMatcher makeMatcher(final ColumnSelectorFactory factory) @Override public boolean matches() { - return Evals.asBoolean(selector.get()); + return Evals.asBoolean(selector.getLong()); } @Override diff --git a/processing/src/main/java/io/druid/segment/filter/Filters.java b/processing/src/main/java/io/druid/segment/filter/Filters.java index 3f4507518f08..9bce393cde05 100644 --- a/processing/src/main/java/io/druid/segment/filter/Filters.java +++ b/processing/src/main/java/io/druid/segment/filter/Filters.java @@ -455,7 +455,7 @@ public static ValueMatcher getLongPredicateMatcher( @Override public boolean matches() { - return predicate.applyLong(longSelector.get()); + return predicate.applyLong(longSelector.getLong()); } @Override diff --git a/processing/src/main/java/io/druid/segment/incremental/IncrementalIndexStorageAdapter.java b/processing/src/main/java/io/druid/segment/incremental/IncrementalIndexStorageAdapter.java index 895b1d37288d..b747df94075d 100644 --- a/processing/src/main/java/io/druid/segment/incremental/IncrementalIndexStorageAdapter.java +++ b/processing/src/main/java/io/druid/segment/incremental/IncrementalIndexStorageAdapter.java @@ -467,7 +467,7 @@ public FloatColumnSelector makeFloatColumnSelector(String columnName) return new FloatColumnSelector() { @Override - public float get() + public float getFloat() { return index.getMetricFloatValue(currEntry.getValue(), metricIndex); } @@ -491,7 +491,7 @@ public LongColumnSelector makeLongColumnSelector(String columnName) class TimeLongColumnSelector implements LongColumnSelector { @Override - public long get() + public long getLong() { return currEntry.getKey().getTimestamp(); } @@ -525,7 +525,7 @@ public void inspectRuntimeShape(RuntimeShapeInspector inspector) return new LongColumnSelector() { @Override - public long get() + public long getLong() { return index.getMetricLongValue( currEntry.getValue(), @@ -652,7 +652,7 @@ public DoubleColumnSelector makeDoubleColumnSelector(String columnName) return new DoubleColumnSelector() { @Override - public double get() + public double getDouble() { return index.getMetricDoubleValue(currEntry.getValue(), metricIndex); } diff --git a/processing/src/main/java/io/druid/segment/virtual/ExpressionObjectSelector.java b/processing/src/main/java/io/druid/segment/virtual/ExpressionObjectSelector.java index c0eaa5a6b4dd..bb0217958678 100644 --- a/processing/src/main/java/io/druid/segment/virtual/ExpressionObjectSelector.java +++ b/processing/src/main/java/io/druid/segment/virtual/ExpressionObjectSelector.java @@ -63,11 +63,11 @@ private static Expr.ObjectBinding createBindings(ColumnSelectorFactory columnSel final Supplier supplier; if (nativeType == ValueType.FLOAT) { - supplier = columnSelectorFactory.makeFloatColumnSelector(columnName)::get; + supplier = columnSelectorFactory.makeFloatColumnSelector(columnName)::getFloat; } else if (nativeType == ValueType.LONG) { - supplier = columnSelectorFactory.makeLongColumnSelector(columnName)::get; + supplier = columnSelectorFactory.makeLongColumnSelector(columnName)::getLong; } else if (nativeType == ValueType.DOUBLE) { - supplier = columnSelectorFactory.makeDoubleColumnSelector(columnName)::get; + supplier = columnSelectorFactory.makeDoubleColumnSelector(columnName)::getDouble; } else if (nativeType == ValueType.STRING) { supplier = supplierFromDimensionSelector( columnSelectorFactory.makeDimensionSelector(new DefaultDimensionSpec(columnName, columnName)) diff --git a/processing/src/main/java/io/druid/segment/virtual/ExpressionSelectors.java b/processing/src/main/java/io/druid/segment/virtual/ExpressionSelectors.java index 071ed634b1d7..5ad2a268dd55 100644 --- a/processing/src/main/java/io/druid/segment/virtual/ExpressionSelectors.java +++ b/processing/src/main/java/io/druid/segment/virtual/ExpressionSelectors.java @@ -55,7 +55,7 @@ public static LongColumnSelector makeLongColumnSelector( class ExpressionLongColumnSelector implements LongColumnSelector { @Override - public long get() + public long getLong() { final ExprEval exprEval = baseSelector.get(); return exprEval.isNull() ? nullValue : exprEval.asLong(); @@ -80,7 +80,7 @@ public static FloatColumnSelector makeFloatColumnSelector( class ExpressionFloatColumnSelector implements FloatColumnSelector { @Override - public float get() + public float getFloat() { final ExprEval exprEval = baseSelector.get(); return exprEval.isNull() ? nullValue : (float) exprEval.asDouble(); @@ -105,7 +105,7 @@ public static DoubleColumnSelector makeDoubleColumnSelector( class ExpressionDoubleColumnSelector implements DoubleColumnSelector { @Override - public double get() + public double getDouble() { final Double number = baseSelector.get().asDouble(); return number != null ? number.doubleValue() : nullValue; diff --git a/processing/src/test/java/io/druid/query/aggregation/FilteredAggregatorTest.java b/processing/src/test/java/io/druid/query/aggregation/FilteredAggregatorTest.java index e2639fc19138..55489c7d07b1 100644 --- a/processing/src/test/java/io/druid/query/aggregation/FilteredAggregatorTest.java +++ b/processing/src/test/java/io/druid/query/aggregation/FilteredAggregatorTest.java @@ -40,6 +40,7 @@ import io.druid.query.ordering.StringComparators; import io.druid.query.search.search.ContainsSearchQuerySpec; import io.druid.segment.ColumnSelectorFactory; +import io.druid.segment.ColumnValueSelector; import io.druid.segment.DimensionSelector; import io.druid.segment.DimensionSelectorUtils; import io.druid.segment.DoubleColumnSelector; @@ -206,9 +207,9 @@ public DoubleColumnSelector makeDoubleColumnSelector(String columnName) return new DoubleColumnSelector() { @Override - public double get() + public double getDouble() { - return (double) selector.get(); + return ((ColumnValueSelector) selector).getDouble(); } @Override diff --git a/processing/src/test/java/io/druid/query/aggregation/JavaScriptAggregatorBenchmark.java b/processing/src/test/java/io/druid/query/aggregation/JavaScriptAggregatorBenchmark.java index c81589be7df0..5dc3aac9d2de 100644 --- a/processing/src/test/java/io/druid/query/aggregation/JavaScriptAggregatorBenchmark.java +++ b/processing/src/test/java/io/druid/query/aggregation/JavaScriptAggregatorBenchmark.java @@ -99,7 +99,7 @@ public LoopingFloatColumnSelector(float[] floats) } @Override - public float get() + public float getFloat() { return floats[(int) (index % floats.length)]; } @@ -126,7 +126,7 @@ public LoopingDoubleColumnSelector(double[] doubles) } @Override - public double get() + public double getDouble() { return doubles[(int) (index % doubles.length)]; } diff --git a/processing/src/test/java/io/druid/query/aggregation/MetricManipulatorFnsTest.java b/processing/src/test/java/io/druid/query/aggregation/MetricManipulatorFnsTest.java index 94b2b4f94f27..967086f155f8 100644 --- a/processing/src/test/java/io/druid/query/aggregation/MetricManipulatorFnsTest.java +++ b/processing/src/test/java/io/druid/query/aggregation/MetricManipulatorFnsTest.java @@ -46,7 +46,7 @@ public static Iterable constructorFeeder() new TestLongColumnSelector() { @Override - public long get() + public long getLong() { return longVal; } @@ -85,7 +85,7 @@ public long get() new TestLongColumnSelector() { @Override - public long get() + public long getLong() { return longVal; } diff --git a/processing/src/test/java/io/druid/query/aggregation/MetricSelectorUtils.java b/processing/src/test/java/io/druid/query/aggregation/MetricSelectorUtils.java index 3fa03aba1879..1700b2d40d84 100644 --- a/processing/src/test/java/io/druid/query/aggregation/MetricSelectorUtils.java +++ b/processing/src/test/java/io/druid/query/aggregation/MetricSelectorUtils.java @@ -38,7 +38,7 @@ public Class classOfObject() @Override public Float get() { - return selector.get(); + return selector.getFloat(); } }; } @@ -56,7 +56,7 @@ public Class classOfObject() @Override public Double get() { - return selector.get(); + return selector.getDouble(); } }; } diff --git a/processing/src/test/java/io/druid/query/aggregation/TestDoubleColumnSelectorImpl.java b/processing/src/test/java/io/druid/query/aggregation/TestDoubleColumnSelectorImpl.java index 5fb27eb6bda4..8e8cf5097817 100644 --- a/processing/src/test/java/io/druid/query/aggregation/TestDoubleColumnSelectorImpl.java +++ b/processing/src/test/java/io/druid/query/aggregation/TestDoubleColumnSelectorImpl.java @@ -34,7 +34,7 @@ public TestDoubleColumnSelectorImpl(double[] doubles) } @Override - public double get() + public double getDouble() { return doubles[index]; } diff --git a/processing/src/test/java/io/druid/query/aggregation/TestFloatColumnSelector.java b/processing/src/test/java/io/druid/query/aggregation/TestFloatColumnSelector.java index 75477a9c00e4..8c0aa532d8f5 100644 --- a/processing/src/test/java/io/druid/query/aggregation/TestFloatColumnSelector.java +++ b/processing/src/test/java/io/druid/query/aggregation/TestFloatColumnSelector.java @@ -33,7 +33,7 @@ public TestFloatColumnSelector(float[] floats) } @Override - public float get() + public float getFloat() { return floats[index]; } diff --git a/processing/src/test/java/io/druid/query/aggregation/TestLongColumnSelector.java b/processing/src/test/java/io/druid/query/aggregation/TestLongColumnSelector.java index 3a63282e1036..2a78bb500521 100644 --- a/processing/src/test/java/io/druid/query/aggregation/TestLongColumnSelector.java +++ b/processing/src/test/java/io/druid/query/aggregation/TestLongColumnSelector.java @@ -33,7 +33,7 @@ public TestLongColumnSelector(long[] longs) } @Override - public long get() + public long getLong() { return longs[index]; } diff --git a/processing/src/test/java/io/druid/query/groupby/epinephelinae/TestColumnSelectorFactory.java b/processing/src/test/java/io/druid/query/groupby/epinephelinae/TestColumnSelectorFactory.java index c1492710b35a..e6c68eaf867d 100644 --- a/processing/src/test/java/io/druid/query/groupby/epinephelinae/TestColumnSelectorFactory.java +++ b/processing/src/test/java/io/druid/query/groupby/epinephelinae/TestColumnSelectorFactory.java @@ -53,7 +53,7 @@ public FloatColumnSelector makeFloatColumnSelector(final String columnName) return new TestFloatColumnSelector() { @Override - public float get() + public float getFloat() { return row.get().getFloatMetric(columnName); } @@ -66,7 +66,7 @@ public LongColumnSelector makeLongColumnSelector(final String columnName) return new TestLongColumnSelector() { @Override - public long get() + public long getLong() { return row.get().getLongMetric(columnName); } @@ -104,7 +104,7 @@ public DoubleColumnSelector makeDoubleColumnSelector(String columnName) return new TestDoubleColumnSelector() { @Override - public double get() + public double getDouble() { return row.get().getFloatMetric(columnName); } diff --git a/processing/src/test/java/io/druid/segment/virtual/ExpressionVirtualColumnTest.java b/processing/src/test/java/io/druid/segment/virtual/ExpressionVirtualColumnTest.java index 3d71e7bec62e..92b718bfab4a 100644 --- a/processing/src/test/java/io/druid/segment/virtual/ExpressionVirtualColumnTest.java +++ b/processing/src/test/java/io/druid/segment/virtual/ExpressionVirtualColumnTest.java @@ -113,16 +113,16 @@ public void testLongSelector() final LongColumnSelector selector = XPLUSY.makeLongColumnSelector("expr", COLUMN_SELECTOR_FACTORY); COLUMN_SELECTOR_FACTORY.setRow(ROW0); - Assert.assertEquals(0L, selector.get()); + Assert.assertEquals(0L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW1); - Assert.assertEquals(4L, selector.get()); + Assert.assertEquals(4L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW2); - Assert.assertEquals(5L, selector.get()); + Assert.assertEquals(5L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW3); - Assert.assertEquals(5L, selector.get()); + Assert.assertEquals(5L, selector.getLong()); } @Test @@ -131,16 +131,16 @@ public void testLongSelectorUsingStringFunction() final LongColumnSelector selector = ZCONCATX.makeLongColumnSelector("expr", COLUMN_SELECTOR_FACTORY); COLUMN_SELECTOR_FACTORY.setRow(ROW0); - Assert.assertEquals(0L, selector.get()); + Assert.assertEquals(0L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW1); - Assert.assertEquals(4L, selector.get()); + Assert.assertEquals(4L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW2); - Assert.assertEquals(0L, selector.get()); + Assert.assertEquals(0L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW3); - Assert.assertEquals(0L, selector.get()); + Assert.assertEquals(0L, selector.getLong()); } @Test @@ -149,16 +149,16 @@ public void testFloatSelector() final FloatColumnSelector selector = XPLUSY.makeFloatColumnSelector("expr", COLUMN_SELECTOR_FACTORY); COLUMN_SELECTOR_FACTORY.setRow(ROW0); - Assert.assertEquals(0.0f, selector.get(), 0.0f); + Assert.assertEquals(0.0f, selector.getFloat(), 0.0f); COLUMN_SELECTOR_FACTORY.setRow(ROW1); - Assert.assertEquals(4.0f, selector.get(), 0.0f); + Assert.assertEquals(4.0f, selector.getFloat(), 0.0f); COLUMN_SELECTOR_FACTORY.setRow(ROW2); - Assert.assertEquals(5.1f, selector.get(), 0.0f); + Assert.assertEquals(5.1f, selector.getFloat(), 0.0f); COLUMN_SELECTOR_FACTORY.setRow(ROW3); - Assert.assertEquals(5.0f, selector.get(), 0.0f); + Assert.assertEquals(5.0f, selector.getFloat(), 0.0f); } @Test @@ -268,7 +268,7 @@ public void testLongSelectorWithConstantLikeExprMacro() final LongColumnSelector selector = CONSTANT_LIKE.makeLongColumnSelector("expr", COLUMN_SELECTOR_FACTORY); COLUMN_SELECTOR_FACTORY.setRow(ROW0); - Assert.assertEquals(1L, selector.get()); + Assert.assertEquals(1L, selector.getLong()); } @Test @@ -277,16 +277,16 @@ public void testLongSelectorWithZLikeExprMacro() final LongColumnSelector selector = ZLIKE.makeLongColumnSelector("expr", COLUMN_SELECTOR_FACTORY); COLUMN_SELECTOR_FACTORY.setRow(ROW0); - Assert.assertEquals(0L, selector.get()); + Assert.assertEquals(0L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW1); - Assert.assertEquals(0L, selector.get()); + Assert.assertEquals(0L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW2); - Assert.assertEquals(1L, selector.get()); + Assert.assertEquals(1L, selector.getLong()); COLUMN_SELECTOR_FACTORY.setRow(ROW3); - Assert.assertEquals(1L, selector.get()); + Assert.assertEquals(1L, selector.getLong()); } @Test diff --git a/processing/src/test/java/io/druid/segment/virtual/VirtualColumnsTest.java b/processing/src/test/java/io/druid/segment/virtual/VirtualColumnsTest.java index b5e82d7fa11c..ef860cc3a4de 100644 --- a/processing/src/test/java/io/druid/segment/virtual/VirtualColumnsTest.java +++ b/processing/src/test/java/io/druid/segment/virtual/VirtualColumnsTest.java @@ -32,6 +32,7 @@ import io.druid.query.filter.ValueMatcher; import io.druid.query.monomorphicprocessing.RuntimeShapeInspector; import io.druid.segment.ColumnSelectorFactory; +import io.druid.segment.ColumnValueSelector; import io.druid.segment.DimensionSelector; import io.druid.segment.DimensionSelectorUtils; import io.druid.segment.DoubleColumnSelector; @@ -83,8 +84,8 @@ public void testMakeSelectors() Assert.assertEquals(1L, objectSelector.get()); Assert.assertEquals("1", dimensionSelector.lookupName(dimensionSelector.getRow().get(0))); Assert.assertEquals("0.5", extractionDimensionSelector.lookupName(extractionDimensionSelector.getRow().get(0))); - Assert.assertEquals(1.0f, floatSelector.get(), 0.0f); - Assert.assertEquals(1L, longSelector.get()); + Assert.assertEquals(1.0f, floatSelector.getFloat(), 0.0f); + Assert.assertEquals(1L, longSelector.getLong()); } @Test @@ -101,8 +102,8 @@ public void testMakeSelectorsWithDotSupport() Assert.assertEquals(5L, objectSelector.get()); Assert.assertEquals("5", dimensionSelector.lookupName(dimensionSelector.getRow().get(0))); - Assert.assertEquals(5.0f, floatSelector.get(), 0.0f); - Assert.assertEquals(5L, longSelector.get()); + Assert.assertEquals(5.0f, floatSelector.getFloat(), 0.0f); + Assert.assertEquals(5L, longSelector.getLong()); } @Test @@ -119,8 +120,8 @@ public void testMakeSelectorsWithDotSupportBaseNameOnly() Assert.assertEquals(-1L, objectSelector.get()); Assert.assertEquals("-1", dimensionSelector.lookupName(dimensionSelector.getRow().get(0))); - Assert.assertEquals(-1.0f, floatSelector.get(), 0.0f); - Assert.assertEquals(-1L, longSelector.get()); + Assert.assertEquals(-1.0f, floatSelector.getFloat(), 0.0f); + Assert.assertEquals(-1L, longSelector.getLong()); } @Test @@ -298,7 +299,7 @@ public Class classOfObject() @Override public Object get() { - return selector.get(); + return selector.getLong(); } }; } @@ -325,7 +326,7 @@ public int getValueCardinality() @Override public String lookupName(int id) { - final String stringValue = String.valueOf(selector.get()); + final String stringValue = String.valueOf(selector.getLong()); return extractionFn == null ? stringValue : extractionFn.apply(stringValue); } @@ -374,13 +375,13 @@ public void inspectRuntimeShape(RuntimeShapeInspector inspector) @Override public FloatColumnSelector makeFloatColumnSelector(String columnName, ColumnSelectorFactory factory) { - final LongColumnSelector selector = makeLongColumnSelector(columnName, factory); + final ColumnValueSelector selector = makeLongColumnSelector(columnName, factory); return new TestFloatColumnSelector() { @Override - public float get() + public float getFloat() { - return selector.get(); + return selector.getFloat(); } }; } @@ -394,7 +395,7 @@ public LongColumnSelector makeLongColumnSelector(String columnName, ColumnSelect return new TestLongColumnSelector() { @Override - public long get() + public long getLong() { return theLong; } @@ -402,17 +403,15 @@ public long get() } @Override - public DoubleColumnSelector makeDoubleColumnSelector( - String columnName, ColumnSelectorFactory factory - ) + public DoubleColumnSelector makeDoubleColumnSelector(String columnName, ColumnSelectorFactory factory) { - final LongColumnSelector selector = makeLongColumnSelector(columnName, factory); + final ColumnValueSelector selector = makeLongColumnSelector(columnName, factory); return new TestDoubleColumnSelector() { @Override - public double get() + public double getDouble() { - return selector.get(); + return selector.getDouble(); } }; } diff --git a/server/src/main/java/io/druid/segment/realtime/firehose/IngestSegmentFirehose.java b/server/src/main/java/io/druid/segment/realtime/firehose/IngestSegmentFirehose.java index 8f3f2bc8c6d6..29dd7fe370f8 100644 --- a/server/src/main/java/io/druid/segment/realtime/firehose/IngestSegmentFirehose.java +++ b/server/src/main/java/io/druid/segment/realtime/firehose/IngestSegmentFirehose.java @@ -124,7 +124,7 @@ public boolean hasNext() public InputRow next() { final Map theEvent = Maps.newLinkedHashMap(); - final long timestamp = timestampColumnSelector.get(); + final long timestamp = timestampColumnSelector.getLong(); theEvent.put(EventHolder.timestampKey, new DateTime(timestamp)); for (Map.Entry dimSelector : dimSelectors.entrySet()) { From 0c22c63fae394cfe642e9d95be84c23f2cf62e1e Mon Sep 17 00:00:00 2001 From: leventov Date: Tue, 1 Aug 2017 20:53:54 +0300 Subject: [PATCH 2/3] Fix copy-paste mistake in docs --- .../src/main/java/io/druid/segment/LongColumnSelector.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/processing/src/main/java/io/druid/segment/LongColumnSelector.java b/processing/src/main/java/io/druid/segment/LongColumnSelector.java index 2f2ef824880e..98c92cd0e08c 100644 --- a/processing/src/main/java/io/druid/segment/LongColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/LongColumnSelector.java @@ -31,7 +31,7 @@ public interface LongColumnSelector extends ColumnValueSelector, HotLoopCallee long getLong(); /** - * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential + * @deprecated This method is marked as deprecated in LongColumnSelector to minimize the probability of accidential * calling. "Polimorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @@ -44,7 +44,7 @@ default float getFloat() } /** - * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential + * @deprecated This method is marked as deprecated in LongColumnSelector to minimize the probability of accidential * calling. "Polimorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ From 6d244a2752b7d35f8a8e0b6bbe690e7313c3a606 Mon Sep 17 00:00:00 2001 From: leventov Date: Tue, 1 Aug 2017 21:00:45 +0300 Subject: [PATCH 3/3] Spelling --- .../main/java/io/druid/segment/DoubleColumnSelector.java | 4 ++-- .../src/main/java/io/druid/segment/FloatColumnSelector.java | 4 ++-- .../src/main/java/io/druid/segment/LongColumnSelector.java | 4 ++-- .../main/java/io/druid/segment/ObjectColumnSelector.java | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java b/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java index a9b85dd560cf..d38e241b7808 100644 --- a/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/DoubleColumnSelector.java @@ -31,7 +31,7 @@ public interface DoubleColumnSelector extends ColumnValueSelector, HotLoopCallee /** * @deprecated This method is marked as deprecated in DoubleColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of DoubleColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of DoubleColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated @@ -44,7 +44,7 @@ default float getFloat() /** * @deprecated This method is marked as deprecated in DoubleColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of DoubleColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of DoubleColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated diff --git a/processing/src/main/java/io/druid/segment/FloatColumnSelector.java b/processing/src/main/java/io/druid/segment/FloatColumnSelector.java index b79876bb00d3..a62eb697227f 100644 --- a/processing/src/main/java/io/druid/segment/FloatColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/FloatColumnSelector.java @@ -35,7 +35,7 @@ public interface FloatColumnSelector extends ColumnValueSelector, HotLoopCallee /** * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of FloatColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of FloatColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated @@ -48,7 +48,7 @@ default double getDouble() /** * @deprecated This method is marked as deprecated in FloatColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of FloatColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of FloatColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated diff --git a/processing/src/main/java/io/druid/segment/LongColumnSelector.java b/processing/src/main/java/io/druid/segment/LongColumnSelector.java index 98c92cd0e08c..d796b73a2138 100644 --- a/processing/src/main/java/io/druid/segment/LongColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/LongColumnSelector.java @@ -32,7 +32,7 @@ public interface LongColumnSelector extends ColumnValueSelector, HotLoopCallee /** * @deprecated This method is marked as deprecated in LongColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated @@ -45,7 +45,7 @@ default float getFloat() /** * @deprecated This method is marked as deprecated in LongColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of LongColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated diff --git a/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java b/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java index 9f817b2ff7e6..6dac1a42d5d4 100644 --- a/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java +++ b/processing/src/main/java/io/druid/segment/ObjectColumnSelector.java @@ -32,7 +32,7 @@ public interface ObjectColumnSelector extends ColumnValueSelector /** * @deprecated This method is marked as deprecated in ObjectColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated @@ -44,7 +44,7 @@ default float getFloat() /** * @deprecated This method is marked as deprecated in ObjectColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated @@ -56,7 +56,7 @@ default double getDouble() /** * @deprecated This method is marked as deprecated in ObjectColumnSelector to minimize the probability of accidential - * calling. "Polimorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} + * calling. "Polymorphism" of ObjectColumnSelector should be used only when operating on {@link ColumnValueSelector} * objects. */ @Deprecated