diff --git a/client/trino-client/src/main/java/okhttp3/internal/tls/DistinguishedNameParser.java b/client/trino-client/src/main/java/okhttp3/internal/tls/DistinguishedNameParser.java index b58507e616b3..fe993d989b12 100644 --- a/client/trino-client/src/main/java/okhttp3/internal/tls/DistinguishedNameParser.java +++ b/client/trino-client/src/main/java/okhttp3/internal/tls/DistinguishedNameParser.java @@ -164,7 +164,7 @@ private String hexAV() break; } else if (chars[pos] >= 'A' && chars[pos] <= 'F') { - chars[pos] += 32; //to low case + chars[pos] += (char) 32; // to low case } pos++; diff --git a/core/trino-main/src/main/java/io/trino/execution/BasicStageStats.java b/core/trino-main/src/main/java/io/trino/execution/BasicStageStats.java index af2dbfcd3cc4..6ef3d5b336f3 100644 --- a/core/trino-main/src/main/java/io/trino/execution/BasicStageStats.java +++ b/core/trino-main/src/main/java/io/trino/execution/BasicStageStats.java @@ -78,8 +78,8 @@ public class BasicStageStats private final long internalNetworkInputPositions; private final DataSize rawInputDataSize; private final long rawInputPositions; - private final long cumulativeUserMemory; - private final long failedCumulativeUserMemory; + private final double cumulativeUserMemory; + private final double failedCumulativeUserMemory; private final DataSize userMemoryReservation; private final DataSize totalMemoryReservation; private final Duration totalCpuTime; @@ -111,8 +111,8 @@ public BasicStageStats( DataSize rawInputDataSize, long rawInputPositions, - long cumulativeUserMemory, - long failedCumulativeUserMemory, + double cumulativeUserMemory, + double failedCumulativeUserMemory, DataSize userMemoryReservation, DataSize totalMemoryReservation, @@ -219,12 +219,12 @@ public Duration getPhysicalInputReadTime() return physicalInputReadTime; } - public long getCumulativeUserMemory() + public double getCumulativeUserMemory() { return cumulativeUserMemory; } - public long getFailedCumulativeUserMemory() + public double getFailedCumulativeUserMemory() { return failedCumulativeUserMemory; } @@ -288,8 +288,8 @@ public static BasicStageStats aggregateBasicStageStats(Iterable int runningDrivers = 0; int completedDrivers = 0; - long cumulativeUserMemory = 0; - long failedCumulativeUserMemory = 0; + double cumulativeUserMemory = 0; + double failedCumulativeUserMemory = 0; long userMemoryReservation = 0; long totalMemoryReservation = 0; diff --git a/core/trino-main/src/main/java/io/trino/execution/QueryStateMachine.java b/core/trino-main/src/main/java/io/trino/execution/QueryStateMachine.java index 84a2edbaa3bf..62aeb985b862 100644 --- a/core/trino-main/src/main/java/io/trino/execution/QueryStateMachine.java +++ b/core/trino-main/src/main/java/io/trino/execution/QueryStateMachine.java @@ -567,8 +567,8 @@ private QueryStats getQueryStats(Optional rootStage, List int blockedDrivers = 0; int completedDrivers = 0; - long cumulativeUserMemory = 0; - long failedCumulativeUserMemory = 0; + double cumulativeUserMemory = 0; + double failedCumulativeUserMemory = 0; long userMemoryReservation = 0; long revocableMemoryReservation = 0; long totalMemoryReservation = 0; diff --git a/core/trino-main/src/main/java/io/trino/execution/StageStateMachine.java b/core/trino-main/src/main/java/io/trino/execution/StageStateMachine.java index ce3046f0c8ae..2ddc4a6c3a9e 100644 --- a/core/trino-main/src/main/java/io/trino/execution/StageStateMachine.java +++ b/core/trino-main/src/main/java/io/trino/execution/StageStateMachine.java @@ -272,8 +272,8 @@ public BasicStageStats getBasicStageStats(Supplier> taskInfos int runningDrivers = 0; int completedDrivers = 0; - long cumulativeUserMemory = 0; - long failedCumulativeUserMemory = 0; + double cumulativeUserMemory = 0; + double failedCumulativeUserMemory = 0; long userMemoryReservation = 0; long totalMemoryReservation = 0; @@ -416,8 +416,8 @@ public StageInfo getStageInfo(Supplier> taskInfosSupplier) int blockedDrivers = 0; int completedDrivers = 0; - long cumulativeUserMemory = 0; - long failedCumulativeUserMemory = 0; + double cumulativeUserMemory = 0; + double failedCumulativeUserMemory = 0; long userMemoryReservation = currentUserMemory.get(); long revocableMemoryReservation = currentRevocableMemory.get(); long totalMemoryReservation = currentTotalMemory.get(); diff --git a/core/trino-main/src/main/java/io/trino/execution/executor/MultilevelSplitQueue.java b/core/trino-main/src/main/java/io/trino/execution/executor/MultilevelSplitQueue.java index 344c4662fb4e..317e28bdbd09 100644 --- a/core/trino-main/src/main/java/io/trino/execution/executor/MultilevelSplitQueue.java +++ b/core/trino-main/src/main/java/io/trino/execution/executor/MultilevelSplitQueue.java @@ -30,6 +30,8 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; +import static com.google.common.math.DoubleMath.roundToLong; +import static java.math.RoundingMode.HALF_UP; import static java.util.concurrent.TimeUnit.NANOSECONDS; import static java.util.concurrent.TimeUnit.SECONDS; @@ -169,7 +171,7 @@ private PrioritizedSplitRunner pollSplit() } } - targetScheduledTime /= levelTimeMultiplier; + targetScheduledTime = roundToLong(targetScheduledTime / levelTimeMultiplier, HALF_UP); } if (selectedLevel == -1) { diff --git a/core/trino-main/src/main/java/io/trino/metadata/FunctionManager.java b/core/trino-main/src/main/java/io/trino/metadata/FunctionManager.java index 90a2f421e30d..f1e533f83846 100644 --- a/core/trino-main/src/main/java/io/trino/metadata/FunctionManager.java +++ b/core/trino-main/src/main/java/io/trino/metadata/FunctionManager.java @@ -189,7 +189,7 @@ private static void verifyMethodHandleSignature(BoundSignature boundSignature, S checkArgument(convention.getArgumentConventions().size() == boundSignature.getArgumentTypes().size(), "Expected %s arguments, but got %s", boundSignature.getArgumentTypes().size(), convention.getArgumentConventions().size()); - int expectedParameterCount = convention.getArgumentConventions().stream() + long expectedParameterCount = convention.getArgumentConventions().stream() .mapToInt(InvocationArgumentConvention::getParameterCount) .sum(); expectedParameterCount += methodType.parameterList().stream().filter(ConnectorSession.class::equals).count(); diff --git a/core/trino-main/src/main/java/io/trino/operator/MultiChannelGroupByHash.java b/core/trino-main/src/main/java/io/trino/operator/MultiChannelGroupByHash.java index f5683ed8a197..9cd77a37e982 100644 --- a/core/trino-main/src/main/java/io/trino/operator/MultiChannelGroupByHash.java +++ b/core/trino-main/src/main/java/io/trino/operator/MultiChannelGroupByHash.java @@ -16,6 +16,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import com.google.common.primitives.Shorts; import io.trino.spi.Page; import io.trino.spi.PageBuilder; import io.trino.spi.TrinoException; @@ -1007,10 +1008,10 @@ private int calculatePositionToCombinationIdMapping(Page page, short[] positionT } else { for (int position = 0; position < positionToCombinationIds.length; position++) { - short combinationId = positionToCombinationIds[position]; + int combinationId = positionToCombinationIds[position]; combinationId *= dictionarySize; combinationId += dictionaryBlock.getId(position); - positionToCombinationIds[position] = combinationId; + positionToCombinationIds[position] = Shorts.checkedCast(combinationId); } } } diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/AbstractGroupCollectionAggregationState.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/AbstractGroupCollectionAggregationState.java index 569256552889..7bc5d5471c17 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/AbstractGroupCollectionAggregationState.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/AbstractGroupCollectionAggregationState.java @@ -25,7 +25,9 @@ import java.util.List; import static com.google.common.base.Verify.verify; +import static com.google.common.math.DoubleMath.roundToLong; import static io.airlift.slice.SizeOf.instanceSize; +import static java.math.RoundingMode.HALF_UP; /** * Instances of this state use a single PageBuilder for all groups. @@ -125,7 +127,7 @@ protected final void prepareAdd() int insertedPosition = currentPageBuilder.getPositionCount(); if (totalPositions == capacity) { - capacity *= 1.5; + capacity = roundToLong(capacity * 1.5, HALF_UP); nextBlockIndex.ensureCapacity(capacity); nextPosition.ensureCapacity(capacity); } diff --git a/core/trino-main/src/main/java/io/trino/operator/join/LookupJoinPageBuilder.java b/core/trino-main/src/main/java/io/trino/operator/join/LookupJoinPageBuilder.java index 7307530f680a..03b625c8ffda 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/LookupJoinPageBuilder.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/LookupJoinPageBuilder.java @@ -38,8 +38,8 @@ public class LookupJoinPageBuilder private final IntArrayList probeIndexBuilder = new IntArrayList(); private final PageBuilder buildPageBuilder; private final int buildOutputChannelCount; - private int estimatedProbeBlockBytes; - private int estimatedProbeRowSize = -1; + private long estimatedProbeBlockBytes; + private long estimatedProbeRowSize = -1; private int previousPosition = -1; private boolean isSequentialProbeIndices = true; @@ -196,13 +196,13 @@ private void appendProbeIndex(JoinProbe probe) } } - private int getEstimatedProbeRowSize(JoinProbe probe) + private long getEstimatedProbeRowSize(JoinProbe probe) { if (estimatedProbeRowSize != -1) { return estimatedProbeRowSize; } - int estimatedProbeRowSize = 0; + long estimatedProbeRowSize = 0; for (int index : probe.getOutputChannels()) { Block block = probe.getPage().getBlock(index); // Estimate the size of the probe row diff --git a/core/trino-main/src/main/java/io/trino/operator/join/unspilled/LookupJoinPageBuilder.java b/core/trino-main/src/main/java/io/trino/operator/join/unspilled/LookupJoinPageBuilder.java index 70f9a03be81a..cb224977116f 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/unspilled/LookupJoinPageBuilder.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/unspilled/LookupJoinPageBuilder.java @@ -40,8 +40,8 @@ public class LookupJoinPageBuilder private final IntArrayList probeIndexBuilder = new IntArrayList(); private final PageBuilder buildPageBuilder; private final int buildOutputChannelCount; - private int estimatedProbeBlockBytes; - private int estimatedProbeRowSize = -1; + private long estimatedProbeBlockBytes; + private long estimatedProbeRowSize = -1; private int previousPosition = -1; private boolean isSequentialProbeIndices = true; private boolean repeatBuildRow; @@ -242,13 +242,13 @@ private void appendProbeIndex(JoinProbe probe) } } - private int getEstimatedProbeRowSize(JoinProbe probe) + private long getEstimatedProbeRowSize(JoinProbe probe) { if (estimatedProbeRowSize != -1) { return estimatedProbeRowSize; } - int estimatedProbeRowSize = 0; + long estimatedProbeRowSize = 0; for (int index : probe.getOutputChannels()) { Block block = probe.getPage().getBlock(index); // Estimate the size of the probe row diff --git a/core/trino-main/src/main/java/io/trino/operator/project/PageProcessor.java b/core/trino-main/src/main/java/io/trino/operator/project/PageProcessor.java index d045f09a5e29..cf06aab2faa6 100644 --- a/core/trino-main/src/main/java/io/trino/operator/project/PageProcessor.java +++ b/core/trino-main/src/main/java/io/trino/operator/project/PageProcessor.java @@ -322,7 +322,7 @@ private ProcessBatchResult processBatch(int batchSize) { Block[] blocks = new Block[projections.size()]; - int pageSize = 0; + long pageSize = 0; SelectedPositions positionsBatch = selectedPositions.subRange(0, batchSize); for (int i = 0; i < projections.size(); i++) { if (yieldSignal.isSet()) { diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/SequenceFunction.java b/core/trino-main/src/main/java/io/trino/operator/scalar/SequenceFunction.java index 509fb623713f..49b9b086149a 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/SequenceFunction.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/SequenceFunction.java @@ -97,7 +97,7 @@ public static Block sequenceDateYearToMonth( BlockBuilder blockBuilder = DATE.createBlockBuilder(null, length); - int value = 0; + long value = 0; for (int i = 0; i < length; ++i) { DATE.writeLong(blockBuilder, DateTimeOperators.datePlusIntervalYearToMonth(start, value)); value += step; diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/timestamp/SequenceIntervalYearToMonth.java b/core/trino-main/src/main/java/io/trino/operator/scalar/timestamp/SequenceIntervalYearToMonth.java index db7064afa2ac..83625e893871 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/timestamp/SequenceIntervalYearToMonth.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/timestamp/SequenceIntervalYearToMonth.java @@ -55,7 +55,7 @@ public static Block sequence( BlockBuilder blockBuilder = SHORT_TYPE.createBlockBuilder(null, length); - int offset = 0; + long offset = 0; for (int i = 0; i < length; ++i) { long value = TimestampPlusIntervalYearToMonth.add(start, offset); SHORT_TYPE.writeLong(blockBuilder, value); @@ -79,7 +79,7 @@ public static Block sequence( BlockBuilder blockBuilder = LONG_TYPE.createBlockBuilder(null, length); - int offset = 0; + long offset = 0; for (int i = 0; i < length; ++i) { LongTimestamp value = TimestampPlusIntervalYearToMonth.add(start, offset); LONG_TYPE.writeObject(blockBuilder, value); diff --git a/core/trino-main/src/main/java/io/trino/server/ui/ClusterStatsResource.java b/core/trino-main/src/main/java/io/trino/server/ui/ClusterStatsResource.java index a9259079dfba..cb2a1cfa4da6 100644 --- a/core/trino-main/src/main/java/io/trino/server/ui/ClusterStatsResource.java +++ b/core/trino-main/src/main/java/io/trino/server/ui/ClusterStatsResource.java @@ -30,7 +30,9 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; +import static com.google.common.math.DoubleMath.roundToLong; import static io.trino.server.security.ResourceSecurity.AccessType.WEB_UI; +import static java.math.RoundingMode.HALF_UP; import static java.util.Objects.requireNonNull; import static java.util.concurrent.TimeUnit.SECONDS; @@ -91,7 +93,7 @@ else if (query.getState() == QueryState.RUNNING) { if (!query.getState().isDone()) { totalInputBytes += query.getQueryStats().getRawInputDataSize().toBytes(); totalInputRows += query.getQueryStats().getRawInputPositions(); - totalCpuTimeSecs += query.getQueryStats().getTotalCpuTime().getValue(SECONDS); + totalCpuTimeSecs += roundToLong(query.getQueryStats().getTotalCpuTime().getValue(SECONDS), HALF_UP); memoryReservation += query.getQueryStats().getUserMemoryReservation().toBytes(); runningDrivers += query.getQueryStats().getRunningDrivers(); diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java b/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java index 101786dd3a46..64a15b082431 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/LongTimestampWithTimeZoneType.java @@ -39,6 +39,7 @@ import static io.trino.spi.type.Timestamps.PICOSECONDS_PER_MILLISECOND; import static io.trino.spi.type.Timestamps.rescale; import static io.trino.spi.type.TypeOperatorDeclaration.extractOperatorDeclaration; +import static java.lang.Math.toIntExact; import static java.lang.String.format; import static java.lang.invoke.MethodHandles.lookup; @@ -151,7 +152,7 @@ public Optional getPreviousValue(Object value) LongTimestampWithTimeZone timestampWithTimeZone = (LongTimestampWithTimeZone) value; long epochMillis = timestampWithTimeZone.getEpochMillis(); int picosOfMilli = timestampWithTimeZone.getPicosOfMilli(); - picosOfMilli -= rescale(1, 0, 12 - getPrecision()); + picosOfMilli -= toIntExact(rescale(1, 0, 12 - getPrecision())); if (picosOfMilli < 0) { if (epochMillis == Long.MIN_VALUE) { return Optional.empty(); @@ -169,7 +170,7 @@ public Optional getNextValue(Object value) LongTimestampWithTimeZone timestampWithTimeZone = (LongTimestampWithTimeZone) value; long epochMillis = timestampWithTimeZone.getEpochMillis(); int picosOfMilli = timestampWithTimeZone.getPicosOfMilli(); - picosOfMilli += rescale(1, 0, 12 - getPrecision()); + picosOfMilli += toIntExact(rescale(1, 0, 12 - getPrecision())); if (picosOfMilli >= PICOSECONDS_PER_MILLISECOND) { if (epochMillis == Long.MAX_VALUE) { return Optional.empty(); diff --git a/lib/trino-array/pom.xml b/lib/trino-array/pom.xml index be685751c6f5..172a5b7cdaf8 100644 --- a/lib/trino-array/pom.xml +++ b/lib/trino-array/pom.xml @@ -16,6 +16,11 @@ + + com.google.guava + guava + + io.airlift slice diff --git a/lib/trino-array/src/main/java/io/trino/array/ShortBigArray.java b/lib/trino-array/src/main/java/io/trino/array/ShortBigArray.java index 8c80ac1f5a43..ab6019debd9a 100644 --- a/lib/trino-array/src/main/java/io/trino/array/ShortBigArray.java +++ b/lib/trino-array/src/main/java/io/trino/array/ShortBigArray.java @@ -13,6 +13,7 @@ */ package io.trino.array; +import com.google.common.primitives.Shorts; import io.airlift.slice.SizeOf; import java.util.Arrays; @@ -102,7 +103,7 @@ public void increment(long index) */ public void add(long index, long value) { - array[segment(index)][offset(index)] += value; + array[segment(index)][offset(index)] += Shorts.checkedCast(value); } /** diff --git a/lib/trino-filesystem/src/test/java/io/trino/filesystem/AbstractTestTrinoFileSystem.java b/lib/trino-filesystem/src/test/java/io/trino/filesystem/AbstractTestTrinoFileSystem.java index aa708169e45c..92150acedab6 100644 --- a/lib/trino-filesystem/src/test/java/io/trino/filesystem/AbstractTestTrinoFileSystem.java +++ b/lib/trino-filesystem/src/test/java/io/trino/filesystem/AbstractTestTrinoFileSystem.java @@ -274,7 +274,7 @@ public void testInputFile() // skip 1MB at a time inputStream.seek(0); - int expectedPosition = 0; + long expectedPosition = 0; for (int i = 0; i < 15; i++) { long skipSize = inputStream.skip(MEGABYTE); assertThat(skipSize).isEqualTo(MEGABYTE); diff --git a/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/TrinoDataInputStream.java b/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/TrinoDataInputStream.java index 8cfcb3e6ebc8..8521bcd4174e 100644 --- a/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/TrinoDataInputStream.java +++ b/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/TrinoDataInputStream.java @@ -233,7 +233,7 @@ public long skip(long length) int availableBytes = availableBytes(); // is skip within the current buffer? if (availableBytes >= length) { - bufferPosition += length; + bufferPosition = checkedCast(bufferPosition + length); return length; } diff --git a/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/encodings/binary/TimestampEncoding.java b/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/encodings/binary/TimestampEncoding.java index 1ee34b041a1d..02ab50396682 100644 --- a/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/encodings/binary/TimestampEncoding.java +++ b/lib/trino-hive-formats/src/main/java/io/trino/hive/formats/encodings/binary/TimestampEncoding.java @@ -13,6 +13,7 @@ */ package io.trino.hive.formats.encodings.binary; +import com.google.common.math.IntMath; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import io.trino.hive.formats.ReadWriteUtils; @@ -168,7 +169,7 @@ private static int decodeNanos(int nanos) nanos = temp; if (nanosDigits < 9) { - nanos *= Math.pow(10, 9 - nanosDigits); + nanos *= IntMath.pow(10, 9 - nanosDigits); } return nanos; } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/DictionaryCompressionOptimizer.java b/lib/trino-orc/src/main/java/io/trino/orc/DictionaryCompressionOptimizer.java index ad89067fc503..94ee46a95768 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/DictionaryCompressionOptimizer.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/DictionaryCompressionOptimizer.java @@ -25,7 +25,9 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static com.google.common.math.DoubleMath.roundToLong; import static java.lang.Math.toIntExact; +import static java.math.RoundingMode.HALF_UP; import static java.util.Objects.requireNonNull; public class DictionaryCompressionOptimizer @@ -106,7 +108,7 @@ public void finalOptimize(int bufferedBytes) convertLowCompressionStreams(bufferedBytes); } - public void optimize(int bufferedBytes, int stripeRowCount) + public void optimize(long bufferedBytes, int stripeRowCount) { // recompute the dictionary memory usage dictionaryMemoryBytes = allWriters.stream() @@ -131,7 +133,7 @@ public void optimize(int bufferedBytes, int stripeRowCount) } // calculate size of non-dictionary columns by removing the buffered size of dictionary columns - int nonDictionaryBufferedBytes = bufferedBytes; + long nonDictionaryBufferedBytes = bufferedBytes; for (DictionaryColumnManager dictionaryWriter : allWriters) { if (!dictionaryWriter.isDirectEncoded()) { nonDictionaryBufferedBytes -= dictionaryWriter.getBufferedBytes(); @@ -176,7 +178,7 @@ public void optimize(int bufferedBytes, int stripeRowCount) } } - private int convertLowCompressionStreams(int bufferedBytes) + private long convertLowCompressionStreams(long bufferedBytes) { // convert all low compression column to direct for (DictionaryColumnManager dictionaryWriter : ImmutableList.copyOf(directConversionCandidates)) { @@ -205,7 +207,7 @@ private OptionalInt tryConvertToDirect(DictionaryColumnManager dictionaryWriter, return directBytes; } - private double currentCompressionRatio(int totalNonDictionaryBytes) + private double currentCompressionRatio(long totalNonDictionaryBytes) { long uncompressedBytes = totalNonDictionaryBytes; long compressedBytes = totalNonDictionaryBytes; @@ -229,11 +231,11 @@ private double currentCompressionRatio(int totalNonDictionaryBytes) * @param stripeRowCount current number of rows in the stripe * @return the column that would produce the best stripe compression ration if converted to direct */ - private DictionaryCompressionProjection selectDictionaryColumnToConvert(int totalNonDictionaryBytes, int stripeRowCount) + private DictionaryCompressionProjection selectDictionaryColumnToConvert(long totalNonDictionaryBytes, int stripeRowCount) { checkState(!directConversionCandidates.isEmpty()); - int totalNonDictionaryBytesPerRow = totalNonDictionaryBytes / stripeRowCount; + long totalNonDictionaryBytesPerRow = totalNonDictionaryBytes / stripeRowCount; // rawBytes = sum of the length of every row value (without dictionary encoding) // dictionaryBytes = sum of the length of every entry in the dictionary @@ -243,9 +245,9 @@ private DictionaryCompressionProjection selectDictionaryColumnToConvert(int tota long totalDictionaryBytes = 0; long totalDictionaryIndexBytes = 0; - long totalDictionaryRawBytesPerRow = 0; - long totalDictionaryBytesPerNewRow = 0; - long totalDictionaryIndexBytesPerRow = 0; + double totalDictionaryRawBytesPerRow = 0; + double totalDictionaryBytesPerNewRow = 0; + double totalDictionaryIndexBytesPerRow = 0; for (DictionaryColumnManager column : allWriters) { if (!column.isDirectEncoded()) { @@ -259,7 +261,7 @@ private DictionaryCompressionProjection selectDictionaryColumnToConvert(int tota } } - long totalUncompressedBytesPerRow = totalNonDictionaryBytesPerRow + totalDictionaryRawBytesPerRow; + long totalUncompressedBytesPerRow = totalNonDictionaryBytesPerRow + roundToLong(totalDictionaryRawBytesPerRow, HALF_UP); DictionaryCompressionProjection maxProjectedCompression = null; for (DictionaryColumnManager column : directConversionCandidates) { @@ -294,7 +296,7 @@ private DictionaryCompressionProjection selectDictionaryColumnToConvert(int tota return maxProjectedCompression; } - private int getMaxDirectBytes(int bufferedBytes) + private int getMaxDirectBytes(long bufferedBytes) { return toIntExact(Math.min(stripeMaxBytes, stripeMaxBytes - bufferedBytes + DIRECT_COLUMN_SIZE_RANGE.toBytes())); } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/OrcWriter.java b/lib/trino-orc/src/main/java/io/trino/orc/OrcWriter.java index 1900e19cdad4..f7fd479a3929 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/OrcWriter.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/OrcWriter.java @@ -114,7 +114,7 @@ public final class OrcWriter private final DictionaryCompressionOptimizer dictionaryCompressionOptimizer; private int stripeRowCount; private int rowGroupRowCount; - private int bufferedBytes; + private long bufferedBytes; private long columnWritersRetainedBytes; private long closedStripesRetainedBytes; private long previouslyRecordedSizeInBytes; @@ -224,7 +224,7 @@ public long getWrittenBytes() /** * Number of pending bytes not yet flushed. */ - public int getBufferedBytes() + public long getBufferedBytes() { return bufferedBytes; } @@ -376,7 +376,7 @@ private List bufferStripeData(long stripeStartOffset, FlushReason } // convert any dictionary encoded column with a low compression ratio to direct - dictionaryCompressionOptimizer.finalOptimize(bufferedBytes); + dictionaryCompressionOptimizer.finalOptimize(toIntExact(bufferedBytes)); columnWriters.forEach(ColumnWriter::close); diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/ByteInputStream.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/ByteInputStream.java index 3cfc71296d18..5c06f8fddc5a 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/ByteInputStream.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/ByteInputStream.java @@ -20,6 +20,7 @@ import java.util.Arrays; import static java.lang.Math.min; +import static java.lang.Math.toIntExact; public class ByteInputStream implements ValueInputStream @@ -98,7 +99,7 @@ public void skip(long items) if (offset == length) { readNextBlock(); } - long consume = min(items, length - offset); + int consume = toIntExact(min(items, length - offset)); offset += consume; items -= consume; } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalInputStream.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalInputStream.java index 81880e175d11..85a837b9509f 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalInputStream.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalInputStream.java @@ -184,7 +184,7 @@ else if (offset < 16) { middle |= (value & 0x7F) << ((offset - 8) * 7); } else if (offset < 19) { - high |= (value & 0x7F) << ((offset - 16) * 7); + high = (int) (high | (value & 0x7F) << ((offset - 16) * 7)); } else { throw new OrcCorruptionException(chunkLoader.getOrcDataSourceId(), "Decimal exceeds 128 bits"); diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV1.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV1.java index ebaba90f5c8c..dedba56481dc 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV1.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV1.java @@ -20,6 +20,7 @@ import java.io.IOException; import static java.lang.Math.min; +import static java.lang.Math.toIntExact; public class LongInputStreamV1 implements LongInputStream @@ -227,7 +228,7 @@ public void skip(long items) if (used == numLiterals) { readValues(); } - long consume = min(items, numLiterals - used); + int consume = toIntExact(min(items, numLiterals - used)); used += consume; items -= consume; } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV2.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV2.java index 91b12cfebd4d..4c47ad695037 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV2.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongInputStreamV2.java @@ -21,6 +21,7 @@ import java.io.InputStream; import static java.lang.Math.min; +import static java.lang.Math.toIntExact; /** * See {@link org.apache.orc.impl.RunLengthIntegerWriterV2} for description of various lightweight compression techniques. @@ -437,7 +438,7 @@ public void skip(long items) used = 0; readValues(); } - long consume = min(items, numLiterals - used); + int consume = toIntExact(min(items, numLiterals - used)); used += consume; items -= consume; } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongOutputStreamV2.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongOutputStreamV2.java index 8d81d4c14f83..982604fdfd05 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongOutputStreamV2.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongOutputStreamV2.java @@ -1057,7 +1057,7 @@ void writeInts(long[] input, int offset, int length, int bitSize, SliceOutput ou int bitsToWrite = bitSize; while (bitsToWrite > bitsLeft) { // add the bits to the bottom of the current word - current |= value >>> (bitsToWrite - bitsLeft); + current = (byte) (current | value >>> (bitsToWrite - bitsLeft)); // subtract out the bits we just added bitsToWrite -= bitsLeft; // zero out the bits above bitsToWrite @@ -1067,7 +1067,7 @@ void writeInts(long[] input, int offset, int length, int bitSize, SliceOutput ou bitsLeft = 8; } bitsLeft -= bitsToWrite; - current |= value << bitsLeft; + current = (byte) (current | value << bitsLeft); if (bitsLeft == 0) { output.write(current); current = 0; diff --git a/lib/trino-orc/src/test/java/io/trino/orc/metadata/statistics/AbstractStatisticsBuilderTest.java b/lib/trino-orc/src/test/java/io/trino/orc/metadata/statistics/AbstractStatisticsBuilderTest.java index c577d14356b5..cd3b016eb19e 100644 --- a/lib/trino-orc/src/test/java/io/trino/orc/metadata/statistics/AbstractStatisticsBuilderTest.java +++ b/lib/trino-orc/src/test/java/io/trino/orc/metadata/statistics/AbstractStatisticsBuilderTest.java @@ -130,7 +130,7 @@ private void assertValuesInternal(T expectedMin, T expectedMax, List values) } } - protected static void assertNoColumnStatistics(ColumnStatistics columnStatistics, int expectedNumberOfValues) + protected static void assertNoColumnStatistics(ColumnStatistics columnStatistics, long expectedNumberOfValues) { assertEquals(columnStatistics.getNumberOfValues(), expectedNumberOfValues); assertNull(columnStatistics.getBooleanStatistics()); @@ -158,7 +158,7 @@ private void assertColumnStatistics( assertColumnStatistics(columnStatistics, expectedNumberOfValues, expectedMin, expectedMax); // merge in forward order - int totalCount = aggregateColumnStatistics.getTotalCount(); + long totalCount = aggregateColumnStatistics.getTotalCount(); assertColumnStatistics(aggregateColumnStatistics.getMergedColumnStatistics(Optional.empty()), totalCount, expectedMin, expectedMax); assertColumnStatistics(aggregateColumnStatistics.getMergedColumnStatisticsPairwise(Optional.empty()), totalCount, expectedMin, expectedMax); @@ -181,7 +181,7 @@ static List insertEmptyColumnStatisticsAt(List rangeStatistics, T expectedMin, T public static class AggregateColumnStatistics { - private int totalCount; + private long totalCount; private final ImmutableList.Builder statisticsList = ImmutableList.builder(); public void add(ColumnStatistics columnStatistics) @@ -248,7 +248,7 @@ public void add(ColumnStatistics columnStatistics) statisticsList.add(columnStatistics); } - public int getTotalCount() + public long getTotalCount() { return totalCount; } diff --git a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/decoders/DeltaPackingUtils.java b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/decoders/DeltaPackingUtils.java index 39f6f10ae7cf..6e953ebe28c4 100644 --- a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/decoders/DeltaPackingUtils.java +++ b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/decoders/DeltaPackingUtils.java @@ -329,76 +329,76 @@ private static long fillLong(short baseValue) private static void inPlacePrefixSum(byte[] output, int outputOffset, int length, short minDelta) { for (int i = outputOffset; i < outputOffset + length; i += 32) { - output[i] += output[i - 1] + minDelta; - output[i + 1] += output[i] + minDelta; - output[i + 2] += output[i + 1] + minDelta; - output[i + 3] += output[i + 2] + minDelta; - output[i + 4] += output[i + 3] + minDelta; - output[i + 5] += output[i + 4] + minDelta; - output[i + 6] += output[i + 5] + minDelta; - output[i + 7] += output[i + 6] + minDelta; - output[i + 8] += output[i + 7] + minDelta; - output[i + 9] += output[i + 8] + minDelta; - output[i + 10] += output[i + 9] + minDelta; - output[i + 11] += output[i + 10] + minDelta; - output[i + 12] += output[i + 11] + minDelta; - output[i + 13] += output[i + 12] + minDelta; - output[i + 14] += output[i + 13] + minDelta; - output[i + 15] += output[i + 14] + minDelta; - output[i + 16] += output[i + 15] + minDelta; - output[i + 17] += output[i + 16] + minDelta; - output[i + 18] += output[i + 17] + minDelta; - output[i + 19] += output[i + 18] + minDelta; - output[i + 20] += output[i + 19] + minDelta; - output[i + 21] += output[i + 20] + minDelta; - output[i + 22] += output[i + 21] + minDelta; - output[i + 23] += output[i + 22] + minDelta; - output[i + 24] += output[i + 23] + minDelta; - output[i + 25] += output[i + 24] + minDelta; - output[i + 26] += output[i + 25] + minDelta; - output[i + 27] += output[i + 26] + minDelta; - output[i + 28] += output[i + 27] + minDelta; - output[i + 29] += output[i + 28] + minDelta; - output[i + 30] += output[i + 29] + minDelta; - output[i + 31] += output[i + 30] + minDelta; + output[i] = (byte) (output[i] + (output[i - 1] + minDelta)); + output[i + 1] = (byte) (output[i + 1] + (output[i] + minDelta)); + output[i + 2] = (byte) (output[i + 2] + (output[i + 1] + minDelta)); + output[i + 3] = (byte) (output[i + 3] + (output[i + 2] + minDelta)); + output[i + 4] = (byte) (output[i + 4] + (output[i + 3] + minDelta)); + output[i + 5] = (byte) (output[i + 5] + (output[i + 4] + minDelta)); + output[i + 6] = (byte) (output[i + 6] + (output[i + 5] + minDelta)); + output[i + 7] = (byte) (output[i + 7] + (output[i + 6] + minDelta)); + output[i + 8] = (byte) (output[i + 8] + (output[i + 7] + minDelta)); + output[i + 9] = (byte) (output[i + 9] + (output[i + 8] + minDelta)); + output[i + 10] = (byte) (output[i + 10] + (output[i + 9] + minDelta)); + output[i + 11] = (byte) (output[i + 11] + (output[i + 10] + minDelta)); + output[i + 12] = (byte) (output[i + 12] + (output[i + 11] + minDelta)); + output[i + 13] = (byte) (output[i + 13] + (output[i + 12] + minDelta)); + output[i + 14] = (byte) (output[i + 14] + (output[i + 13] + minDelta)); + output[i + 15] = (byte) (output[i + 15] + (output[i + 14] + minDelta)); + output[i + 16] = (byte) (output[i + 16] + (output[i + 15] + minDelta)); + output[i + 17] = (byte) (output[i + 17] + (output[i + 16] + minDelta)); + output[i + 18] = (byte) (output[i + 18] + (output[i + 17] + minDelta)); + output[i + 19] = (byte) (output[i + 19] + (output[i + 18] + minDelta)); + output[i + 20] = (byte) (output[i + 20] + (output[i + 19] + minDelta)); + output[i + 21] = (byte) (output[i + 21] + (output[i + 20] + minDelta)); + output[i + 22] = (byte) (output[i + 22] + (output[i + 21] + minDelta)); + output[i + 23] = (byte) (output[i + 23] + (output[i + 22] + minDelta)); + output[i + 24] = (byte) (output[i + 24] + (output[i + 23] + minDelta)); + output[i + 25] = (byte) (output[i + 25] + (output[i + 24] + minDelta)); + output[i + 26] = (byte) (output[i + 26] + (output[i + 25] + minDelta)); + output[i + 27] = (byte) (output[i + 27] + (output[i + 26] + minDelta)); + output[i + 28] = (byte) (output[i + 28] + (output[i + 27] + minDelta)); + output[i + 29] = (byte) (output[i + 29] + (output[i + 28] + minDelta)); + output[i + 30] = (byte) (output[i + 30] + (output[i + 29] + minDelta)); + output[i + 31] = (byte) (output[i + 31] + (output[i + 30] + minDelta)); } } private static void inPlacePrefixSum(short[] output, int outputOffset, int length, int minDelta) { for (int i = outputOffset; i < outputOffset + length; i += 32) { - output[i] += output[i - 1] + minDelta; - output[i + 1] += output[i] + minDelta; - output[i + 2] += output[i + 1] + minDelta; - output[i + 3] += output[i + 2] + minDelta; - output[i + 4] += output[i + 3] + minDelta; - output[i + 5] += output[i + 4] + minDelta; - output[i + 6] += output[i + 5] + minDelta; - output[i + 7] += output[i + 6] + minDelta; - output[i + 8] += output[i + 7] + minDelta; - output[i + 9] += output[i + 8] + minDelta; - output[i + 10] += output[i + 9] + minDelta; - output[i + 11] += output[i + 10] + minDelta; - output[i + 12] += output[i + 11] + minDelta; - output[i + 13] += output[i + 12] + minDelta; - output[i + 14] += output[i + 13] + minDelta; - output[i + 15] += output[i + 14] + minDelta; - output[i + 16] += output[i + 15] + minDelta; - output[i + 17] += output[i + 16] + minDelta; - output[i + 18] += output[i + 17] + minDelta; - output[i + 19] += output[i + 18] + minDelta; - output[i + 20] += output[i + 19] + minDelta; - output[i + 21] += output[i + 20] + minDelta; - output[i + 22] += output[i + 21] + minDelta; - output[i + 23] += output[i + 22] + minDelta; - output[i + 24] += output[i + 23] + minDelta; - output[i + 25] += output[i + 24] + minDelta; - output[i + 26] += output[i + 25] + minDelta; - output[i + 27] += output[i + 26] + minDelta; - output[i + 28] += output[i + 27] + minDelta; - output[i + 29] += output[i + 28] + minDelta; - output[i + 30] += output[i + 29] + minDelta; - output[i + 31] += output[i + 30] + minDelta; + output[i] = (short) (output[i] + output[i - 1] + minDelta); + output[i + 1] = (short) (output[i + 1] + output[i] + minDelta); + output[i + 2] = (short) (output[i + 2] + output[i + 1] + minDelta); + output[i + 3] = (short) (output[i + 3] + output[i + 2] + minDelta); + output[i + 4] = (short) (output[i + 4] + output[i + 3] + minDelta); + output[i + 5] = (short) (output[i + 5] + output[i + 4] + minDelta); + output[i + 6] = (short) (output[i + 6] + output[i + 5] + minDelta); + output[i + 7] = (short) (output[i + 7] + output[i + 6] + minDelta); + output[i + 8] = (short) (output[i + 8] + output[i + 7] + minDelta); + output[i + 9] = (short) (output[i + 9] + output[i + 8] + minDelta); + output[i + 10] = (short) (output[i + 10] + output[i + 9] + minDelta); + output[i + 11] = (short) (output[i + 11] + output[i + 10] + minDelta); + output[i + 12] = (short) (output[i + 12] + output[i + 11] + minDelta); + output[i + 13] = (short) (output[i + 13] + output[i + 12] + minDelta); + output[i + 14] = (short) (output[i + 14] + output[i + 13] + minDelta); + output[i + 15] = (short) (output[i + 15] + output[i + 14] + minDelta); + output[i + 16] = (short) (output[i + 16] + output[i + 15] + minDelta); + output[i + 17] = (short) (output[i + 17] + output[i + 16] + minDelta); + output[i + 18] = (short) (output[i + 18] + output[i + 17] + minDelta); + output[i + 19] = (short) (output[i + 19] + output[i + 18] + minDelta); + output[i + 20] = (short) (output[i + 20] + output[i + 19] + minDelta); + output[i + 21] = (short) (output[i + 21] + output[i + 20] + minDelta); + output[i + 22] = (short) (output[i + 22] + output[i + 21] + minDelta); + output[i + 23] = (short) (output[i + 23] + output[i + 22] + minDelta); + output[i + 24] = (short) (output[i + 24] + output[i + 23] + minDelta); + output[i + 25] = (short) (output[i + 25] + output[i + 24] + minDelta); + output[i + 26] = (short) (output[i + 26] + output[i + 25] + minDelta); + output[i + 27] = (short) (output[i + 27] + output[i + 26] + minDelta); + output[i + 28] = (short) (output[i + 28] + output[i + 27] + minDelta); + output[i + 29] = (short) (output[i + 29] + output[i + 28] + minDelta); + output[i + 30] = (short) (output[i + 30] + output[i + 29] + minDelta); + output[i + 31] = (short) (output[i + 31] + output[i + 30] + minDelta); } } diff --git a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/flat/FilteredRowRangesIterator.java b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/flat/FilteredRowRangesIterator.java index 15716684c874..1051f13c8ba5 100644 --- a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/flat/FilteredRowRangesIterator.java +++ b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/flat/FilteredRowRangesIterator.java @@ -172,7 +172,7 @@ public long skipToRangeStart() if (rangeStart <= currentIndex) { return 0; } - long skipCount = rangeStart - currentIndex; + int skipCount = toIntExact(rangeStart - currentIndex); pageValuesConsumed += skipCount; return skipCount; } diff --git a/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetByteUnpacker.java b/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetByteUnpacker.java index 467311aff8e8..56d6b17aff25 100644 --- a/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetByteUnpacker.java +++ b/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetByteUnpacker.java @@ -40,7 +40,7 @@ public void unpackDelta(byte[] output, int outputOffset, SimpleSliceInputStream input.readBytes(buffer, 0, byteWidth); delegate.unpack32Values(buffer, 0, outputBuffer, 0); for (int j = 0; j < 32; j++) { - output[i + j] += output[i + j - 1] + (byte) outputBuffer[j]; + output[i + j] += (byte) (output[i + j - 1] + (byte) outputBuffer[j]); } } } diff --git a/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetShortUnpacker.java b/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetShortUnpacker.java index fcca943995d6..d1d8c8a4e498 100644 --- a/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetShortUnpacker.java +++ b/lib/trino-parquet/src/test/java/io/trino/parquet/reader/decoders/ApacheParquetShortUnpacker.java @@ -40,7 +40,7 @@ public void unpackDelta(short[] output, int outputOffset, SimpleSliceInputStream input.readBytes(buffer, 0, byteWidth); delegate.unpack32Values(buffer, 0, outputBuffer, 0); for (int j = 0; j < 32; j++) { - output[i + j] += output[i + j - 1] + (short) outputBuffer[j]; + output[i + j] += (short) (output[i + j - 1] + (short) outputBuffer[j]); } } } diff --git a/plugin/trino-geospatial/src/main/java/io/trino/plugin/geospatial/BingTile.java b/plugin/trino-geospatial/src/main/java/io/trino/plugin/geospatial/BingTile.java index 2403c4752974..68f2e579e9e6 100644 --- a/plugin/trino-geospatial/src/main/java/io/trino/plugin/geospatial/BingTile.java +++ b/plugin/trino-geospatial/src/main/java/io/trino/plugin/geospatial/BingTile.java @@ -138,7 +138,7 @@ public String toQuadKey() digit++; } if ((this.y & mask) != 0) { - digit += 2; + digit += (char) 2; } quadKey[this.zoomLevel - i] = digit; } diff --git a/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java b/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java index 369de4b8b404..34a8a89beb12 100644 --- a/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java +++ b/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java @@ -52,6 +52,7 @@ import static io.trino.spi.type.TimestampWithTimeZoneType.createTimestampWithTimeZoneType; import static io.trino.spi.type.VarcharType.createUnboundedVarcharType; import static io.trino.testing.TestingConnectorSession.SESSION; +import static java.lang.Math.toIntExact; import static java.lang.String.format; import static java.util.stream.Collectors.toSet; import static org.testng.Assert.assertEquals; @@ -60,7 +61,7 @@ public class TestJmxSplitManager { private static final Duration JMX_STATS_DUMP = new Duration(100, TimeUnit.MILLISECONDS); - private static final long SLEEP_TIME = JMX_STATS_DUMP.toMillis() / 5; + private static final int SLEEP_TIME = toIntExact(JMX_STATS_DUMP.toMillis() / 5); private static final long TIMEOUT_TIME = JMX_STATS_DUMP.toMillis() * 40; private static final String TEST_BEANS = "java.lang:type=Runtime"; private static final String CONNECTOR_ID = "test-id"; diff --git a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java index 3bbc5cef06a7..6fcb1fc512b6 100644 --- a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java +++ b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java @@ -59,7 +59,7 @@ public ConnectorSplitSource getSplits( List dataFragments = metadata.getDataFragments(table.getId()); - int totalRows = 0; + long totalRows = 0; ImmutableList.Builder splits = ImmutableList.builder(); diff --git a/pom.xml b/pom.xml index 9ea82b96f187..8c0835768d5d 100644 --- a/pom.xml +++ b/pom.xml @@ -2470,6 +2470,7 @@ -Xep:MissingSummary:OFF \ -Xep:MutablePublicArray:ERROR \ + -Xep:NarrowingCompoundAssignment:ERROR \ -Xep:NullOptional:ERROR \ -Xep:ObjectToString:ERROR \ -Xep:OptionalNotPresent:ERROR \ diff --git a/testing/trino-benchmark/src/main/java/io/trino/benchmark/SqlTopNBenchmark.java b/testing/trino-benchmark/src/main/java/io/trino/benchmark/SqlTopNBenchmark.java index 8982a90d7844..d4cb2b5f5b3c 100644 --- a/testing/trino-benchmark/src/main/java/io/trino/benchmark/SqlTopNBenchmark.java +++ b/testing/trino-benchmark/src/main/java/io/trino/benchmark/SqlTopNBenchmark.java @@ -14,6 +14,7 @@ package io.trino.benchmark; import com.google.common.collect.ImmutableMap; +import com.google.common.math.IntMath; import io.trino.testing.LocalQueryRunner; import static io.trino.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; @@ -35,7 +36,7 @@ public static void main(String[] args) { LocalQueryRunner localQueryRunner = createLocalQueryRunner(ImmutableMap.of("resource_overcommit", "true")); for (int i = 0; i < 11; i++) { - new SqlTopNBenchmark(localQueryRunner, (int) Math.pow(4, i)).runBenchmark(new SimpleLineBenchmarkResultWriter(System.out)); + new SqlTopNBenchmark(localQueryRunner, IntMath.pow(4, i)).runBenchmark(new SimpleLineBenchmarkResultWriter(System.out)); } } }