Refine search
private static CacheBuilder<Object, Object> newCacheBuilder(OptionalLong expiresAfterWriteMillis, OptionalLong refreshMillis, long maximumSize) { CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder(); if (expiresAfterWriteMillis.isPresent()) { cacheBuilder = cacheBuilder.expireAfterWrite(expiresAfterWriteMillis.getAsLong(), MILLISECONDS); } if (refreshMillis.isPresent() && (!expiresAfterWriteMillis.isPresent() || expiresAfterWriteMillis.getAsLong() > refreshMillis.getAsLong())) { cacheBuilder = cacheBuilder.refreshAfterWrite(refreshMillis.getAsLong(), MILLISECONDS); } cacheBuilder = cacheBuilder.maximumSize(maximumSize); return cacheBuilder; } }
private static OptionalLong toMetastoreDistinctValuesCount(OptionalLong distinctValuesCount, OptionalLong nullsCount) { // metastore counts null as a distinct value if (distinctValuesCount.isPresent() && nullsCount.isPresent()) { return OptionalLong.of(distinctValuesCount.getAsLong() + (nullsCount.getAsLong() > 0 ? 1 : 0)); } return OptionalLong.empty(); }
/** * Hive calculates NDV considering null as a distinct value */ private static OptionalLong fromMetastoreDistinctValuesCount(OptionalLong distinctValuesCount, OptionalLong nullsCount, OptionalLong rowCount) { if (distinctValuesCount.isPresent() && nullsCount.isPresent() && rowCount.isPresent()) { return OptionalLong.of(fromMetastoreDistinctValuesCount(distinctValuesCount.getAsLong(), nullsCount.getAsLong(), rowCount.getAsLong())); } return OptionalLong.empty(); }
@Override public void writeTo(OptionalLong entity, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException { if (!entity.isPresent()) { throw EmptyOptionalException.INSTANCE; } entityStream.write(Long.toString(entity.getAsLong()).getBytes(StandardCharsets.US_ASCII)); } }
@Override public String toString() { return toStringHelper(this) .add("rows", rows) .add("types", types) .add("setSessionProperties", setSessionProperties) .add("resetSessionProperties", resetSessionProperties) .add("updateType", updateType.orElse(null)) .add("updateCount", updateCount.isPresent() ? updateCount.getAsLong() : null) .omitNullValues() .toString(); }
private static OptionalDouble getAverageColumnLength(OptionalLong totalSizeInBytes, OptionalLong rowCount, OptionalLong nullsCount) { if (totalSizeInBytes.isPresent() && rowCount.isPresent() && nullsCount.isPresent()) { long nonNullsCount = rowCount.getAsLong() - nullsCount.getAsLong(); if (nonNullsCount <= 0) { return OptionalDouble.empty(); } return OptionalDouble.of(((double) totalSizeInBytes.getAsLong()) / nonNullsCount); } return OptionalDouble.empty(); }
private static OptionalLong reduce(OptionalLong first, OptionalLong second, ReduceOperator operator, boolean returnFirstNonEmpty) { if (first.isPresent() && second.isPresent()) { switch (operator) { case ADD: return OptionalLong.of(first.getAsLong() + second.getAsLong()); case SUBTRACT: return OptionalLong.of(first.getAsLong() - second.getAsLong()); case MAX: return OptionalLong.of(max(first.getAsLong(), second.getAsLong())); case MIN: return OptionalLong.of(min(first.getAsLong(), second.getAsLong())); default: throw new IllegalArgumentException("Unexpected operator: " + operator); } } if (returnFirstNonEmpty) { return first.isPresent() ? first : second; } return OptionalLong.empty(); }
/** * If a value is present in {@code optional}, returns a stream containing only that element, * otherwise returns an empty stream. * * <p><b>Java 9 users:</b> use {@code optional.stream()} instead. */ public static LongStream stream(OptionalLong optional) { return optional.isPresent() ? LongStream.of(optional.getAsLong()) : LongStream.empty(); }
private static void verifyFileDescriptor() { OptionalLong maxFileDescriptorCount = getMaxFileDescriptorCount(); if (!maxFileDescriptorCount.isPresent()) { // This should never happen since we have verified the OS and JVM above failRequirement("Cannot read OS file descriptor limit"); } if (maxFileDescriptorCount.getAsLong() < MIN_FILE_DESCRIPTORS) { failRequirement("Presto requires at least %s file descriptors (found %s)", MIN_FILE_DESCRIPTORS, maxFileDescriptorCount.getAsLong()); } if (maxFileDescriptorCount.getAsLong() < RECOMMENDED_FILE_DESCRIPTORS) { warnRequirement("Current OS file descriptor limit is %s. Presto recommends at least %s", maxFileDescriptorCount.getAsLong(), RECOMMENDED_FILE_DESCRIPTORS); } }
public static OptionalLong getTotalSizeInBytes(OptionalDouble averageColumnLength, OptionalLong rowCount, OptionalLong nullsCount) { if (averageColumnLength.isPresent() && rowCount.isPresent() && nullsCount.isPresent()) { long nonNullsCount = rowCount.getAsLong() - nullsCount.getAsLong(); if (nonNullsCount < 0) { return OptionalLong.empty(); } return OptionalLong.of(round(averageColumnLength.getAsDouble() * nonNullsCount)); } return OptionalLong.empty(); }
/** * If a value is present in {@code optional}, returns a stream containing only that element, * otherwise returns an empty stream. * * <p><b>Java 9 users:</b> use {@code optional.stream()} instead. */ public static LongStream stream(OptionalLong optional) { return optional.isPresent() ? LongStream.of(optional.getAsLong()) : LongStream.empty(); }