diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/DoubleSumAggregation.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/DoubleSumAggregation.java index 4cdd252a309e..6be0a64818bf 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/DoubleSumAggregation.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/DoubleSumAggregation.java @@ -13,6 +13,7 @@ */ package io.trino.operator.aggregation; +import io.trino.operator.aggregation.state.LongAndDoubleState; import io.trino.spi.block.BlockBuilder; import io.trino.spi.function.AggregationFunction; import io.trino.spi.function.AggregationState; @@ -30,34 +31,34 @@ public final class DoubleSumAggregation private DoubleSumAggregation() {} @InputFunction - public static void sum(@AggregationState LongDoubleState state, @SqlType(StandardTypes.DOUBLE) double value) + public static void sum(@AggregationState LongAndDoubleState state, @SqlType(StandardTypes.DOUBLE) double value) { - state.setFirst(state.getFirst() + 1); - state.setSecond(state.getSecond() + value); + state.setLong(state.getLong() + 1); + state.setDouble(state.getDouble() + value); } @RemoveInputFunction - public static void removeInput(@AggregationState LongDoubleState state, @SqlType(StandardTypes.DOUBLE) double value) + public static void removeInput(@AggregationState LongAndDoubleState state, @SqlType(StandardTypes.DOUBLE) double value) { - state.setFirst(state.getFirst() - 1); - state.setSecond(state.getSecond() - value); + state.setLong(state.getLong() - 1); + state.setDouble(state.getDouble() - value); } @CombineFunction - public static void combine(@AggregationState LongDoubleState state, @AggregationState LongDoubleState otherState) + public static void combine(@AggregationState LongAndDoubleState state, @AggregationState LongAndDoubleState otherState) { - state.setFirst(state.getFirst() + otherState.getFirst()); - state.setSecond(state.getSecond() + otherState.getSecond()); + state.setLong(state.getLong() + otherState.getLong()); + state.setDouble(state.getDouble() + otherState.getDouble()); } @OutputFunction(StandardTypes.DOUBLE) - public static void output(@AggregationState LongDoubleState state, BlockBuilder out) + public static void output(@AggregationState LongAndDoubleState state, BlockBuilder out) { - if (state.getFirst() == 0) { + if (state.getLong() == 0) { out.appendNull(); } else { - DoubleType.DOUBLE.writeDouble(out, state.getSecond()); + DoubleType.DOUBLE.writeDouble(out, state.getDouble()); } } } diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/LongDoubleState.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/LongDoubleState.java deleted file mode 100644 index 2c51284d0cca..000000000000 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/LongDoubleState.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.trino.operator.aggregation; - -import io.trino.spi.function.AccumulatorState; - -public interface LongDoubleState - extends AccumulatorState -{ - long getFirst(); - - void setFirst(long first); - - double getSecond(); - - void setSecond(double second); -}