From ff2ae095b11363f9333f731ba9fa745e87eefab2 Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Wed, 31 Aug 2022 15:07:27 +0200 Subject: [PATCH 1/2] Leverage Optional.orElseThrow to increase code readability Use of `Optional.orElseThrow` allows to verify the optional is not empty before assigning to a variable. This subsequently removes need for `Optional.get()` calls. --- .../dispatcher/QueuedStatementResource.java | 14 +-- .../java/io/trino/execution/CommentTask.java | 9 +- .../java/io/trino/execution/CommitTask.java | 5 +- .../java/io/trino/execution/DenyTask.java | 4 +- .../java/io/trino/execution/GrantTask.java | 4 +- .../java/io/trino/execution/RevokeTask.java | 4 +- .../java/io/trino/execution/RollbackTask.java | 5 +- .../io/trino/execution/SetPropertiesTask.java | 8 +- .../execution/SetTableAuthorizationTask.java | 4 +- .../io/trino/execution/TruncateTableTask.java | 9 +- .../io/trino/metadata/SignatureBinder.java | 8 +- .../aggregation/state/StateCompiler.java | 5 +- .../security/oauth2/JweTokenSerializer.java | 7 +- .../sql/analyzer/ExpressionAnalyzer.java | 18 +-- .../trino/sql/analyzer/StatementAnalyzer.java | 113 +++++++----------- .../rule/ApplyTableScanRedirection.java | 20 ++-- .../trino/sql/rewrite/ShowQueriesRewrite.java | 15 +-- .../plugin/accumulo/io/AccumuloPageSink.java | 11 +- .../plugin/cassandra/CassandraMetadata.java | 6 +- .../deltalake/DeltaHiveTypeTranslator.java | 8 +- .../plugin/deltalake/DeltaLakeMetadata.java | 24 ++-- .../plugin/google/sheets/SheetsClient.java | 8 +- .../plugin/google/sheets/SheetsMetadata.java | 16 +-- .../google/sheets/SheetsSplitManager.java | 12 +- .../io/trino/plugin/hive/HiveMetadata.java | 8 +- .../trino/plugin/hive/HiveSplitManager.java | 18 ++- .../trino/plugin/hive/HiveWriterFactory.java | 7 +- .../athena/projection/InjectedProjection.java | 6 +- .../SemiTransactionalHiveMetastore.java | 33 ++--- .../thrift/BridgingHiveMetastore.java | 35 ++---- .../metastore/thrift/ThriftMetastore.java | 10 +- .../plugin/hive/util/HiveTypeTranslator.java | 8 +- .../plugin/hive/util/HiveWriteUtils.java | 8 +- .../hive/AbstractTestHiveFileSystem.java | 17 +-- .../catalog/glue/TrinoGlueCatalog.java | 25 ++-- .../AbstractResourceConfigurationManager.java | 10 +- .../trino/plugin/thrift/ThriftMetadata.java | 9 +- 37 files changed, 187 insertions(+), 344 deletions(-) diff --git a/core/trino-main/src/main/java/io/trino/dispatcher/QueuedStatementResource.java b/core/trino-main/src/main/java/io/trino/dispatcher/QueuedStatementResource.java index 5f31eef50fd2..79e7a0c83a6b 100644 --- a/core/trino-main/src/main/java/io/trino/dispatcher/QueuedStatementResource.java +++ b/core/trino-main/src/main/java/io/trino/dispatcher/QueuedStatementResource.java @@ -391,15 +391,13 @@ public QueryResults getQueryResults(long token, UriInfo uriInfo) DispatchInfo.queued(NO_DURATION, NO_DURATION)); } - Optional dispatchInfo = dispatchManager.getDispatchInfo(queryId); - if (dispatchInfo.isEmpty()) { - // query should always be found, but it may have just been determined to be abandoned - throw new WebApplicationException(Response - .status(NOT_FOUND) - .build()); - } + DispatchInfo dispatchInfo = dispatchManager.getDispatchInfo(queryId) + // query should always be found, but it may have just been determined to be abandoned + .orElseThrow(() -> new WebApplicationException(Response + .status(NOT_FOUND) + .build())); - return createQueryResults(token + 1, uriInfo, dispatchInfo.get()); + return createQueryResults(token + 1, uriInfo, dispatchInfo); } public void cancel() diff --git a/core/trino-main/src/main/java/io/trino/execution/CommentTask.java b/core/trino-main/src/main/java/io/trino/execution/CommentTask.java index bf408789aa9d..cd29320675dd 100644 --- a/core/trino-main/src/main/java/io/trino/execution/CommentTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/CommentTask.java @@ -30,7 +30,6 @@ import java.util.List; import java.util.Map; -import java.util.Optional; import static com.google.common.util.concurrent.Futures.immediateVoidFuture; import static io.trino.metadata.MetadataUtil.createQualifiedObjectName; @@ -133,12 +132,10 @@ else if (metadata.getTableHandle(session, viewName).isPresent()) { private void commentOnColumn(Comment statement, Session session) { - Optional prefix = statement.getName().getPrefix(); - if (prefix.isEmpty()) { - throw semanticException(MISSING_TABLE, statement, "Table must be specified"); - } + QualifiedName prefix = statement.getName().getPrefix() + .orElseThrow(() -> semanticException(MISSING_TABLE, statement, "Table must be specified")); - QualifiedObjectName originalTableName = createQualifiedObjectName(session, statement, prefix.get()); + QualifiedObjectName originalTableName = createQualifiedObjectName(session, statement, prefix); RedirectionAwareTableHandle redirectionAwareTableHandle = metadata.getRedirectionAwareTableHandle(session, originalTableName); if (redirectionAwareTableHandle.getTableHandle().isEmpty()) { throw semanticException(TABLE_NOT_FOUND, statement, "Table does not exist: " + originalTableName); diff --git a/core/trino-main/src/main/java/io/trino/execution/CommitTask.java b/core/trino-main/src/main/java/io/trino/execution/CommitTask.java index f777048525c4..43438e9adb7b 100644 --- a/core/trino-main/src/main/java/io/trino/execution/CommitTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/CommitTask.java @@ -54,10 +54,7 @@ public ListenableFuture execute( WarningCollector warningCollector) { Session session = stateMachine.getSession(); - if (session.getTransactionId().isEmpty()) { - throw new TrinoException(NOT_IN_TRANSACTION, "No transaction in progress"); - } - TransactionId transactionId = session.getTransactionId().get(); + TransactionId transactionId = session.getTransactionId().orElseThrow(() -> new TrinoException(NOT_IN_TRANSACTION, "No transaction in progress")); stateMachine.clearTransactionId(); return transactionManager.asyncCommit(transactionId); diff --git a/core/trino-main/src/main/java/io/trino/execution/DenyTask.java b/core/trino-main/src/main/java/io/trino/execution/DenyTask.java index 2a4cd0032a16..943c03d84210 100644 --- a/core/trino-main/src/main/java/io/trino/execution/DenyTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/DenyTask.java @@ -19,7 +19,6 @@ import io.trino.metadata.Metadata; import io.trino.metadata.QualifiedObjectName; import io.trino.metadata.RedirectionAwareTableHandle; -import io.trino.metadata.TableHandle; import io.trino.security.AccessControl; import io.trino.spi.connector.CatalogSchemaName; import io.trino.spi.security.Privilege; @@ -97,8 +96,7 @@ private static void executeDenyOnTable(Session session, Deny statement, Metadata { QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getName()); RedirectionAwareTableHandle redirection = metadata.getRedirectionAwareTableHandle(session, tableName); - Optional tableHandle = redirection.getTableHandle(); - if (tableHandle.isEmpty()) { + if (redirection.getTableHandle().isEmpty()) { throw semanticException(TABLE_NOT_FOUND, statement, "Table '%s' does not exist", tableName); } if (redirection.getRedirectedTableName().isPresent()) { diff --git a/core/trino-main/src/main/java/io/trino/execution/GrantTask.java b/core/trino-main/src/main/java/io/trino/execution/GrantTask.java index ad5d2cbf2ba7..806912b3f8d9 100644 --- a/core/trino-main/src/main/java/io/trino/execution/GrantTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/GrantTask.java @@ -19,7 +19,6 @@ import io.trino.metadata.Metadata; import io.trino.metadata.QualifiedObjectName; import io.trino.metadata.RedirectionAwareTableHandle; -import io.trino.metadata.TableHandle; import io.trino.security.AccessControl; import io.trino.spi.connector.CatalogSchemaName; import io.trino.spi.security.Privilege; @@ -101,8 +100,7 @@ private void executeGrantOnTable(Session session, Grant statement) { QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getName()); RedirectionAwareTableHandle redirection = metadata.getRedirectionAwareTableHandle(session, tableName); - Optional tableHandle = redirection.getTableHandle(); - if (tableHandle.isEmpty()) { + if (redirection.getTableHandle().isEmpty()) { throw semanticException(TABLE_NOT_FOUND, statement, "Table '%s' does not exist", tableName); } if (redirection.getRedirectedTableName().isPresent()) { diff --git a/core/trino-main/src/main/java/io/trino/execution/RevokeTask.java b/core/trino-main/src/main/java/io/trino/execution/RevokeTask.java index 43276b0c8e13..39adb347b01f 100644 --- a/core/trino-main/src/main/java/io/trino/execution/RevokeTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/RevokeTask.java @@ -19,7 +19,6 @@ import io.trino.metadata.Metadata; import io.trino.metadata.QualifiedObjectName; import io.trino.metadata.RedirectionAwareTableHandle; -import io.trino.metadata.TableHandle; import io.trino.security.AccessControl; import io.trino.spi.connector.CatalogSchemaName; import io.trino.spi.security.Privilege; @@ -101,8 +100,7 @@ private void executeRevokeOnTable(Session session, Revoke statement) { QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getName()); RedirectionAwareTableHandle redirection = metadata.getRedirectionAwareTableHandle(session, tableName); - Optional tableHandle = redirection.getTableHandle(); - if (tableHandle.isEmpty()) { + if (redirection.getTableHandle().isEmpty()) { throw semanticException(TABLE_NOT_FOUND, statement, "Table '%s' does not exist", tableName); } if (redirection.getRedirectedTableName().isPresent()) { diff --git a/core/trino-main/src/main/java/io/trino/execution/RollbackTask.java b/core/trino-main/src/main/java/io/trino/execution/RollbackTask.java index 51318e9708f9..965018c050d7 100644 --- a/core/trino-main/src/main/java/io/trino/execution/RollbackTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/RollbackTask.java @@ -55,10 +55,7 @@ public ListenableFuture execute( WarningCollector warningCollector) { Session session = stateMachine.getSession(); - if (session.getTransactionId().isEmpty()) { - throw new TrinoException(NOT_IN_TRANSACTION, "No transaction in progress"); - } - TransactionId transactionId = session.getTransactionId().get(); + TransactionId transactionId = session.getTransactionId().orElseThrow(() -> new TrinoException(NOT_IN_TRANSACTION, "No transaction in progress")); stateMachine.clearTransactionId(); transactionManager.asyncAbort(transactionId); diff --git a/core/trino-main/src/main/java/io/trino/execution/SetPropertiesTask.java b/core/trino-main/src/main/java/io/trino/execution/SetPropertiesTask.java index 32dbde1aa781..66f935284b01 100644 --- a/core/trino-main/src/main/java/io/trino/execution/SetPropertiesTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/SetPropertiesTask.java @@ -118,13 +118,11 @@ private void setTableProperties(SetProperties statement, QualifiedObjectName tab throw semanticException(NOT_SUPPORTED, statement, "Cannot set properties to a view in ALTER TABLE"); } - Optional tableHandle = plannerContext.getMetadata().getTableHandle(session, tableName); - if (tableHandle.isEmpty()) { - throw semanticException(TABLE_NOT_FOUND, statement, "Table does not exist: %s", tableName); - } + TableHandle tableHandle = plannerContext.getMetadata().getTableHandle(session, tableName) + .orElseThrow(() -> semanticException(TABLE_NOT_FOUND, statement, "Table does not exist: %s", tableName)); accessControl.checkCanSetTableProperties(session.toSecurityContext(), tableName, properties); - plannerContext.getMetadata().setTableProperties(session, tableHandle.get(), properties); + plannerContext.getMetadata().setTableProperties(session, tableHandle, properties); } private void setMaterializedViewProperties( diff --git a/core/trino-main/src/main/java/io/trino/execution/SetTableAuthorizationTask.java b/core/trino-main/src/main/java/io/trino/execution/SetTableAuthorizationTask.java index aaceea09beed..651642269ce7 100644 --- a/core/trino-main/src/main/java/io/trino/execution/SetTableAuthorizationTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/SetTableAuthorizationTask.java @@ -19,7 +19,6 @@ import io.trino.metadata.Metadata; import io.trino.metadata.QualifiedObjectName; import io.trino.metadata.RedirectionAwareTableHandle; -import io.trino.metadata.TableHandle; import io.trino.security.AccessControl; import io.trino.spi.security.TrinoPrincipal; import io.trino.sql.tree.Expression; @@ -71,8 +70,7 @@ public ListenableFuture execute( getRequiredCatalogHandle(metadata, session, statement, tableName.getCatalogName()); RedirectionAwareTableHandle redirection = metadata.getRedirectionAwareTableHandle(session, tableName); - Optional tableHandle = redirection.getTableHandle(); - if (tableHandle.isEmpty()) { + if (redirection.getTableHandle().isEmpty()) { throw semanticException(TABLE_NOT_FOUND, statement, "Table '%s' does not exist", tableName); } if (redirection.getRedirectedTableName().isPresent()) { diff --git a/core/trino-main/src/main/java/io/trino/execution/TruncateTableTask.java b/core/trino-main/src/main/java/io/trino/execution/TruncateTableTask.java index 1303913033b8..f5ed8e86eb60 100644 --- a/core/trino-main/src/main/java/io/trino/execution/TruncateTableTask.java +++ b/core/trino-main/src/main/java/io/trino/execution/TruncateTableTask.java @@ -26,7 +26,6 @@ import javax.inject.Inject; import java.util.List; -import java.util.Optional; import static com.google.common.util.concurrent.Futures.immediateFuture; import static io.trino.metadata.MetadataUtil.createQualifiedObjectName; @@ -72,14 +71,12 @@ public ListenableFuture execute( throw semanticException(NOT_SUPPORTED, statement, "Cannot truncate a view"); } - Optional tableHandle = metadata.getTableHandle(session, tableName); - if (tableHandle.isEmpty()) { - throw semanticException(TABLE_NOT_FOUND, statement, "Table '%s' does not exist", tableName); - } + TableHandle tableHandle = metadata.getTableHandle(session, tableName) + .orElseThrow(() -> semanticException(TABLE_NOT_FOUND, statement, "Table '%s' does not exist", tableName)); accessControl.checkCanTruncateTable(session.toSecurityContext(), tableName); - metadata.truncateTable(session, tableHandle.get()); + metadata.truncateTable(session, tableHandle); return immediateFuture(null); } diff --git a/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java b/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java index 748289c8572c..6611f5829d52 100644 --- a/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java +++ b/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java @@ -479,11 +479,9 @@ private boolean appendConstraintSolvers( ImmutableList.Builder formalTypeParameterTypeSignatures = ImmutableList.builder(); for (TypeSignatureParameter formalTypeParameter : formalTypeSignature.getParameters()) { - Optional typeSignature = formalTypeParameter.getTypeSignatureOrNamedTypeSignature(); - if (typeSignature.isEmpty()) { - throw new UnsupportedOperationException("Types with both type parameters and literal parameters at the same time are not supported"); - } - formalTypeParameterTypeSignatures.add(typeSignature.get()); + TypeSignature typeSignature = formalTypeParameter.getTypeSignatureOrNamedTypeSignature() + .orElseThrow(() -> new UnsupportedOperationException("Types with both type parameters and literal parameters at the same time are not supported")); + formalTypeParameterTypeSignatures.add(typeSignature); } return appendConstraintSolvers( diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/state/StateCompiler.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/state/StateCompiler.java index 72b1f109ab72..1e55902ab293 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/state/StateCompiler.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/state/StateCompiler.java @@ -1151,10 +1151,7 @@ public Class getType() Type getSqlType() { - if (sqlType.isEmpty()) { - throw new IllegalArgumentException("Unsupported type: " + type); - } - return sqlType.get(); + return sqlType.orElseThrow(() -> new IllegalArgumentException("Unsupported type: " + type)); } boolean isPrimitiveType() diff --git a/core/trino-main/src/main/java/io/trino/server/security/oauth2/JweTokenSerializer.java b/core/trino-main/src/main/java/io/trino/server/security/oauth2/JweTokenSerializer.java index eda58cab016d..7c9b4f47a435 100644 --- a/core/trino-main/src/main/java/io/trino/server/security/oauth2/JweTokenSerializer.java +++ b/core/trino-main/src/main/java/io/trino/server/security/oauth2/JweTokenSerializer.java @@ -39,7 +39,6 @@ import java.time.Clock; import java.util.Date; import java.util.Map; -import java.util.Optional; import static com.google.common.base.Preconditions.checkState; import static io.trino.server.security.jwt.JwtUtil.newJwtBuilder; @@ -122,11 +121,7 @@ public String serialize(TokenPair tokenPair) { requireNonNull(tokenPair, "tokenPair is null"); - Optional> accessTokenClaims = client.getClaims(tokenPair.getAccessToken()); - if (accessTokenClaims.isEmpty()) { - throw new IllegalArgumentException("Claims are missing"); - } - Map claims = accessTokenClaims.get(); + Map claims = client.getClaims(tokenPair.getAccessToken()).orElseThrow(() -> new IllegalArgumentException("Claims are missing")); if (!claims.containsKey(principalField)) { throw new IllegalArgumentException(format("%s field is missing", principalField)); } diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java index 78948b2ad36a..132a950ef4ed 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java @@ -722,8 +722,7 @@ protected Type visitDereferenceExpression(DereferenceExpression node, StackableA throw semanticException(COLUMN_NOT_FOUND, node, "Column %s prefixed with label %s cannot be resolved", unlabeledName, label); } Identifier unlabeled = qualifiedName.getOriginalParts().get(1); - Optional resolvedField = context.getContext().getScope().tryResolveField(node, unlabeledName); - if (resolvedField.isEmpty()) { + if (context.getContext().getScope().tryResolveField(node, unlabeledName).isEmpty()) { throw semanticException(COLUMN_NOT_FOUND, node, "Column %s prefixed with label %s cannot be resolved", unlabeledName, label); } // Correlation is not allowed in pattern recognition context. Visitor's context for pattern recognition has CorrelationSupport.DISALLOWED, @@ -901,13 +900,8 @@ private void coerceCaseOperandToToSingleType(SimpleCaseExpression node, Stackabl Type whenOperandType = process(whenOperand, context); whenOperandTypes.add(whenOperandType); - Optional operandCommonType = typeCoercion.getCommonSuperType(commonType, whenOperandType); - - if (operandCommonType.isEmpty()) { - throw semanticException(TYPE_MISMATCH, whenOperand, "CASE operand type does not match WHEN clause operand type: %s vs %s", operandType, whenOperandType); - } - - commonType = operandCommonType.get(); + commonType = typeCoercion.getCommonSuperType(commonType, whenOperandType) + .orElseThrow(() -> semanticException(TYPE_MISMATCH, whenOperand, "CASE operand type does not match WHEN clause operand type: %s vs %s", operandType, whenOperandType)); } if (commonType != operandType) { @@ -1505,10 +1499,8 @@ else if (frame.getType() == GROUPS) { private void analyzeFrameRangeOffset(Expression offsetValue, FrameBound.Type boundType, StackableAstVisitorContext context, ResolvedWindow window, Node originalNode) { - if (window.getOrderBy().isEmpty()) { - throw semanticException(MISSING_ORDER_BY, originalNode, "Window frame of type RANGE PRECEDING or FOLLOWING requires ORDER BY"); - } - OrderBy orderBy = window.getOrderBy().get(); + OrderBy orderBy = window.getOrderBy() + .orElseThrow(() -> semanticException(MISSING_ORDER_BY, originalNode, "Window frame of type RANGE PRECEDING or FOLLOWING requires ORDER BY")); if (orderBy.getSortItems().size() != 1) { throw semanticException(INVALID_ORDER_BY, orderBy, "Window frame of type RANGE PRECEDING or FOLLOWING requires single sort item in ORDER BY (actual: %s)", orderBy.getSortItems().size()); } diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java index ebb6d08f0773..55bc43efe437 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java @@ -613,11 +613,8 @@ protected Scope visitInsert(Insert insert, Optional scope) protected Scope visitRefreshMaterializedView(RefreshMaterializedView refreshMaterializedView, Optional scope) { QualifiedObjectName name = createQualifiedObjectName(session, refreshMaterializedView, refreshMaterializedView.getName()); - Optional optionalView = metadata.getMaterializedView(session, name); - - if (optionalView.isEmpty()) { - throw semanticException(TABLE_NOT_FOUND, refreshMaterializedView, "Materialized view '%s' does not exist", name); - } + MaterializedViewDefinition view = metadata.getMaterializedView(session, name) + .orElseThrow(() -> semanticException(TABLE_NOT_FOUND, refreshMaterializedView, "Materialized view '%s' does not exist", name)); accessControl.checkCanRefreshMaterializedView(session.toSecurityContext(), name); analysis.setUpdateType("REFRESH MATERIALIZED VIEW"); @@ -631,38 +628,33 @@ protected Scope visitRefreshMaterializedView(RefreshMaterializedView refreshMate return createAndAssignScope(refreshMaterializedView, scope); } - Optional storageName = getMaterializedViewStorageTableName(optionalView.get()); + QualifiedName storageName = getMaterializedViewStorageTableName(view) + .orElseThrow(() -> semanticException(TABLE_NOT_FOUND, refreshMaterializedView, "Storage Table for materialized view '%s' does not exist", name)); - if (storageName.isEmpty()) { - throw semanticException(TABLE_NOT_FOUND, refreshMaterializedView, "Storage Table '%s' for materialized view '%s' does not exist", storageName, name); - } - - QualifiedObjectName targetTable = createQualifiedObjectName(session, refreshMaterializedView, storageName.get()); + QualifiedObjectName targetTable = createQualifiedObjectName(session, refreshMaterializedView, storageName); checkStorageTableNotRedirected(targetTable); // analyze the query that creates the data - Query query = parseView(optionalView.get().getOriginalSql(), name, refreshMaterializedView); + Query query = parseView(view.getOriginalSql(), name, refreshMaterializedView); Scope queryScope = process(query, scope); // verify the insert destination columns match the query - Optional targetTableHandle = metadata.getTableHandle(session, targetTable); - if (targetTableHandle.isEmpty()) { - throw semanticException(TABLE_NOT_FOUND, refreshMaterializedView, "Table '%s' does not exist", targetTable); - } + TableHandle targetTableHandle = metadata.getTableHandle(session, targetTable) + .orElseThrow(() -> semanticException(TABLE_NOT_FOUND, refreshMaterializedView, "Table '%s' does not exist", targetTable)); analysis.setSkipMaterializedViewRefresh(metadata.getMaterializedViewFreshness(session, name).isMaterializedViewFresh()); - TableMetadata tableMetadata = metadata.getTableMetadata(session, targetTableHandle.get()); + TableMetadata tableMetadata = metadata.getTableMetadata(session, targetTableHandle); List insertColumns = tableMetadata.getColumns().stream() .filter(column -> !column.isHidden()) .map(ColumnMetadata::getName) .collect(toImmutableList()); - Map columnHandles = metadata.getColumnHandles(session, targetTableHandle.get()); + Map columnHandles = metadata.getColumnHandles(session, targetTableHandle); analysis.setRefreshMaterializedView(new Analysis.RefreshMaterializedViewAnalysis( refreshMaterializedView.getTable(), - targetTableHandle.get(), query, + targetTableHandle, query, insertColumns.stream().map(columnHandles::get).collect(toImmutableList()))); List tableTypes = insertColumns.stream() @@ -1348,15 +1340,13 @@ private void validateColumns(Statement node, RelationType descriptor) // TODO: collect errors and return them all at once Set names = new HashSet<>(); for (Field field : descriptor.getVisibleFields()) { - Optional fieldName = field.getName(); - if (fieldName.isEmpty()) { - throw semanticException(MISSING_COLUMN_NAME, node, "Column name not specified at position %s", descriptor.indexOf(field) + 1); - } - if (!names.add(fieldName.get())) { - throw semanticException(DUPLICATE_COLUMN_NAME, node, "Column name '%s' specified more than once", fieldName.get()); + String fieldName = field.getName() + .orElseThrow(() -> semanticException(MISSING_COLUMN_NAME, node, "Column name not specified at position %s", descriptor.indexOf(field) + 1)); + if (!names.add(fieldName)) { + throw semanticException(DUPLICATE_COLUMN_NAME, node, "Column name '%s' specified more than once", fieldName); } if (field.getType().equals(UNKNOWN)) { - throw semanticException(COLUMN_TYPE_UNKNOWN, node, "Column type is unknown: %s", fieldName.get()); + throw semanticException(COLUMN_TYPE_UNKNOWN, node, "Column type is unknown: %s", fieldName); } } } @@ -1794,18 +1784,13 @@ protected Scope visitTable(Table table, Optional scope) if (optionalMaterializedView.isPresent()) { if (metadata.getMaterializedViewFreshness(session, name).isMaterializedViewFresh()) { // If materialized view is current, answer the query using the storage table - Optional storageName = getMaterializedViewStorageTableName(optionalMaterializedView.get()); - if (storageName.isEmpty()) { - throw semanticException(INVALID_VIEW, table, "Materialized view '%s' is fresh but does not have storage table name", name); - } - QualifiedObjectName storageTableName = createQualifiedObjectName(session, table, storageName.get()); + QualifiedName storageName = getMaterializedViewStorageTableName(optionalMaterializedView.get()) + .orElseThrow(() -> semanticException(INVALID_VIEW, table, "Materialized view '%s' is fresh but does not have storage table name", name)); + QualifiedObjectName storageTableName = createQualifiedObjectName(session, table, storageName); checkStorageTableNotRedirected(storageTableName); - Optional tableHandle = metadata.getTableHandle(session, storageTableName); - if (tableHandle.isEmpty()) { - throw semanticException(INVALID_VIEW, table, "Storage table '%s' does not exist", storageTableName); - } - - return createScopeForMaterializedView(table, name, scope, optionalMaterializedView.get(), tableHandle); + TableHandle tableHandle = metadata.getTableHandle(session, storageTableName) + .orElseThrow(() -> semanticException(INVALID_VIEW, table, "Storage table '%s' does not exist", storageTableName)); + return createScopeForMaterializedView(table, name, scope, optionalMaterializedView.get(), Optional.of(tableHandle)); } else { // This is a stale materialized view and should be expanded like a logical view @@ -3069,35 +3054,30 @@ private Scope analyzeJoinUsing(Join node, List columns, Optional leftField = left.tryResolveField(column); - Optional rightField = right.tryResolveField(column); - - if (leftField.isEmpty()) { - throw semanticException(COLUMN_NOT_FOUND, column, "Column '%s' is missing from left side of join", column.getValue()); - } - if (rightField.isEmpty()) { - throw semanticException(COLUMN_NOT_FOUND, column, "Column '%s' is missing from right side of join", column.getValue()); - } + ResolvedField leftField = left.tryResolveField(column) + .orElseThrow(() -> semanticException(COLUMN_NOT_FOUND, column, "Column '%s' is missing from left side of join", column.getValue())); + ResolvedField rightField = right.tryResolveField(column) + .orElseThrow(() -> semanticException(COLUMN_NOT_FOUND, column, "Column '%s' is missing from right side of join", column.getValue())); // ensure a comparison operator exists for the given types (applying coercions if necessary) try { metadata.resolveOperator(session, OperatorType.EQUAL, ImmutableList.of( - leftField.get().getType(), rightField.get().getType())); + leftField.getType(), rightField.getType())); } catch (OperatorNotFoundException e) { throw semanticException(TYPE_MISMATCH, column, e, "%s", e.getMessage()); } - Optional type = typeCoercion.getCommonSuperType(leftField.get().getType(), rightField.get().getType()); + Optional type = typeCoercion.getCommonSuperType(leftField.getType(), rightField.getType()); analysis.addTypes(ImmutableMap.of(NodeRef.of(column), type.orElseThrow())); joinFields.add(Field.newUnqualified(column.getValue(), type.get())); - leftJoinFields.add(leftField.get().getRelationFieldIndex()); - rightJoinFields.add(rightField.get().getRelationFieldIndex()); + leftJoinFields.add(leftField.getRelationFieldIndex()); + rightJoinFields.add(rightField.getRelationFieldIndex()); - recordColumnAccess(leftField.get().getField()); - recordColumnAccess(rightField.get().getField()); + recordColumnAccess(leftField.getField()); + recordColumnAccess(rightField.getField()); } ImmutableList.Builder outputs = ImmutableList.builder(); @@ -3178,15 +3158,12 @@ protected Scope visitValues(Values node, Optional scope) } // determine common super type of the rows - Optional partialSuperType = typeCoercion.getCommonSuperType(rowType, commonSuperType); - if (partialSuperType.isEmpty()) { - throw semanticException(TYPE_MISMATCH, - node, - "Values rows have mismatched types: %s vs %s", - rowTypes.get(0), - rowType); - } - commonSuperType = partialSuperType.get(); + commonSuperType = typeCoercion.getCommonSuperType(rowType, commonSuperType) + .orElseThrow(() -> semanticException(TYPE_MISMATCH, + node, + "Values rows have mismatched types: %s vs %s", + rowTypes.get(0), + rowType)); } // add coercions @@ -3723,22 +3700,20 @@ private void analyzeSelectAllColumns( QualifiedName prefix = asQualifiedName(expression); if (prefix != null) { // analyze prefix as an 'asterisked identifier chain' - Optional identifierChainBasis = scope.resolveAsteriskedIdentifierChainBasis(prefix, allColumns); - if (identifierChainBasis.isEmpty()) { - throw semanticException(TABLE_NOT_FOUND, allColumns, "Unable to resolve reference %s", prefix); - } - if (identifierChainBasis.get().getBasisType() == TABLE) { - RelationType relationType = identifierChainBasis.get().getRelationType().orElseThrow(); + AsteriskedIdentifierChainBasis identifierChainBasis = scope.resolveAsteriskedIdentifierChainBasis(prefix, allColumns) + .orElseThrow(() -> semanticException(TABLE_NOT_FOUND, allColumns, "Unable to resolve reference %s", prefix)); + if (identifierChainBasis.getBasisType() == TABLE) { + RelationType relationType = identifierChainBasis.getRelationType().orElseThrow(); List fields = filterInaccessibleFields(relationType.resolveVisibleFieldsWithRelationPrefix(Optional.of(prefix))); if (fields.isEmpty()) { throw semanticException(COLUMN_NOT_FOUND, allColumns, "SELECT * not allowed from relation that has no columns"); } - boolean local = scope.isLocalScope(identifierChainBasis.get().getScope().orElseThrow()); + boolean local = scope.isLocalScope(identifierChainBasis.getScope().orElseThrow()); analyzeAllColumnsFromTable( fields, allColumns, node, - local ? scope : identifierChainBasis.get().getScope().get(), + local ? scope : identifierChainBasis.getScope().get(), outputExpressionBuilder, selectExpressionBuilder, relationType, diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ApplyTableScanRedirection.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ApplyTableScanRedirection.java index a11459c95883..38d7f6472bd5 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ApplyTableScanRedirection.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ApplyTableScanRedirection.java @@ -101,15 +101,13 @@ public Result apply(TableScanNode scanNode, Captures captures, Context context) return Result.empty(); } - Optional destinationTableHandle = plannerContext.getMetadata().getTableHandle( - context.getSession(), - convertFromSchemaTableName(destinationTable.getCatalogName()).apply(destinationTable.getSchemaTableName())); - if (destinationTableHandle.isEmpty()) { - throw new TrinoException(TABLE_NOT_FOUND, format("Destination table %s from table scan redirection not found", destinationTable)); - } + TableHandle destinationTableHandle = plannerContext.getMetadata().getTableHandle( + context.getSession(), + convertFromSchemaTableName(destinationTable.getCatalogName()).apply(destinationTable.getSchemaTableName())) + .orElseThrow(() -> new TrinoException(TABLE_NOT_FOUND, format("Destination table %s from table scan redirection not found", destinationTable))); Map columnMapping = tableScanRedirectApplicationResult.get().getDestinationColumns(); - Map destinationColumnHandles = plannerContext.getMetadata().getColumnHandles(context.getSession(), destinationTableHandle.get()); + Map destinationColumnHandles = plannerContext.getMetadata().getColumnHandles(context.getSession(), destinationTableHandle); ImmutableMap.Builder casts = ImmutableMap.builder(); ImmutableMap.Builder newAssignmentsBuilder = ImmutableMap.builder(); for (Map.Entry assignment : scanNode.getAssignments().entrySet()) { @@ -124,7 +122,7 @@ public Result apply(TableScanNode scanNode, Captures captures, Context context) // insert ts if redirected types don't match source types Type sourceType = context.getSymbolAllocator().getTypes().get(assignment.getKey()); - Type redirectedType = plannerContext.getMetadata().getColumnMetadata(context.getSession(), destinationTableHandle.get(), destinationColumnHandle).getType(); + Type redirectedType = plannerContext.getMetadata().getColumnMetadata(context.getSession(), destinationTableHandle, destinationColumnHandle).getType(); if (!sourceType.equals(redirectedType)) { Symbol redirectedSymbol = context.getSymbolAllocator().newSymbol(destinationColumn, redirectedType); Cast cast = getCast( @@ -153,7 +151,7 @@ public Result apply(TableScanNode scanNode, Captures captures, Context context) casts.buildOrThrow(), new TableScanNode( scanNode.getId(), - destinationTableHandle.get(), + destinationTableHandle, ImmutableList.copyOf(newAssignments.keySet()), newAssignments, TupleDomain.all(), @@ -185,7 +183,7 @@ public Result apply(TableScanNode scanNode, Captures captures, Context context) } // insert casts if redirected types don't match domain types - Type redirectedType = plannerContext.getMetadata().getColumnMetadata(context.getSession(), destinationTableHandle.get(), destinationColumnHandle).getType(); + Type redirectedType = plannerContext.getMetadata().getColumnMetadata(context.getSession(), destinationTableHandle, destinationColumnHandle).getType(); if (!domainType.equals(redirectedType)) { Symbol redirectedSymbol = context.getSymbolAllocator().newSymbol(destinationColumn, redirectedType); Cast cast = getCast( @@ -210,7 +208,7 @@ public Result apply(TableScanNode scanNode, Captures captures, Context context) Map newAssignments = newAssignmentsBuilder.buildOrThrow(); TableScanNode newScanNode = new TableScanNode( scanNode.getId(), - destinationTableHandle.get(), + destinationTableHandle, ImmutableList.copyOf(newAssignments.keySet()), newAssignments, TupleDomain.all(), diff --git a/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java b/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java index 92123f6349a0..bd9461f2b92f 100644 --- a/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java +++ b/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java @@ -306,8 +306,7 @@ protected Node visitShowGrants(ShowGrants showGrants, Void context) QualifiedObjectName qualifiedTableName = createQualifiedObjectName(session, showGrants, tableName.get()); if (!metadata.isView(session, qualifiedTableName)) { RedirectionAwareTableHandle redirection = metadata.getRedirectionAwareTableHandle(session, qualifiedTableName); - Optional tableHandle = redirection.getTableHandle(); - if (tableHandle.isEmpty()) { + if (redirection.getTableHandle().isEmpty()) { throw semanticException(TABLE_NOT_FOUND, showGrants, "Table '%s' does not exist", tableName); } if (redirection.getRedirectedTableName().isPresent()) { @@ -654,16 +653,14 @@ protected Node visitShowCreate(ShowCreate node, Void context) } RedirectionAwareTableHandle redirection = metadata.getRedirectionAwareTableHandle(session, objectName); - Optional tableHandle = redirection.getTableHandle(); - if (tableHandle.isEmpty()) { - throw semanticException(TABLE_NOT_FOUND, node, "Table '%s' does not exist", objectName); - } + TableHandle tableHandle = redirection.getTableHandle() + .orElseThrow(() -> semanticException(TABLE_NOT_FOUND, node, "Table '%s' does not exist", objectName)); QualifiedObjectName targetTableName = redirection.getRedirectedTableName().orElse(objectName); accessControl.checkCanShowCreateTable(session.toSecurityContext(), targetTableName); - ConnectorTableMetadata connectorTableMetadata = metadata.getTableMetadata(session, tableHandle.get()).getMetadata(); + ConnectorTableMetadata connectorTableMetadata = metadata.getTableMetadata(session, tableHandle).getMetadata(); - Collection> allColumnProperties = columnPropertyManager.getAllProperties(tableHandle.get().getCatalogHandle()); + Collection> allColumnProperties = columnPropertyManager.getAllProperties(tableHandle.getCatalogHandle()); List columns = connectorTableMetadata.getColumns().stream() .filter(column -> !column.isHidden()) @@ -679,7 +676,7 @@ protected Node visitShowCreate(ShowCreate node, Void context) .collect(toImmutableList()); Map properties = connectorTableMetadata.getProperties(); - Collection> allTableProperties = tablePropertyManager.getAllProperties(tableHandle.get().getCatalogHandle()); + Collection> allTableProperties = tablePropertyManager.getAllProperties(tableHandle.getCatalogHandle()); List propertyNodes = buildProperties(targetTableName, Optional.empty(), INVALID_TABLE_PROPERTY, properties, allTableProperties); CreateTable createTable = new CreateTable( diff --git a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloPageSink.java b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloPageSink.java index aacfde5a14f4..1f48e0fc745d 100644 --- a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloPageSink.java +++ b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloPageSink.java @@ -92,16 +92,11 @@ public AccumuloPageSink( this.columns = table.getColumns(); // Fetch the row ID ordinal, throwing an exception if not found for safety - Optional ordinal = columns.stream() + this.rowIdOrdinal = columns.stream() .filter(columnHandle -> columnHandle.getName().equals(table.getRowId())) .map(AccumuloColumnHandle::getOrdinal) - .findAny(); - - if (ordinal.isEmpty()) { - throw new TrinoException(FUNCTION_IMPLEMENTATION_ERROR, "Row ID ordinal not found"); - } - - this.rowIdOrdinal = ordinal.get(); + .findAny() + .orElseThrow(() -> new TrinoException(FUNCTION_IMPLEMENTATION_ERROR, "Row ID ordinal not found")); this.serializer = table.getSerializerInstance(); try { diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraMetadata.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraMetadata.java index 9bbdad28d956..18a6b652ca52 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraMetadata.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraMetadata.java @@ -417,11 +417,9 @@ public Optional applyDelete(ConnectorSession session, Conn public OptionalLong executeDelete(ConnectorSession session, ConnectorTableHandle deleteHandle) { CassandraTableHandle handle = (CassandraTableHandle) deleteHandle; - Optional> partitions = handle.getPartitions(); + List partitions = handle.getPartitions() + .orElseThrow(() -> new TrinoException(NOT_SUPPORTED, "Deleting without partition key is not supported")); if (partitions.isEmpty()) { - throw new TrinoException(NOT_SUPPORTED, "Deleting without partition key is not supported"); - } - if (partitions.get().isEmpty()) { // there are no records of a given partition key return OptionalLong.empty(); } diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaHiveTypeTranslator.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaHiveTypeTranslator.java index b35f6a986645..0c0fa73d7d81 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaHiveTypeTranslator.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaHiveTypeTranslator.java @@ -18,7 +18,6 @@ import io.trino.spi.TrinoException; import io.trino.spi.type.CharType; import io.trino.spi.type.DecimalType; -import io.trino.spi.type.NamedTypeSignature; import io.trino.spi.type.TimestampType; import io.trino.spi.type.TimestampWithTimeZoneType; import io.trino.spi.type.Type; @@ -149,11 +148,8 @@ public static TypeInfo translate(Type type) if (!parameter.isNamedTypeSignature()) { throw new IllegalArgumentException(format("Expected all parameters to be named type, but got %s", parameter)); } - NamedTypeSignature namedTypeSignature = parameter.getNamedTypeSignature(); - if (namedTypeSignature.getName().isEmpty()) { - throw new TrinoException(NOT_SUPPORTED, format("Anonymous row type is not supported in Hive. Please give each field a name: %s", type)); - } - fieldNames.add(namedTypeSignature.getName().get()); + fieldNames.add(parameter.getNamedTypeSignature().getName() + .orElseThrow(() -> new TrinoException(NOT_SUPPORTED, format("Anonymous row type is not supported in Hive. Please give each field a name: %s", type)))); } return getStructTypeInfo( fieldNames.build(), diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java index 2ae54cf6a571..6954fcbd1a32 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeMetadata.java @@ -668,15 +668,13 @@ public void createTable(ConnectorSession session, ConnectorTableMetadata tableMe boolean external = true; String location = getLocation(tableMetadata.getProperties()); if (location == null) { - Optional schemaLocation = getSchemaLocation(schema); - if (schemaLocation.isEmpty()) { - throw new TrinoException(NOT_SUPPORTED, "The 'location' property must be specified either for the table or the schema"); - } + String schemaLocation = getSchemaLocation(schema) + .orElseThrow(() -> new TrinoException(NOT_SUPPORTED, "The 'location' property must be specified either for the table or the schema")); String tableNameForLocation = tableName; if (useUniqueTableLocation) { tableNameForLocation += "-" + randomUUID().toString().replace("-", ""); } - location = new Path(schemaLocation.get(), tableNameForLocation).toString(); + location = new Path(schemaLocation, tableNameForLocation).toString(); checkPathContainsNoFiles(session, new Path(location)); external = false; } @@ -802,15 +800,13 @@ public DeltaLakeOutputTableHandle beginCreateTable(ConnectorSession session, Con boolean external = true; String location = getLocation(tableMetadata.getProperties()); if (location == null) { - Optional schemaLocation = getSchemaLocation(schema); - if (schemaLocation.isEmpty()) { - throw new TrinoException(NOT_SUPPORTED, "The 'location' property must be specified either for the table or the schema"); - } + String schemaLocation = getSchemaLocation(schema) + .orElseThrow(() -> new TrinoException(NOT_SUPPORTED, "The 'location' property must be specified either for the table or the schema")); String tableNameForLocation = tableName; if (useUniqueTableLocation) { tableNameForLocation += "-" + randomUUID().toString().replace("-", ""); } - location = new Path(schemaLocation.get(), tableNameForLocation).toString(); + location = new Path(schemaLocation, tableNameForLocation).toString(); external = false; } Path targetPath = new Path(location); @@ -1984,12 +1980,10 @@ public void dropTable(ConnectorSession session, ConnectorTableHandle tableHandle { DeltaLakeTableHandle handle = (DeltaLakeTableHandle) tableHandle; - Optional table = metastore.getTable(handle.getSchemaName(), handle.getTableName()); - if (table.isEmpty()) { - throw new TableNotFoundException(handle.getSchemaTableName()); - } + Table table = metastore.getTable(handle.getSchemaName(), handle.getTableName()) + .orElseThrow(() -> new TableNotFoundException(handle.getSchemaTableName())); - metastore.dropTable(session, handle.getSchemaName(), handle.getTableName(), table.get().getTableType().equals(EXTERNAL_TABLE.toString())); + metastore.dropTable(session, handle.getSchemaName(), handle.getTableName(), table.getTableType().equals(EXTERNAL_TABLE.toString())); } @Override diff --git a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsClient.java b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsClient.java index ab9014f314fc..d40c05ef6136 100644 --- a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsClient.java +++ b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsClient.java @@ -158,11 +158,9 @@ public Set getTableNames() public List> readAllValues(String tableName) { try { - Optional sheetExpression = tableSheetMappingCache.getUnchecked(tableName); - if (sheetExpression.isEmpty()) { - throw new TrinoException(SHEETS_UNKNOWN_TABLE_ERROR, "Sheet expression not found for table " + tableName); - } - return sheetDataCache.getUnchecked(sheetExpression.get()); + String sheetExpression = tableSheetMappingCache.getUnchecked(tableName) + .orElseThrow(() -> new TrinoException(SHEETS_UNKNOWN_TABLE_ERROR, "Sheet expression not found for table " + tableName)); + return sheetDataCache.getUnchecked(sheetExpression); } catch (UncheckedExecutionException e) { throwIfInstanceOf(e.getCause(), TrinoException.class); diff --git a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsMetadata.java b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsMetadata.java index e9e38d02cc0a..412e280dc7a8 100644 --- a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsMetadata.java +++ b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsMetadata.java @@ -80,25 +80,21 @@ public SheetsTableHandle getTableHandle(ConnectorSession session, SchemaTableNam @Override public ConnectorTableMetadata getTableMetadata(ConnectorSession session, ConnectorTableHandle table) { - Optional connectorTableMetadata = getTableMetadata(((SheetsTableHandle) table).toSchemaTableName()); - if (connectorTableMetadata.isEmpty()) { - throw new TrinoException(SHEETS_UNKNOWN_TABLE_ERROR, "Metadata not found for table " + ((SheetsTableHandle) table).getTableName()); - } - return connectorTableMetadata.get(); + SheetsTableHandle tableHandle = (SheetsTableHandle) table; + return getTableMetadata(tableHandle.toSchemaTableName()) + .orElseThrow(() -> new TrinoException(SHEETS_UNKNOWN_TABLE_ERROR, "Metadata not found for table " + tableHandle.getTableName())); } @Override public Map getColumnHandles(ConnectorSession session, ConnectorTableHandle tableHandle) { SheetsTableHandle sheetsTableHandle = (SheetsTableHandle) tableHandle; - Optional table = sheetsClient.getTable(sheetsTableHandle.getTableName()); - if (table.isEmpty()) { - throw new TableNotFoundException(sheetsTableHandle.toSchemaTableName()); - } + SheetsTable table = sheetsClient.getTable(sheetsTableHandle.getTableName()) + .orElseThrow(() -> new TableNotFoundException(sheetsTableHandle.toSchemaTableName())); ImmutableMap.Builder columnHandles = ImmutableMap.builder(); int index = 0; - for (ColumnMetadata column : table.get().getColumnsMetadata()) { + for (ColumnMetadata column : table.getColumnsMetadata()) { columnHandles.put(column.getName(), new SheetsColumnHandle(column.getName(), column.getType(), index)); index++; } diff --git a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java index 5f763aa16d9d..48d956ca4b32 100644 --- a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java +++ b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java @@ -29,7 +29,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Optional; import static java.util.Objects.requireNonNull; @@ -53,15 +52,12 @@ public ConnectorSplitSource getSplits( Constraint constraint) { SheetsTableHandle tableHandle = (SheetsTableHandle) connectorTableHandle; - Optional table = sheetsClient.getTable(tableHandle.getTableName()); - - // this can happen if table is removed during a query - if (table.isEmpty()) { - throw new TableNotFoundException(tableHandle.toSchemaTableName()); - } + SheetsTable table = sheetsClient.getTable(tableHandle.getTableName()) + // this can happen if table is removed during a query + .orElseThrow(() -> new TableNotFoundException(tableHandle.toSchemaTableName())); List splits = new ArrayList<>(); - splits.add(new SheetsSplit(tableHandle.getSchemaName(), tableHandle.getTableName(), table.get().getValues())); + splits.add(new SheetsSplit(tableHandle.getSchemaName(), tableHandle.getTableName(), table.getValues())); Collections.shuffle(splits); return new FixedSplitSource(splits); } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java index 011a8f00635e..ba0103f02655 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java @@ -2715,12 +2715,10 @@ public OptionalLong executeDelete(ConnectorSession session, ConnectorTableHandle { HiveTableHandle handle = (HiveTableHandle) deleteHandle; - Optional
table = metastore.getTable(handle.getSchemaName(), handle.getTableName()); - if (table.isEmpty()) { - throw new TableNotFoundException(handle.getSchemaTableName()); - } + Table table = metastore.getTable(handle.getSchemaName(), handle.getTableName()) + .orElseThrow(() -> new TableNotFoundException(handle.getSchemaTableName())); - if (table.get().getPartitionColumns().isEmpty()) { + if (table.getPartitionColumns().isEmpty()) { metastore.truncateUnpartitionedTable(session, handle.getSchemaName(), handle.getTableName()); } else { diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java index 42845cc78db1..1783838fcdbb 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java @@ -344,17 +344,15 @@ private Iterable getPartitionMetadata(ConnectorSession se TableToPartitionMapping tableToPartitionMapping = getTableToPartitionMapping(session, storageFormat, tableName, partName, tableColumns, partitionColumns); if (bucketProperty.isPresent()) { - Optional partitionBucketProperty = partition.getStorage().getBucketProperty(); - if (partitionBucketProperty.isEmpty()) { - throw new TrinoException(HIVE_PARTITION_SCHEMA_MISMATCH, format( - "Hive table (%s) is bucketed but partition (%s) is not bucketed", - hivePartition.getTableName(), - hivePartition.getPartitionId())); - } + HiveBucketProperty partitionBucketProperty = partition.getStorage().getBucketProperty() + .orElseThrow(() -> new TrinoException(HIVE_PARTITION_SCHEMA_MISMATCH, format( + "Hive table (%s) is bucketed but partition (%s) is not bucketed", + hivePartition.getTableName(), + hivePartition.getPartitionId()))); int tableBucketCount = bucketProperty.get().getBucketCount(); - int partitionBucketCount = partitionBucketProperty.get().getBucketCount(); + int partitionBucketCount = partitionBucketProperty.getBucketCount(); List tableBucketColumns = bucketProperty.get().getBucketedBy(); - List partitionBucketColumns = partitionBucketProperty.get().getBucketedBy(); + List partitionBucketColumns = partitionBucketProperty.getBucketedBy(); if (!tableBucketColumns.equals(partitionBucketColumns) || !isBucketCountCompatible(tableBucketCount, partitionBucketCount)) { throw new TrinoException(HIVE_PARTITION_SCHEMA_MISMATCH, format( "Hive table (%s) bucketing (columns=%s, buckets=%s) is not compatible with partition (%s) bucketing (columns=%s, buckets=%s)", @@ -367,7 +365,7 @@ private Iterable getPartitionMetadata(ConnectorSession se } if (isPropagateTableScanSortingProperties(session)) { List tableSortedColumns = bucketProperty.get().getSortedBy(); - List partitionSortedColumns = partitionBucketProperty.get().getSortedBy(); + List partitionSortedColumns = partitionBucketProperty.getSortedBy(); if (!isSortingCompatible(tableSortedColumns, partitionSortedColumns)) { throw new TrinoException(HIVE_PARTITION_SCHEMA_MISMATCH, format( "Hive table (%s) sorting by %s is not compatible with partition (%s) sorting by %s. This restriction can be avoided by disabling propagate_table_scan_sorting_properties.", diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveWriterFactory.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveWriterFactory.java index e1db0a850f95..e41ca8276a23 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveWriterFactory.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveWriterFactory.java @@ -262,11 +262,8 @@ public HiveWriterFactory( writePath = writeInfo.getWritePath(); } else { - Optional
table = pageSinkMetadataProvider.getTable(); - if (table.isEmpty()) { - throw new TrinoException(HIVE_INVALID_METADATA, format("Table '%s.%s' was dropped during insert", schemaName, tableName)); - } - this.table = table.get(); + this.table = pageSinkMetadataProvider.getTable() + .orElseThrow(() -> new TrinoException(HIVE_INVALID_METADATA, format("Table '%s.%s' was dropped during insert", schemaName, tableName))); writePath = locationService.getQueryWriteInfo(locationHandle).getWritePath(); } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/aws/athena/projection/InjectedProjection.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/aws/athena/projection/InjectedProjection.java index 1f8791a7f7c2..3c0d3c9ae423 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/aws/athena/projection/InjectedProjection.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/aws/athena/projection/InjectedProjection.java @@ -34,10 +34,8 @@ public InjectedProjection(String columnName) @Override public List getProjectedValues(Optional partitionValueFilter) { - if (partitionValueFilter.isEmpty()) { - throw invalidProjectionException(getColumnName(), "Injected projection requires single predicate for it's column in where clause"); - } - Domain domain = partitionValueFilter.get(); + Domain domain = partitionValueFilter + .orElseThrow(() -> invalidProjectionException(getColumnName(), "Injected projection requires single predicate for it's column in where clause")); Type type = domain.getType(); if (!domain.isNullableSingleValue() || !canConvertSqlTypeToStringForParts(type, true)) { throw invalidProjectionException(getColumnName(), "Injected projection requires single predicate for it's column in where clause. Currently provided can't be converted to single partition."); diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/SemiTransactionalHiveMetastore.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/SemiTransactionalHiveMetastore.java index 63c7bf450d0f..a27fce3af945 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/SemiTransactionalHiveMetastore.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/SemiTransactionalHiveMetastore.java @@ -702,19 +702,17 @@ private boolean isAcidTransactionRunning() public synchronized void truncateUnpartitionedTable(ConnectorSession session, String databaseName, String tableName) { checkReadable(); - Optional
table = getTable(databaseName, tableName); SchemaTableName schemaTableName = new SchemaTableName(databaseName, tableName); - if (table.isEmpty()) { - throw new TableNotFoundException(schemaTableName); - } - if (!table.get().getTableType().equals(MANAGED_TABLE.toString())) { + Table table = getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(schemaTableName)); + if (!table.getTableType().equals(MANAGED_TABLE.toString())) { throw new TrinoException(NOT_SUPPORTED, "Cannot delete from non-managed Hive table"); } - if (!table.get().getPartitionColumns().isEmpty()) { + if (!table.getPartitionColumns().isEmpty()) { throw new IllegalArgumentException("Table is partitioned"); } - Path path = new Path(table.get().getStorage().getLocation()); + Path path = new Path(table.getStorage().getLocation()); HdfsContext context = new HdfsContext(session); setExclusive((delegate, hdfsEnvironment) -> { RecursiveDeleteResult recursiveDeleteResult = recursiveDeleteFiles(hdfsEnvironment, context, path, ImmutableSet.of(""), false); @@ -926,11 +924,8 @@ private Optional> doGetPartitionNames( partitionNames = ImmutableList.of(); break; case PRE_EXISTING_TABLE: - Optional> partitionNameResult = delegate.getPartitionNamesByFilter(databaseName, tableName, columnNames, partitionKeysFilter); - if (partitionNameResult.isEmpty()) { - throw new TrinoException(TRANSACTION_CONFLICT, format("Table '%s.%s' was dropped by another transaction", databaseName, tableName)); - } - partitionNames = partitionNameResult.get(); + partitionNames = delegate.getPartitionNamesByFilter(databaseName, tableName, columnNames, partitionKeysFilter) + .orElseThrow(() -> new TrinoException(TRANSACTION_CONFLICT, format("Table '%s.%s' was dropped by another transaction", databaseName, tableName))); break; default: throw new UnsupportedOperationException("Unknown table source"); @@ -2025,15 +2020,13 @@ private void prepareAlterPartition(HdfsContext hdfsContext, String queryId, Part Partition partition = partitionAndMore.getPartition(); partitionsToInvalidate.add(partition); String targetLocation = partition.getStorage().getLocation(); - Optional oldPartition = delegate.getPartition(partition.getDatabaseName(), partition.getTableName(), partition.getValues()); - if (oldPartition.isEmpty()) { - throw new TrinoException( - TRANSACTION_CONFLICT, - format("The partition that this transaction modified was deleted in another transaction. %s %s", partition.getTableName(), partition.getValues())); - } + Partition oldPartition = delegate.getPartition(partition.getDatabaseName(), partition.getTableName(), partition.getValues()) + .orElseThrow(() -> new TrinoException( + TRANSACTION_CONFLICT, + format("The partition that this transaction modified was deleted in another transaction. %s %s", partition.getTableName(), partition.getValues()))); String partitionName = getPartitionName(partition.getDatabaseName(), partition.getTableName(), partition.getValues()); PartitionStatistics oldPartitionStatistics = getExistingPartitionStatistics(partition, partitionName); - String oldPartitionLocation = oldPartition.get().getStorage().getLocation(); + String oldPartitionLocation = oldPartition.getStorage().getLocation(); Path oldPartitionPath = new Path(oldPartitionLocation); cleanExtraOutputFiles(hdfsContext, queryId, partitionAndMore); @@ -2077,7 +2070,7 @@ private void prepareAlterPartition(HdfsContext hdfsContext, String queryId, Part // because metadata might change: e.g. storage format, column types, etc alterPartitionOperations.add(new AlterPartitionOperation( new PartitionWithStatistics(partition, partitionName, partitionAndMore.getStatisticsUpdate()), - new PartitionWithStatistics(oldPartition.get(), partitionName, oldPartitionStatistics))); + new PartitionWithStatistics(oldPartition, partitionName, oldPartitionStatistics))); } private void cleanExtraOutputFiles(HdfsContext hdfsContext, String queryId, PartitionAndMore partitionAndMore) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/BridgingHiveMetastore.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/BridgingHiveMetastore.java index 59167216f737..b3f1705319b8 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/BridgingHiveMetastore.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/BridgingHiveMetastore.java @@ -216,11 +216,8 @@ public void replaceTable(String databaseName, String tableName, Table newTable, @Override public void renameTable(String databaseName, String tableName, String newDatabaseName, String newTableName) { - Optional source = delegate.getTable(databaseName, tableName); - if (source.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } - org.apache.hadoop.hive.metastore.api.Table table = source.get(); + org.apache.hadoop.hive.metastore.api.Table table = delegate.getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); table.setDbName(newDatabaseName); table.setTableName(newTableName); alterTable(databaseName, tableName, table); @@ -229,11 +226,8 @@ public void renameTable(String databaseName, String tableName, String newDatabas @Override public void commentTable(String databaseName, String tableName, Optional comment) { - Optional source = delegate.getTable(databaseName, tableName); - if (source.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } - org.apache.hadoop.hive.metastore.api.Table table = source.get(); + org.apache.hadoop.hive.metastore.api.Table table = delegate.getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); Map parameters = table.getParameters().entrySet().stream() .filter(entry -> !entry.getKey().equals(TABLE_COMMENT)) @@ -265,11 +259,8 @@ public void setTableOwner(String databaseName, String tableName, HivePrincipal p @Override public void commentColumn(String databaseName, String tableName, String columnName, Optional comment) { - Optional source = delegate.getTable(databaseName, tableName); - if (source.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } - org.apache.hadoop.hive.metastore.api.Table table = source.get(); + org.apache.hadoop.hive.metastore.api.Table table = delegate.getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); for (FieldSchema fieldSchema : table.getSd().getCols()) { if (fieldSchema.getName().equals(columnName)) { @@ -288,11 +279,8 @@ public void commentColumn(String databaseName, String tableName, String columnNa @Override public void addColumn(String databaseName, String tableName, String columnName, HiveType columnType, String columnComment) { - Optional source = delegate.getTable(databaseName, tableName); - if (source.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } - org.apache.hadoop.hive.metastore.api.Table table = source.get(); + org.apache.hadoop.hive.metastore.api.Table table = delegate.getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); table.getSd().getCols().add( new FieldSchema(columnName, columnType.getHiveTypeName().toString(), columnComment)); alterTable(databaseName, tableName, table); @@ -301,11 +289,8 @@ public void addColumn(String databaseName, String tableName, String columnName, @Override public void renameColumn(String databaseName, String tableName, String oldColumnName, String newColumnName) { - Optional source = delegate.getTable(databaseName, tableName); - if (source.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } - org.apache.hadoop.hive.metastore.api.Table table = source.get(); + org.apache.hadoop.hive.metastore.api.Table table = delegate.getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); for (FieldSchema fieldSchema : table.getPartitionKeys()) { if (fieldSchema.getName().equals(oldColumnName)) { throw new TrinoException(NOT_SUPPORTED, "Renaming partition columns is not supported"); diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastore.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastore.java index 0698fb3fe78f..414d1a68ffa7 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastore.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastore.java @@ -120,16 +120,14 @@ public interface ThriftMetastore default Optional> getFields(String databaseName, String tableName) { - Optional
table = getTable(databaseName, tableName); - if (table.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } + Table table = getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); - if (table.get().getSd() == null) { + if (table.getSd() == null) { throw new TrinoException(HIVE_INVALID_METADATA, "Table is missing storage descriptor"); } - return Optional.of(table.get().getSd().getCols()); + return Optional.of(table.getSd().getCols()); } default long openTransaction(AcidTransactionOwner transactionOwner) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveTypeTranslator.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveTypeTranslator.java index 39168b5a2675..22d1e5f4ce2d 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveTypeTranslator.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveTypeTranslator.java @@ -20,7 +20,6 @@ import io.trino.spi.TrinoException; import io.trino.spi.type.CharType; import io.trino.spi.type.DecimalType; -import io.trino.spi.type.NamedTypeSignature; import io.trino.spi.type.TimestampType; import io.trino.spi.type.Type; import io.trino.spi.type.TypeSignature; @@ -163,11 +162,8 @@ public static TypeInfo toTypeInfo(Type type) if (!parameter.isNamedTypeSignature()) { throw new IllegalArgumentException(format("Expected all parameters to be named type, but got %s", parameter)); } - NamedTypeSignature namedTypeSignature = parameter.getNamedTypeSignature(); - if (namedTypeSignature.getName().isEmpty()) { - throw new TrinoException(NOT_SUPPORTED, format("Anonymous row type is not supported in Hive. Please give each field a name: %s", type)); - } - fieldNames.add(namedTypeSignature.getName().get()); + fieldNames.add(parameter.getNamedTypeSignature().getName() + .orElseThrow(() -> new TrinoException(NOT_SUPPORTED, format("Anonymous row type is not supported in Hive. Please give each field a name: %s", type)))); } return getStructTypeInfo( fieldNames.build(), diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveWriteUtils.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveWriteUtils.java index cd58aee6e5fa..c8e4019669db 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveWriteUtils.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveWriteUtils.java @@ -448,12 +448,10 @@ public static Path getTableDefaultLocation(HdfsContext context, SemiTransactiona public static Path getTableDefaultLocation(Database database, HdfsContext context, HdfsEnvironment hdfsEnvironment, String schemaName, String tableName) { - Optional location = database.getLocation(); - if (location.isEmpty()) { - throw new TrinoException(HIVE_DATABASE_LOCATION_ERROR, format("Database '%s' location is not set", schemaName)); - } + String location = database.getLocation() + .orElseThrow(() -> new TrinoException(HIVE_DATABASE_LOCATION_ERROR, format("Database '%s' location is not set", schemaName))); - Path databasePath = new Path(location.get()); + Path databasePath = new Path(location); if (!isS3FileSystem(context, hdfsEnvironment, databasePath)) { if (!pathExists(context, hdfsEnvironment, databasePath)) { throw new TrinoException(HIVE_DATABASE_LOCATION_ERROR, format("Database '%s' location does not exist: %s", schemaName, databasePath)); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java index 4102f112ffe2..8d96c0ccebbe 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java @@ -611,15 +611,13 @@ public void createTable(Table table, PrincipalPrivileges privileges) public void dropTable(String databaseName, String tableName, boolean deleteData) { try { - Optional
table = getTable(databaseName, tableName); - if (table.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } + Table table = getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); // hack to work around the metastore not being configured for S3 or other FS List locations = listAllDataPaths(databaseName, tableName); - Table.Builder tableBuilder = Table.builder(table.get()); + Table.Builder tableBuilder = Table.builder(table); tableBuilder.getStorageBuilder().setLocation("/"); // drop table @@ -641,12 +639,9 @@ public void dropTable(String databaseName, String tableName, boolean deleteData) public void updateTableLocation(String databaseName, String tableName, String location) { - Optional
table = getTable(databaseName, tableName); - if (table.isEmpty()) { - throw new TableNotFoundException(new SchemaTableName(databaseName, tableName)); - } - - Table.Builder tableBuilder = Table.builder(table.get()); + Table table = getTable(databaseName, tableName) + .orElseThrow(() -> new TableNotFoundException(new SchemaTableName(databaseName, tableName))); + Table.Builder tableBuilder = Table.builder(table); tableBuilder.getStorageBuilder().setLocation(location); // NOTE: this clears the permissions diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/glue/TrinoGlueCatalog.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/glue/TrinoGlueCatalog.java index 986613042d6c..e83d011b6127 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/glue/TrinoGlueCatalog.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/glue/TrinoGlueCatalog.java @@ -338,11 +338,9 @@ public void renameTable(ConnectorSession session, SchemaTableName from, SchemaTa { boolean newTableCreated = false; try { - Optional table = getTable(from); - if (table.isEmpty()) { - throw new TableNotFoundException(from); - } - TableInput tableInput = getTableInput(to.getTableName(), Optional.ofNullable(table.get().getOwner()), table.get().getParameters()); + com.amazonaws.services.glue.model.Table table = getTable(from) + .orElseThrow(() -> new TableNotFoundException(from)); + TableInput tableInput = getTableInput(to.getTableName(), Optional.ofNullable(table.getOwner()), table.getParameters()); CreateTableRequest createTableRequest = new CreateTableRequest() .withDatabaseName(to.getSchemaName()) .withTableInput(tableInput); @@ -478,15 +476,13 @@ public void renameView(ConnectorSession session, SchemaTableName source, SchemaT { boolean newTableCreated = false; try { - Optional existingView = getTable(source); - if (existingView.isEmpty()) { - throw new TableNotFoundException(source); - } + com.amazonaws.services.glue.model.Table existingView = getTable(source) + .orElseThrow(() -> new TableNotFoundException(source)); TableInput viewTableInput = getViewTableInput( target.getTableName(), - existingView.get().getViewOriginalText(), - existingView.get().getOwner(), + existingView.getViewOriginalText(), + existingView.getOwner(), createViewProperties(session)); CreateTableRequest createTableRequest = new CreateTableRequest() .withDatabaseName(target.getSchemaName()) @@ -770,11 +766,8 @@ public void renameMaterializedView(ConnectorSession session, SchemaTableName sou { boolean newTableCreated = false; try { - Optional table = getTable(source); - if (table.isEmpty()) { - throw new TableNotFoundException(source); - } - com.amazonaws.services.glue.model.Table glueTable = table.get(); + com.amazonaws.services.glue.model.Table glueTable = getTable(source) + .orElseThrow(() -> new TableNotFoundException(source)); if (!isTrinoMaterializedView(glueTable.getTableType(), glueTable.getParameters())) { throw new TrinoException(UNSUPPORTED_TABLE_TYPE, "Not a Materialized View: " + source); } diff --git a/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/AbstractResourceConfigurationManager.java b/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/AbstractResourceConfigurationManager.java index 867c3f3727bf..2f363a3d0641 100644 --- a/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/AbstractResourceConfigurationManager.java +++ b/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/AbstractResourceConfigurationManager.java @@ -112,15 +112,13 @@ private void validateSelectors(List groups, SelectorSpec spec StringBuilder fullyQualifiedGroupName = new StringBuilder(); for (ResourceGroupNameTemplate groupName : spec.getGroup().getSegments()) { fullyQualifiedGroupName.append(groupName); - Optional match = groups + ResourceGroupSpec match = groups .stream() .filter(groupSpec -> groupSpec.getName().equals(groupName)) - .findFirst(); - if (match.isEmpty()) { - throw new IllegalArgumentException(format("Selector refers to nonexistent group: %s", fullyQualifiedGroupName)); - } + .findFirst() + .orElseThrow(() -> new IllegalArgumentException(format("Selector refers to nonexistent group: %s", fullyQualifiedGroupName))); fullyQualifiedGroupName.append("."); - groups = match.get().getSubGroups(); + groups = match.getSubGroups(); } } diff --git a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java index 78b3bd35346a..abf7f9da1f87 100644 --- a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java +++ b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java @@ -219,13 +219,8 @@ public Optional> applyProjecti private ThriftTableMetadata getRequiredTableMetadata(SchemaTableName schemaTableName) { - Optional table = tableCache.getUnchecked(schemaTableName); - if (table.isEmpty()) { - throw new TableNotFoundException(schemaTableName); - } - else { - return table.get(); - } + return tableCache.getUnchecked(schemaTableName) + .orElseThrow(() -> new TableNotFoundException(schemaTableName)); } // this method makes actual thrift request and should be called only by cache load method From 604c4e37954d2628958bfb9300d611c78d5f4d16 Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Mon, 5 Sep 2022 12:09:10 +0200 Subject: [PATCH 2/2] Remove redundant else --- .../main/java/io/trino/cli/OutputHandler.java | 2 +- .../CostCalculatorWithEstimatedExchanges.java | 10 +- .../io/trino/cost/ScalarStatsCalculator.java | 22 ++-- .../io/trino/execution/SplitAssignment.java | 6 +- .../execution/buffer/PagesSerdeUtil.java | 4 +- .../resourcegroups/InternalResourceGroup.java | 10 +- .../StochasticPriorityQueue.java | 4 +- .../FixedSourcePartitionedScheduler.java | 6 +- .../io/trino/json/PathEvaluationVisitor.java | 70 +++++----- .../io/trino/metadata/LiteralFunction.java | 4 +- .../trino/metadata/QualifiedTablePrefix.java | 6 +- .../io/trino/metadata/SignatureBinder.java | 6 +- .../java/io/trino/operator/DriverContext.java | 16 +-- .../operator/GroupedTopNRankAccumulator.java | 8 +- .../GroupedTopNRowNumberAccumulator.java | 6 +- .../operator/HashAggregationOperator.java | 6 +- .../operator/RowReferencePageManager.java | 10 +- .../ScanFilterAndProjectOperator.java | 18 +-- .../TableScanWorkProcessorOperator.java | 4 +- .../trino/operator/TopNRankingOperator.java | 32 ++--- .../operator/aggregation/Aggregator.java | 4 +- .../DistinctAccumulatorFactory.java | 4 +- .../aggregation/GroupedAggregator.java | 4 +- .../ParametricAggregationImplementation.java | 14 +- .../ReduceAggregationFunction.java | 14 +- .../trino/operator/aggregation/TypedSet.java | 4 +- .../InMemoryHashAggregationBuilder.java | 20 ++- .../SpillableHashAggregationBuilder.java | 10 +- .../histogram/GroupedTypedHistogram.java | 18 +-- .../aggregation/histogram/ValueStore.java | 10 +- .../operator/join/DefaultPageJoiner.java | 4 +- .../operator/join/NestedLoopJoinOperator.java | 8 +- .../operator/join/PartitionedConsumption.java | 4 +- .../join/PartitionedLookupSource.java | 18 ++- .../operator/join/SortedPositionLinks.java | 16 +-- .../unspilled/PartitionedLookupSource.java | 18 ++- .../DictionaryAwarePageProjection.java | 10 +- .../io/trino/operator/scalar/ArrayJoin.java | 36 +++--- .../operator/scalar/BitwiseFunctions.java | 16 +-- .../operator/scalar/CharacterStringCasts.java | 8 +- .../operator/scalar/ConcatWsFunction.java | 6 +- .../operator/scalar/JoniRegexpFunctions.java | 10 +- .../trino/operator/scalar/MapToMapCast.java | 12 +- .../io/trino/server/ServerInfoResource.java | 4 +- .../server/security/oauth2/OidcDiscovery.java | 4 +- .../sql/analyzer/CanonicalizationAware.java | 2 +- .../sql/analyzer/ExpressionAnalyzer.java | 24 ++-- .../io/trino/sql/analyzer/RelationId.java | 10 +- .../java/io/trino/sql/analyzer/Scope.java | 20 ++- .../trino/sql/analyzer/StatementAnalyzer.java | 56 ++++---- .../io/trino/sql/planner/DomainCoercer.java | 4 +- .../planner/GroupingOperationRewriter.java | 36 +++--- .../sql/planner/LocalExecutionPlanner.java | 98 +++++++------- .../io/trino/sql/planner/Partitioning.java | 30 ++--- .../java/io/trino/sql/planner/ScopeAware.java | 8 +- .../iterative/rule/GatherAndMergeWindows.java | 12 +- .../iterative/rule/MergeLimitWithTopN.java | 4 +- .../rule/PruneDistinctAggregation.java | 4 +- .../rule/PushdownFilterIntoRowNumber.java | 4 +- .../rule/ReplaceRedundantJoinWithProject.java | 2 +- .../TransformCorrelatedInPredicateToJoin.java | 4 +- .../rule/UnwrapCastInComparison.java | 18 +-- .../optimizations/ActualProperties.java | 8 +- .../planner/optimizations/AddExchanges.java | 28 ++-- .../optimizations/MetadataQueryOptimizer.java | 4 +- .../optimizations/PlanNodeSearcher.java | 12 +- .../optimizations/PredicatePushDown.java | 34 +++-- .../optimizations/PropertyDerivations.java | 2 +- .../optimizations/QueryCardinalityUtil.java | 8 +- .../StreamPreferredProperties.java | 4 +- .../planprinter/CounterBasedAnonymizer.java | 12 +- .../rowpattern/IrRowPatternFlattener.java | 8 +- .../optimizer/ExpressionOptimizer.java | 4 +- .../trino/sql/rewrite/ShowQueriesRewrite.java | 12 +- .../InMemoryTransactionManager.java | 4 +- .../java/io/trino/type/LikeFunctions.java | 4 +- .../main/java/io/trino/type/TypeUtils.java | 4 +- .../java/io/trino/util/DateTimeZoneIndex.java | 4 +- .../main/java/io/trino/util/DisjointSet.java | 8 +- .../java/io/trino/util/FastutilSetHelper.java | 6 +- .../src/main/java/io/trino/util/JsonUtil.java | 4 +- .../src/main/java/io/trino/util/MoreMath.java | 16 +-- .../main/java/io/trino/util/Optionals.java | 6 +- .../io/trino/block/AbstractTestBlock.java | 4 +- .../trino/metadata/TestSignatureBinder.java | 4 +- ...BenchmarkScanFilterAndProjectOperator.java | 4 +- .../trino/operator/TestExchangeOperator.java | 4 +- .../TestingExchangeHttpClientHandler.java | 10 +- .../AbstractTestApproximateCountDistinct.java | 8 +- .../AbstractTestApproximateSetGeneric.java | 4 +- .../groupby/GroupByAggregationTestUtils.java | 18 ++- .../scalar/BenchmarkJsonToArrayCast.java | 8 +- .../scalar/BenchmarkJsonToMapCast.java | 8 +- .../operator/scalar/FunctionAssertions.java | 16 +-- .../io/trino/spiller/TestAesSpillCipher.java | 8 +- .../sql/gen/BenchmarkPageProcessor2.java | 4 +- .../TestTableScanRedirectionWithPushdown.java | 2 +- .../assertions/CorrelationMatcher.java | 6 +- .../planner/assertions/ExpressionMatcher.java | 6 +- .../sql/planner/assertions/MatchResult.java | 4 +- .../planner/assertions/PlanMatchPattern.java | 16 +-- .../rule/TestApplyTableScanRedirection.java | 2 +- .../java/io/trino/sql/parser/AstBuilder.java | 16 +-- .../java/io/trino/sql/parser/SqlParser.java | 4 +- .../main/java/io/trino/spi/HostAddress.java | 4 +- .../spi/block/AbstractSingleMapBlock.java | 60 +++------ .../spi/block/ByteArrayBlockEncoding.java | 2 +- .../spi/block/Int128ArrayBlockEncoding.java | 2 +- .../spi/block/Int96ArrayBlockEncoding.java | 4 +- .../spi/block/IntArrayBlockEncoding.java | 2 +- .../spi/block/LongArrayBlockEncoding.java | 2 +- .../spi/block/ShortArrayBlockEncoding.java | 2 +- .../trino/spi/block/SingleRowBlockWriter.java | 4 +- .../java/io/trino/spi/predicate/Domain.java | 8 +- .../spi/predicate/EquatableValueSet.java | 24 ++-- .../java/io/trino/spi/type/ArrayType.java | 6 +- .../main/java/io/trino/spi/type/Chars.java | 4 +- .../java/io/trino/spi/type/DecimalType.java | 4 +- .../main/java/io/trino/spi/type/Int128.java | 18 ++- .../java/io/trino/spi/type/SqlVarbinary.java | 2 +- .../main/java/io/trino/matching/Captures.java | 10 +- .../main/java/io/trino/matching/Pattern.java | 4 +- .../io/trino/orc/checkpoint/Checkpoints.java | 2 +- .../orc/checkpoint/InputStreamCheckpoint.java | 8 +- .../statistics/StringStatisticsBuilder.java | 4 +- .../trino/orc/stream/DecimalOutputStream.java | 6 +- .../java/io/trino/orc/stream/LongDecode.java | 46 +++---- .../trino/orc/stream/LongOutputStreamV2.java | 82 ++++++------ .../io/trino/orc/stream/ValueStreams.java | 6 +- .../trino/orc/writer/DictionaryBuilder.java | 4 +- .../TestDictionaryCompressionOptimizer.java | 4 +- .../trino/orc/stream/TestDecimalStream.java | 6 +- .../io/trino/orc/stream/TestLongDecode.java | 6 +- .../reader/DecimalColumnReaderFactory.java | 4 +- .../io/trino/parquet/reader/PageReader.java | 38 +++--- .../parquet/reader/ParquetColumnChunk.java | 4 +- .../writer/ParquetSchemaConverter.java | 8 +- .../parquet/writer/ParquetTypeVisitor.java | 122 +++++++++--------- .../io/trino/rcfile/RcFileDecoderUtils.java | 10 +- .../java/io/trino/rcfile/TimestampHolder.java | 10 +- .../trino/decoder/avro/AvroColumnDecoder.java | 2 +- .../decoder/avro/AvroRowDecoderFactory.java | 8 +- .../trino/decoder/csv/CsvColumnDecoder.java | 82 ++++++------ .../trino/plugin/accumulo/AccumuloClient.java | 26 ++-- .../plugin/accumulo/index/IndexLookup.java | 14 +- .../plugin/accumulo/io/AccumuloRecordSet.java | 8 +- .../serializers/AccumuloRowSerializer.java | 14 +- .../serializers/LexicoderRowSerializer.java | 14 +- .../plugin/jdbc/BaseJdbcConnectorTest.java | 4 +- .../plugin/bigquery/ReadSessionCreator.java | 8 +- .../plugin/blackhole/BlackHolePageSource.java | 6 +- .../plugin/cassandra/CassandraSession.java | 20 ++- .../plugin/cassandra/CassandraSplit.java | 14 +- .../Murmur3PartitionerTokenRing.java | 4 +- .../cassandra/RandomPartitionerTokenRing.java | 4 +- .../DeltaLakeParquetStatisticsUtils.java | 12 +- .../transactionlog/TransactionLogAccess.java | 2 +- .../checkpoint/TransactionLogTail.java | 10 +- .../ElasticsearchQueryBuilder.java | 3 +- .../ElasticsearchSplitManager.java | 10 +- .../filesystem/FileSystemExchangeFutures.java | 4 +- .../FileSystemExchangeSinkHandle.java | 4 +- .../FileSystemExchangeSourceHandle.java | 4 +- .../local/LocalFileSystemExchangeStorage.java | 4 +- .../plugin/hive/HiveApplyProjectionUtil.java | 2 +- .../plugin/hive/HiveLocationService.java | 20 +-- .../io/trino/plugin/hive/HiveSplitSource.java | 4 +- .../plugin/hive/HiveUpdatablePageSource.java | 4 +- .../hive/coercions/DecimalCoercers.java | 30 ++--- .../hive/fs/CachingDirectoryLister.java | 4 +- ...ransactionScopeCachingDirectoryLister.java | 4 +- .../HivePageSinkMetadataProvider.java | 4 +- .../plugin/hive/metastore/MetastoreUtil.java | 22 ++-- .../hive/metastore/alluxio/ProtoUtils.java | 4 +- .../DefaultGlueColumnStatisticsProvider.java | 6 +- .../glue/converter/GlueToTrinoConverter.java | 4 +- .../metastore/thrift/ThriftMetastoreUtil.java | 4 +- .../S3SelectRecordCursorProvider.java | 6 +- .../io/trino/plugin/hive/util/HiveUtil.java | 42 +++--- .../io/trino/plugin/hive/util/SerDeUtils.java | 14 +- .../hive/AbstractTestHiveFileFormats.java | 4 +- .../hive/TestReaderProjectionsAdapter.java | 6 +- .../BenchmarkProjectionPushdownHive.java | 4 +- .../recording/TestRecordingHiveMetastore.java | 2 +- .../write/MapKeyValuesSchemaConverter.java | 64 +++++---- .../SingleLevelArraySchemaConverter.java | 54 ++++---- .../java/io/trino/plugin/jmx/JmxMetadata.java | 2 +- .../plugin/kafka/KafkaFilterManager.java | 36 +++--- .../schema/confluent/AvroSchemaConverter.java | 10 +- .../plugin/kinesis/KinesisRecordSet.java | 16 +-- .../kinesis/util/MockKinesisClient.java | 12 +- .../kudu/properties/KuduTableProperties.java | 56 ++++---- .../RangeBoundValueDeserializer.java | 36 +++--- .../properties/RangeBoundValueSerializer.java | 2 +- .../plugin/kudu/schema/NoSchemaEmulation.java | 12 +- .../SchemaEmulationByTableNameConvention.java | 58 ++++----- .../localfile/LocalFileRecordCursor.java | 6 +- .../trino/plugin/mongodb/MongoPageSource.java | 6 +- .../io/trino/plugin/mongodb/MongoSession.java | 16 +-- .../plugin/pinot/PinotSegmentPageSource.java | 8 +- .../trino/plugin/pinot/PinotSplitManager.java | 4 +- .../plugin/pinot/client/PinotClient.java | 14 +- .../plugin/pinot/decoders/DecoderFactory.java | 22 ++-- .../pinot/query/DynamicTableBuilder.java | 16 +-- .../pinot/query/DynamicTablePqlExtractor.java | 8 +- .../plugin/pinot/query/PinotPatterns.java | 2 +- .../plugin/pinot/query/PinotQueryBuilder.java | 8 +- .../plugin/pinot/TestingPinotCluster.java | 4 +- .../io/trino/plugin/postgresql/TypeUtils.java | 12 +- .../postgresql/TestPostgreSqlTypeMapping.java | 8 +- .../prometheus/PrometheusRecordCursor.java | 18 +-- .../plugin/raptor/legacy/storage/Row.java | 16 +-- .../trino/plugin/redis/RedisRecordCursor.java | 24 ++-- .../resourcegroups/db/FlywayMigration.java | 4 +- .../plugin/thrift/api/TrinoThriftBlock.java | 4 +- .../api/valuesets/TrinoThriftValueSet.java | 8 +- .../thrift/server/ThriftTpchService.java | 6 +- .../plugin/thrift/ThriftIndexPageSource.java | 12 +- .../trino/plugin/thrift/ThriftMetadata.java | 4 +- .../trino/plugin/tpcds/EstimateAssertion.java | 4 +- .../io/trino/plugin/tpch/TpchMetadata.java | 26 ++-- .../io/trino/plugin/tpch/TpchRecordSet.java | 8 +- .../tpch/statistics/StatisticsEstimator.java | 28 ++-- .../io/trino/plugin/tpch/util/Optionals.java | 6 +- .../trino/plugin/tpch/EstimateAssertion.java | 4 +- .../java/io/trino/verifier/QueryRewriter.java | 2 +- .../java/io/trino/verifier/Validator.java | 12 +- .../main/java/io/trino/verifier/Verifier.java | 4 +- .../product/launcher/cli/OptionsPrinter.java | 6 +- .../ImmutableLdapObjectDefinitions.java | 46 +++---- .../TestAllDatatypesFromHiveConnector.java | 4 +- .../tests/product/hive/TestHiveCoercion.java | 4 +- .../io/trino/testing/StructuralTestUtil.java | 12 +- .../testing/tpch/AppendingRecordSet.java | 24 +--- 234 files changed, 1173 insertions(+), 1818 deletions(-) diff --git a/client/trino-cli/src/main/java/io/trino/cli/OutputHandler.java b/client/trino-cli/src/main/java/io/trino/cli/OutputHandler.java index 8a13cf6ed2e0..73a2ecd3bed5 100644 --- a/client/trino-cli/src/main/java/io/trino/cli/OutputHandler.java +++ b/client/trino-cli/src/main/java/io/trino/cli/OutputHandler.java @@ -94,7 +94,7 @@ public void processRows(StatementClient client) if (row == END_TOKEN) { break; } - else if (row != null) { + if (row != null) { rowBuffer.add(row); } } diff --git a/core/trino-main/src/main/java/io/trino/cost/CostCalculatorWithEstimatedExchanges.java b/core/trino-main/src/main/java/io/trino/cost/CostCalculatorWithEstimatedExchanges.java index dfaeea21c274..58bc37d5c921 100644 --- a/core/trino-main/src/main/java/io/trino/cost/CostCalculatorWithEstimatedExchanges.java +++ b/core/trino-main/src/main/java/io/trino/cost/CostCalculatorWithEstimatedExchanges.java @@ -280,12 +280,10 @@ private static LocalCostEstimate calculateJoinExchangeCost( LocalCostEstimate localRepartitionCost = calculateLocalRepartitionCost(buildSizeInBytes); return addPartialComponents(replicateCost, localRepartitionCost); } - else { - LocalCostEstimate probeCost = calculateRemoteRepartitionCost(probeSizeInBytes); - LocalCostEstimate buildRemoteRepartitionCost = calculateRemoteRepartitionCost(buildSizeInBytes); - LocalCostEstimate buildLocalRepartitionCost = calculateLocalRepartitionCost(buildSizeInBytes); - return addPartialComponents(probeCost, buildRemoteRepartitionCost, buildLocalRepartitionCost); - } + LocalCostEstimate probeCost = calculateRemoteRepartitionCost(probeSizeInBytes); + LocalCostEstimate buildRemoteRepartitionCost = calculateRemoteRepartitionCost(buildSizeInBytes); + LocalCostEstimate buildLocalRepartitionCost = calculateLocalRepartitionCost(buildSizeInBytes); + return addPartialComponents(probeCost, buildRemoteRepartitionCost, buildLocalRepartitionCost); } public static LocalCostEstimate calculateJoinInputCost( diff --git a/core/trino-main/src/main/java/io/trino/cost/ScalarStatsCalculator.java b/core/trino-main/src/main/java/io/trino/cost/ScalarStatsCalculator.java index ec6ab4c6b196..9075b27d6e23 100644 --- a/core/trino-main/src/main/java/io/trino/cost/ScalarStatsCalculator.java +++ b/core/trino-main/src/main/java/io/trino/cost/ScalarStatsCalculator.java @@ -312,20 +312,18 @@ private SymbolStatsEstimate estimateCoalesce(SymbolStatsEstimate left, SymbolSta if (left.getNullsFraction() == 0) { return left; } - else if (left.getNullsFraction() == 1.0) { + if (left.getNullsFraction() == 1.0) { return right; } - else { - return SymbolStatsEstimate.builder() - .setLowValue(min(left.getLowValue(), right.getLowValue())) - .setHighValue(max(left.getHighValue(), right.getHighValue())) - .setDistinctValuesCount(left.getDistinctValuesCount() + - min(right.getDistinctValuesCount(), input.getOutputRowCount() * left.getNullsFraction())) - .setNullsFraction(left.getNullsFraction() * right.getNullsFraction()) - // TODO check if dataSize estimation method is correct - .setAverageRowSize(max(left.getAverageRowSize(), right.getAverageRowSize())) - .build(); - } + return SymbolStatsEstimate.builder() + .setLowValue(min(left.getLowValue(), right.getLowValue())) + .setHighValue(max(left.getHighValue(), right.getHighValue())) + .setDistinctValuesCount(left.getDistinctValuesCount() + + min(right.getDistinctValuesCount(), input.getOutputRowCount() * left.getNullsFraction())) + .setNullsFraction(left.getNullsFraction() * right.getNullsFraction()) + // TODO check if dataSize estimation method is correct + .setAverageRowSize(max(left.getAverageRowSize(), right.getAverageRowSize())) + .build(); } } diff --git a/core/trino-main/src/main/java/io/trino/execution/SplitAssignment.java b/core/trino-main/src/main/java/io/trino/execution/SplitAssignment.java index d2b7cf250760..77cf862590d8 100644 --- a/core/trino-main/src/main/java/io/trino/execution/SplitAssignment.java +++ b/core/trino-main/src/main/java/io/trino/execution/SplitAssignment.java @@ -78,10 +78,8 @@ public SplitAssignment update(SplitAssignment assignment) newSplits, assignment.isNoMoreSplits()); } - else { - // the specified assignment is older than this one - return this; - } + // the specified assignment is older than this one + return this; } private boolean isNewer(SplitAssignment assignment) diff --git a/core/trino-main/src/main/java/io/trino/execution/buffer/PagesSerdeUtil.java b/core/trino-main/src/main/java/io/trino/execution/buffer/PagesSerdeUtil.java index 6d45924364f0..7f0d2c199b21 100644 --- a/core/trino-main/src/main/java/io/trino/execution/buffer/PagesSerdeUtil.java +++ b/core/trino-main/src/main/java/io/trino/execution/buffer/PagesSerdeUtil.java @@ -130,7 +130,7 @@ protected Page computeNext() context.close(); // Release context buffers return endOfData(); } - else if (read != headerBuffer.length) { + if (read != headerBuffer.length) { throw new EOFException(); } @@ -167,7 +167,7 @@ protected Slice computeNext() if (read <= 0) { return endOfData(); } - else if (read != headerBuffer.length) { + if (read != headerBuffer.length) { throw new EOFException(); } diff --git a/core/trino-main/src/main/java/io/trino/execution/resourcegroups/InternalResourceGroup.java b/core/trino-main/src/main/java/io/trino/execution/resourcegroups/InternalResourceGroup.java index 80bd6ab34857..05813cc68c5e 100644 --- a/core/trino-main/src/main/java/io/trino/execution/resourcegroups/InternalResourceGroup.java +++ b/core/trino-main/src/main/java/io/trino/execution/resourcegroups/InternalResourceGroup.java @@ -234,12 +234,10 @@ private ResourceGroupState getState() if (canRunMore()) { return CAN_RUN; } - else if (canQueueMore()) { + if (canQueueMore()) { return CAN_QUEUE; } - else { - return FULL; - } + return FULL; } } @@ -877,9 +875,7 @@ private static long getSubGroupSchedulingPriority(SchedulingPolicy policy, Inter if (policy == QUERY_PRIORITY) { return group.getHighestQueryPriority(); } - else { - return group.computeSchedulingWeight(); - } + return group.computeSchedulingWeight(); } private long computeSchedulingWeight() diff --git a/core/trino-main/src/main/java/io/trino/execution/resourcegroups/StochasticPriorityQueue.java b/core/trino-main/src/main/java/io/trino/execution/resourcegroups/StochasticPriorityQueue.java index ae6c92b90e26..81125d0f31d1 100644 --- a/core/trino-main/src/main/java/io/trino/execution/resourcegroups/StochasticPriorityQueue.java +++ b/core/trino-main/src/main/java/io/trino/execution/resourcegroups/StochasticPriorityQueue.java @@ -257,9 +257,7 @@ public Node addNode(E value, long tickets) if (left.get().descendants < right.get().descendants) { return left.get().addNode(value, tickets); } - else { - return right.get().addNode(value, tickets); - } + return right.get().addNode(value, tickets); } Node child = new Node<>(Optional.of(this), value); diff --git a/core/trino-main/src/main/java/io/trino/execution/scheduler/FixedSourcePartitionedScheduler.java b/core/trino-main/src/main/java/io/trino/execution/scheduler/FixedSourcePartitionedScheduler.java index 1a6b1542e9ed..5610763bb533 100644 --- a/core/trino-main/src/main/java/io/trino/execution/scheduler/FixedSourcePartitionedScheduler.java +++ b/core/trino-main/src/main/java/io/trino/execution/scheduler/FixedSourcePartitionedScheduler.java @@ -148,10 +148,8 @@ public ScheduleResult schedule() if (blockedReason != null) { return new ScheduleResult(sourceSchedulers.isEmpty(), newTasks, blocked, blockedReason, splitsScheduled); } - else { - checkState(blocked.isDone(), "blockedReason not provided when scheduler is blocked"); - return new ScheduleResult(sourceSchedulers.isEmpty(), newTasks, splitsScheduled); - } + checkState(blocked.isDone(), "blockedReason not provided when scheduler is blocked"); + return new ScheduleResult(sourceSchedulers.isEmpty(), newTasks, splitsScheduled); } @Override diff --git a/core/trino-main/src/main/java/io/trino/json/PathEvaluationVisitor.java b/core/trino-main/src/main/java/io/trino/json/PathEvaluationVisitor.java index f197211eab0c..b82029b72062 100644 --- a/core/trino-main/src/main/java/io/trino/json/PathEvaluationVisitor.java +++ b/core/trino-main/src/main/java/io/trino/json/PathEvaluationVisitor.java @@ -528,47 +528,45 @@ private static long asArrayIndex(Object object) } return jsonNode.longValue(); } - else { - TypedValue value = (TypedValue) object; - Type type = value.getType(); - if (type.equals(BIGINT) || type.equals(INTEGER) || type.equals(SMALLINT) || type.equals(TINYINT)) { - return value.getLongValue(); + TypedValue value = (TypedValue) object; + Type type = value.getType(); + if (type.equals(BIGINT) || type.equals(INTEGER) || type.equals(SMALLINT) || type.equals(TINYINT)) { + return value.getLongValue(); + } + if (type.equals(DOUBLE)) { + try { + return DoubleOperators.castToLong(value.getDoubleValue()); } - if (type.equals(DOUBLE)) { - try { - return DoubleOperators.castToLong(value.getDoubleValue()); - } - catch (Exception e) { - throw new PathEvaluationError(e); - } + catch (Exception e) { + throw new PathEvaluationError(e); } - if (type.equals(REAL)) { - try { - return RealOperators.castToLong(value.getLongValue()); - } - catch (Exception e) { - throw new PathEvaluationError(e); - } + } + if (type.equals(REAL)) { + try { + return RealOperators.castToLong(value.getLongValue()); } - if (type instanceof DecimalType) { - DecimalType decimalType = (DecimalType) type; - int precision = decimalType.getPrecision(); - int scale = decimalType.getScale(); - if (((DecimalType) type).isShort()) { - long tenToScale = longTenToNth(DecimalConversions.intScale(scale)); - return DecimalCasts.shortDecimalToBigint(value.getLongValue(), precision, scale, tenToScale); - } - Int128 tenToScale = Int128Math.powerOfTen(DecimalConversions.intScale(scale)); - try { - return DecimalCasts.longDecimalToBigint((Int128) value.getObjectValue(), precision, scale, tenToScale); - } - catch (Exception e) { - throw new PathEvaluationError(e); - } + catch (Exception e) { + throw new PathEvaluationError(e); + } + } + if (type instanceof DecimalType) { + DecimalType decimalType = (DecimalType) type; + int precision = decimalType.getPrecision(); + int scale = decimalType.getScale(); + if (((DecimalType) type).isShort()) { + long tenToScale = longTenToNth(DecimalConversions.intScale(scale)); + return DecimalCasts.shortDecimalToBigint(value.getLongValue(), precision, scale, tenToScale); + } + Int128 tenToScale = Int128Math.powerOfTen(DecimalConversions.intScale(scale)); + try { + return DecimalCasts.longDecimalToBigint((Int128) value.getObjectValue(), precision, scale, tenToScale); + } + catch (Exception e) { + throw new PathEvaluationError(e); } - - throw itemTypeError("NUMBER", type.getDisplayName()); } + + throw itemTypeError("NUMBER", type.getDisplayName()); } @Override diff --git a/core/trino-main/src/main/java/io/trino/metadata/LiteralFunction.java b/core/trino-main/src/main/java/io/trino/metadata/LiteralFunction.java index 99d7bea38572..f519582e934c 100644 --- a/core/trino-main/src/main/java/io/trino/metadata/LiteralFunction.java +++ b/core/trino-main/src/main/java/io/trino/metadata/LiteralFunction.java @@ -113,9 +113,7 @@ public static Type typeForMagicLiteral(Type type) if (type instanceof VarcharType) { return type; } - else { - return VARBINARY; - } + return VARBINARY; } if (clazz == boolean.class) { return BOOLEAN; diff --git a/core/trino-main/src/main/java/io/trino/metadata/QualifiedTablePrefix.java b/core/trino-main/src/main/java/io/trino/metadata/QualifiedTablePrefix.java index e500720ac777..3666e85c082b 100644 --- a/core/trino-main/src/main/java/io/trino/metadata/QualifiedTablePrefix.java +++ b/core/trino-main/src/main/java/io/trino/metadata/QualifiedTablePrefix.java @@ -100,12 +100,10 @@ public SchemaTablePrefix asSchemaTablePrefix() if (schemaName.isEmpty()) { return new SchemaTablePrefix(); } - else if (tableName.isEmpty()) { + if (tableName.isEmpty()) { return new SchemaTablePrefix(schemaName.get()); } - else { - return new SchemaTablePrefix(schemaName.get(), tableName.get()); - } + return new SchemaTablePrefix(schemaName.get(), tableName.get()); } public Optional asQualifiedObjectName() diff --git a/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java b/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java index 6611f5829d52..4c05c47d1451 100644 --- a/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java +++ b/core/trino-main/src/main/java/io/trino/metadata/SignatureBinder.java @@ -690,13 +690,11 @@ private boolean canCast(Type fromType, Type toType) } return true; } - else if (toType instanceof JsonType) { + if (toType instanceof JsonType) { return fromType.getTypeParameters().stream() .allMatch(fromTypeParameter -> canCast(fromTypeParameter, toType)); } - else { - return false; - } + return false; } if (fromType instanceof JsonType) { if (toType instanceof RowType) { diff --git a/core/trino-main/src/main/java/io/trino/operator/DriverContext.java b/core/trino-main/src/main/java/io/trino/operator/DriverContext.java index 169bdc534fe4..cd8ff2bcc31b 100644 --- a/core/trino-main/src/main/java/io/trino/operator/DriverContext.java +++ b/core/trino-main/src/main/java/io/trino/operator/DriverContext.java @@ -235,9 +235,7 @@ public CounterStat getInputDataSize() if (inputOperator != null) { return inputOperator.getInputDataSize(); } - else { - return new CounterStat(); - } + return new CounterStat(); } public CounterStat getInputPositions() @@ -246,9 +244,7 @@ public CounterStat getInputPositions() if (inputOperator != null) { return inputOperator.getInputPositions(); } - else { - return new CounterStat(); - } + return new CounterStat(); } public CounterStat getOutputDataSize() @@ -257,9 +253,7 @@ public CounterStat getOutputDataSize() if (inputOperator != null) { return inputOperator.getOutputDataSize(); } - else { - return new CounterStat(); - } + return new CounterStat(); } public CounterStat getOutputPositions() @@ -268,9 +262,7 @@ public CounterStat getOutputPositions() if (inputOperator != null) { return inputOperator.getOutputPositions(); } - else { - return new CounterStat(); - } + return new CounterStat(); } public long getPhysicalWrittenDataSize() diff --git a/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRankAccumulator.java b/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRankAccumulator.java index 52070cfdb0ae..f41c1f52b8ab 100644 --- a/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRankAccumulator.java +++ b/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRankAccumulator.java @@ -119,7 +119,7 @@ public boolean add(long groupId, RowReference rowReference) heapInsert(groupId, newPeerGroupIndex, 1); return true; } - else if (rowReference.compareTo(strategy, peekRootRowId(groupId)) < 0) { + if (rowReference.compareTo(strategy, peekRootRowId(groupId)) < 0) { // Given that total number of values >= topN, we can only consider values that are less than the root (otherwise topN would be violated) long newPeerGroupIndex = peerGroupBuffer.allocateNewNode(rowReference.allocateRowId(), UNKNOWN_INDEX); // Rank will increase by +1 after insertion, so only need to pop if root rank is already == topN. @@ -131,10 +131,8 @@ else if (rowReference.compareTo(strategy, peekRootRowId(groupId)) < 0) { } return true; } - else { - // Row cannot be accepted because the total number of values >= topN, and the row is greater than the root (meaning it's rank would be at least topN+1). - return false; - } + // Row cannot be accepted because the total number of values >= topN, and the row is greater than the root (meaning it's rank would be at least topN+1). + return false; } /** diff --git a/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRowNumberAccumulator.java b/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRowNumberAccumulator.java index a8f60b3578e3..866891aa1fac 100644 --- a/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRowNumberAccumulator.java +++ b/core/trino-main/src/main/java/io/trino/operator/GroupedTopNRowNumberAccumulator.java @@ -88,13 +88,11 @@ public boolean add(long groupId, RowReference rowReference) heapInsert(groupId, rowReference.allocateRowId()); return true; } - else if (rowReference.compareTo(strategy, heapNodeBuffer.getRowId(heapRootNodeIndex)) < 0) { + if (rowReference.compareTo(strategy, heapNodeBuffer.getRowId(heapRootNodeIndex)) < 0) { heapPopAndInsert(groupId, rowReference.allocateRowId(), rowIdEvictionListener); return true; } - else { - return false; - } + return false; } /** diff --git a/core/trino-main/src/main/java/io/trino/operator/HashAggregationOperator.java b/core/trino-main/src/main/java/io/trino/operator/HashAggregationOperator.java index a500a160e102..291fdf67fc79 100644 --- a/core/trino-main/src/main/java/io/trino/operator/HashAggregationOperator.java +++ b/core/trino-main/src/main/java/io/trino/operator/HashAggregationOperator.java @@ -369,12 +369,10 @@ public boolean needsInput() if (finishing || outputPages != null) { return false; } - else if (aggregationBuilder != null && aggregationBuilder.isFull()) { + if (aggregationBuilder != null && aggregationBuilder.isFull()) { return false; } - else { - return unfinishedWork == null; - } + return unfinishedWork == null; } @Override diff --git a/core/trino-main/src/main/java/io/trino/operator/RowReferencePageManager.java b/core/trino-main/src/main/java/io/trino/operator/RowReferencePageManager.java index cde894270e08..0e58d279b46a 100644 --- a/core/trino-main/src/main/java/io/trino/operator/RowReferencePageManager.java +++ b/core/trino-main/src/main/java/io/trino/operator/RowReferencePageManager.java @@ -98,10 +98,8 @@ public Page getPage(long rowId) checkState(currentCursor != null, "No active cursor"); return currentCursor.getPage(); } - else { - int pageId = rowIdBuffer.getPageId(rowId); - return pages.get(pageId).getPage(); - } + int pageId = rowIdBuffer.getPageId(rowId); + return pages.get(pageId).getPage(); } public int getPosition(long rowId) @@ -111,9 +109,7 @@ public int getPosition(long rowId) // rowId for cursors only reference the single current position return currentCursor.getCurrentPosition(); } - else { - return rowIdBuffer.getPosition(rowId); - } + return rowIdBuffer.getPosition(rowId); } private static boolean isCursorRowId(long rowId) diff --git a/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java b/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java index 9225837dd7d8..bb8c5b210c8f 100644 --- a/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java +++ b/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java @@ -272,10 +272,8 @@ public TransformationState> process(Split split) cursor = ((RecordPageSource) source).getCursor(); return ofResult(processColumnSource()); } - else { - pageSource = source; - return ofResult(processPageSource()); - } + pageSource = source; + return ofResult(processPageSource()); } WorkProcessor processColumnSource() @@ -356,14 +354,12 @@ public ProcessState process() outputMemoryContext.setBytes(pageBuilder.getRetainedSizeInBytes()); return ProcessState.ofResult(page); } - else if (finished) { + if (finished) { checkState(pageBuilder.isEmpty()); return ProcessState.finished(); } - else { - outputMemoryContext.setBytes(pageBuilder.getRetainedSizeInBytes()); - return ProcessState.yielded(); - } + outputMemoryContext.setBytes(pageBuilder.getRetainedSizeInBytes()); + return ProcessState.yielded(); } } @@ -396,9 +392,7 @@ public ProcessState process() if (pageSource.isFinished()) { return ProcessState.finished(); } - else { - return ProcessState.yielded(); - } + return ProcessState.yielded(); } recordMaterializedBytes(page, sizeInBytes -> processedBytes += sizeInBytes); diff --git a/core/trino-main/src/main/java/io/trino/operator/TableScanWorkProcessorOperator.java b/core/trino-main/src/main/java/io/trino/operator/TableScanWorkProcessorOperator.java index 2b80242bf056..5f5c5ee5e8b7 100644 --- a/core/trino-main/src/main/java/io/trino/operator/TableScanWorkProcessorOperator.java +++ b/core/trino-main/src/main/java/io/trino/operator/TableScanWorkProcessorOperator.java @@ -291,9 +291,7 @@ public ProcessState process() if (pageSource.isFinished()) { return ProcessState.finished(); } - else { - return ProcessState.yielded(); - } + return ProcessState.yielded(); } return ProcessState.ofResult(page); diff --git a/core/trino-main/src/main/java/io/trino/operator/TopNRankingOperator.java b/core/trino-main/src/main/java/io/trino/operator/TopNRankingOperator.java index b39b624cd4b4..112ffb7dc4e9 100644 --- a/core/trino-main/src/main/java/io/trino/operator/TopNRankingOperator.java +++ b/core/trino-main/src/main/java/io/trino/operator/TopNRankingOperator.java @@ -246,19 +246,17 @@ private static Supplier getGroupByHashSupplier( if (partitionChannels.isEmpty()) { return Suppliers.ofInstance(new NoChannelGroupByHash()); } - else { - checkArgument(expectedPositions > 0, "expectedPositions must be > 0"); - int[] channels = Ints.toArray(partitionChannels); - return () -> createGroupByHash( - session, - partitionTypes, - channels, - hashChannel, - expectedPositions, - joinCompiler, - blockTypeOperators, - updateMemory); - } + checkArgument(expectedPositions > 0, "expectedPositions must be > 0"); + int[] channels = Ints.toArray(partitionChannels); + return () -> createGroupByHash( + session, + partitionTypes, + channels, + hashChannel, + expectedPositions, + joinCompiler, + blockTypeOperators, + updateMemory); } private static Supplier getGroupedTopNBuilderSupplier( @@ -281,7 +279,7 @@ private static Supplier getGroupedTopNBuilderSupplier( generateRanking, groupByHashSupplier.get()); } - else if (rankingType == RankingType.RANK) { + if (rankingType == RankingType.RANK) { PageWithPositionComparator comparator = new SimplePageWithPositionComparator(sourceTypes, sortChannels, sortOrders, typeOperators); PageWithPositionEqualsAndHash equalsAndHash = new SimplePageWithPositionEqualsAndHash(ImmutableList.copyOf(sourceTypes), sortChannels, blockTypeOperators); return () -> new GroupedTopNRankBuilder( @@ -292,12 +290,10 @@ else if (rankingType == RankingType.RANK) { generateRanking, groupByHashSupplier.get()); } - else if (rankingType == RankingType.DENSE_RANK) { + if (rankingType == RankingType.DENSE_RANK) { throw new UnsupportedOperationException(); } - else { - throw new AssertionError("Unknown ranking type: " + rankingType); - } + throw new AssertionError("Unknown ranking type: " + rankingType); } @Override diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/Aggregator.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/Aggregator.java index c746174bdcee..45543c607509 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/Aggregator.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/Aggregator.java @@ -52,9 +52,7 @@ public Type getType() if (step.isOutputPartial()) { return intermediateType; } - else { - return finalType; - } + return finalType; } public void processPage(Page page) diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/DistinctAccumulatorFactory.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/DistinctAccumulatorFactory.java index fe8f36a7d429..8a958fd0f918 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/DistinctAccumulatorFactory.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/DistinctAccumulatorFactory.java @@ -267,9 +267,7 @@ private static Page filter(Page page, Block mask) if (!mask.isNull(0) && BOOLEAN.getBoolean(mask, 0)) { return page; } - else { - return page.getPositions(new int[0], 0, 0); - } + return page.getPositions(new int[0], 0, 0); } boolean mayHaveNull = mask.mayHaveNull(); int[] ids = new int[positions]; diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/GroupedAggregator.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/GroupedAggregator.java index 05f43e2b38b3..9098f325d145 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/GroupedAggregator.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/GroupedAggregator.java @@ -59,9 +59,7 @@ public Type getType() if (step.isOutputPartial()) { return intermediateType; } - else { - return finalType; - } + return finalType; } public void processPage(GroupByIdBlock groupIds, Page page) diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/ParametricAggregationImplementation.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/ParametricAggregationImplementation.java index 7e3973f4c63d..f74054653d61 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/ParametricAggregationImplementation.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/ParametricAggregationImplementation.java @@ -399,18 +399,12 @@ static AggregationParameterKind getInputParameterKind(boolean isNullable, boolea if (isNullable) { return NULLABLE_BLOCK_INPUT_CHANNEL; } - else { - return BLOCK_INPUT_CHANNEL; - } + return BLOCK_INPUT_CHANNEL; } - else { - if (isNullable) { - throw new IllegalArgumentException(methodName + " contains a parameter with @NullablePosition that is not @BlockPosition"); - } - else { - return INPUT_CHANNEL; - } + if (isNullable) { + throw new IllegalArgumentException(methodName + " contains a parameter with @NullablePosition that is not @BlockPosition"); } + return INPUT_CHANNEL; } private static Annotation baseTypeAnnotation(Annotation[] annotations, String methodName) diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/ReduceAggregationFunction.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/ReduceAggregationFunction.java index 4959ebab017b..4bb4a734b81e 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/ReduceAggregationFunction.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/ReduceAggregationFunction.java @@ -99,7 +99,7 @@ public AggregationImplementation specialize(BoundSignature boundSignature) .lambdaInterfaces(BinaryFunctionInterface.class, BinaryFunctionInterface.class) .build(); } - else if (stateType.getJavaType() == double.class) { + if (stateType.getJavaType() == double.class) { return AggregationImplementation.builder() .inputFunction(normalizeInputMethod(boundSignature, inputType, DOUBLE_STATE_INPUT_FUNCTION)) .combineFunction(DOUBLE_STATE_COMBINE_FUNCTION) @@ -111,7 +111,7 @@ else if (stateType.getJavaType() == double.class) { .lambdaInterfaces(BinaryFunctionInterface.class, BinaryFunctionInterface.class) .build(); } - else if (stateType.getJavaType() == boolean.class) { + if (stateType.getJavaType() == boolean.class) { return AggregationImplementation.builder() .inputFunction(normalizeInputMethod(boundSignature, inputType, BOOLEAN_STATE_INPUT_FUNCTION)) .combineFunction(BOOLEAN_STATE_COMBINE_FUNCTION) @@ -123,12 +123,10 @@ else if (stateType.getJavaType() == boolean.class) { .lambdaInterfaces(BinaryFunctionInterface.class, BinaryFunctionInterface.class) .build(); } - else { - // State with Slice or Block as native container type is intentionally not supported yet, - // as it may result in excessive JVM memory usage of remembered set. - // See JDK-8017163. - throw new TrinoException(NOT_SUPPORTED, format("State type not supported for %s: %s", NAME, stateType.getDisplayName())); - } + // State with Slice or Block as native container type is intentionally not supported yet, + // as it may result in excessive JVM memory usage of remembered set. + // See JDK-8017163. + throw new TrinoException(NOT_SUPPORTED, format("State type not supported for %s: %s", NAME, stateType.getDisplayName())); } private static MethodHandle normalizeInputMethod(BoundSignature boundSignature, Type inputType, MethodHandle inputMethodHandle) diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/TypedSet.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/TypedSet.java index 8287c6bf3135..f7e915d61343 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/TypedSet.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/TypedSet.java @@ -253,9 +253,7 @@ public boolean contains(Block block, int position) if (block.isNull(position)) { return containsNullElement; } - else { - return blockPositionByHash.getInt(getHashPositionOfElement(block, position)) != EMPTY_SLOT; - } + return blockPositionByHash.getInt(getHashPositionOfElement(block, position)) != EMPTY_SLOT; } /** diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/InMemoryHashAggregationBuilder.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/InMemoryHashAggregationBuilder.java index d4cd20cd0944..ea9b40ab054d 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/InMemoryHashAggregationBuilder.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/InMemoryHashAggregationBuilder.java @@ -138,17 +138,15 @@ public Work processPage(Page page) if (groupedAggregators.isEmpty()) { return groupByHash.addPage(page); } - else { - return new TransformWork<>( - groupByHash.getGroupIds(page), - groupByIdBlock -> { - for (GroupedAggregator groupedAggregator : groupedAggregators) { - groupedAggregator.processPage(groupByIdBlock, page); - } - // we do not need any output from TransformWork for this case - return null; - }); - } + return new TransformWork<>( + groupByHash.getGroupIds(page), + groupByIdBlock -> { + for (GroupedAggregator groupedAggregator : groupedAggregators) { + groupedAggregator.processPage(groupByIdBlock, page); + } + // we do not need any output from TransformWork for this case + return null; + }); } @Override diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/SpillableHashAggregationBuilder.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/SpillableHashAggregationBuilder.java index da7ad0f8461a..7d266fdd76c5 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/SpillableHashAggregationBuilder.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/builder/SpillableHashAggregationBuilder.java @@ -152,9 +152,7 @@ private boolean hasPreviousSpillCompletedSuccessfully() getFutureValue(spillInProgress); return true; } - else { - return false; - } + return false; } @Override @@ -208,10 +206,8 @@ public WorkProcessor buildResult() if (shouldMergeWithMemory(getSizeInMemoryWhenUnspilling())) { return mergeFromDiskAndMemory(); } - else { - getFutureValue(spillToDisk()); - return mergeFromDisk(); - } + getFutureValue(spillToDisk()); + return mergeFromDisk(); } /** diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/GroupedTypedHistogram.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/GroupedTypedHistogram.java index 3991be7b9fb6..5a5c36a1936a 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/GroupedTypedHistogram.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/GroupedTypedHistogram.java @@ -436,10 +436,8 @@ private boolean processEntry(long groupId, Block block, int position, long count addNewGroup(groupId, block, position, count); return true; } - else { - valueNode.add(count); - return false; - } + valueNode.add(count); + return false; } private void addNewGroup(long groupId, Block block, int position, long count) @@ -488,16 +486,14 @@ private BucketDataNode createBucketDataNode(long groupId, Block block, int posit if (nodePointer == EMPTY_BUCKET) { return new BucketDataNode(bucketId, new ValueNode(nextNodePointer), valueHash, valueAndGroupHash, nextNodePointer, true); } - else if (groupAndValueMatches(groupId, block, position, nodePointer, valuePositions.get(nodePointer))) { + if (groupAndValueMatches(groupId, block, position, nodePointer, valuePositions.get(nodePointer))) { // value match return new BucketDataNode(bucketId, new ValueNode(nodePointer), valueHash, valueAndGroupHash, nodePointer, false); } - else { - // keep looking - int probe = nextProbe(probeCount); - bucketId = nextBucketId(originalBucketId, mask, probe); - probeCount++; - } + // keep looking + int probe = nextProbe(probeCount); + bucketId = nextBucketId(originalBucketId, mask, probe); + probeCount++; } } diff --git a/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/ValueStore.java b/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/ValueStore.java index 23873939bce2..cc4170ed0cd6 100644 --- a/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/ValueStore.java +++ b/core/trino-main/src/main/java/io/trino/operator/aggregation/histogram/ValueStore.java @@ -98,15 +98,13 @@ public int addAndGetPosition(Block block, int position, long valueHash) return valuePointer; } - else if (equalOperator.equal(block, position, values, valuePointer)) { + if (equalOperator.equal(block, position, values, valuePointer)) { // value at position return valuePointer; } - else { - int probe = nextProbe(probeCount); - bucketId = nextBucketId(originalBucketId, mask, probe); - probeCount++; - } + int probe = nextProbe(probeCount); + bucketId = nextBucketId(originalBucketId, mask, probe); + probeCount++; } } diff --git a/core/trino-main/src/main/java/io/trino/operator/join/DefaultPageJoiner.java b/core/trino-main/src/main/java/io/trino/operator/join/DefaultPageJoiner.java index f9f5508dc63d..b2dc1d9fb216 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/DefaultPageJoiner.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/DefaultPageJoiner.java @@ -384,9 +384,7 @@ private long getJoinPositionWithinPartition() if (joinPosition >= 0) { return lookupSourceProvider.withLease(lookupSourceLease -> lookupSourceLease.getLookupSource().joinPositionWithinPartition(joinPosition)); } - else { - return -1; - } + return -1; } private Page buildOutputPage() diff --git a/core/trino-main/src/main/java/io/trino/operator/join/NestedLoopJoinOperator.java b/core/trino-main/src/main/java/io/trino/operator/join/NestedLoopJoinOperator.java index a26da4b8e25e..f70775367d64 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/NestedLoopJoinOperator.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/NestedLoopJoinOperator.java @@ -267,15 +267,13 @@ static NestedLoopOutputIterator createNestedLoopOutputIterator(Page probePage, P Page outputPage = new Page(max(probePositions, buildPositions)); return new PageRepeatingIterator(outputPage, min(probePositions, buildPositions)); } - else if (probeChannels.length == 0 && probePage.getPositionCount() <= buildPage.getPositionCount()) { + if (probeChannels.length == 0 && probePage.getPositionCount() <= buildPage.getPositionCount()) { return new PageRepeatingIterator(buildPage.getColumns(buildChannels), probePage.getPositionCount()); } - else if (buildChannels.length == 0 && buildPage.getPositionCount() <= probePage.getPositionCount()) { + if (buildChannels.length == 0 && buildPage.getPositionCount() <= probePage.getPositionCount()) { return new PageRepeatingIterator(probePage.getColumns(probeChannels), buildPage.getPositionCount()); } - else { - return new NestedLoopPageBuilder(probePage, buildPage, probeChannels, buildChannels); - } + return new NestedLoopPageBuilder(probePage, buildPage, probeChannels, buildChannels); } // bi-morphic parent class for the two implementations allowed. Adding a third implementation will make getOutput megamorphic and diff --git a/core/trino-main/src/main/java/io/trino/operator/join/PartitionedConsumption.java b/core/trino-main/src/main/java/io/trino/operator/join/PartitionedConsumption.java index 5752a33ec60a..4047d9095d16 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/PartitionedConsumption.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/PartitionedConsumption.java @@ -106,9 +106,7 @@ protected Partition computeNext() if (next != null) { return next; } - else { - return endOfData(); - } + return endOfData(); } }; } diff --git a/core/trino-main/src/main/java/io/trino/operator/join/PartitionedLookupSource.java b/core/trino-main/src/main/java/io/trino/operator/join/PartitionedLookupSource.java index b0c408833e98..e53f073b868c 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/PartitionedLookupSource.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/PartitionedLookupSource.java @@ -69,16 +69,14 @@ public OuterPositionIterator getOuterPositionIterator() } }; } - else { - return TrackingLookupSourceSupplier.nonTracking( - () -> new PartitionedLookupSource( - partitions.stream() - .map(Supplier::get) - .collect(toImmutableList()), - hashChannelTypes, - Optional.empty(), - blockTypeOperators)); - } + return TrackingLookupSourceSupplier.nonTracking( + () -> new PartitionedLookupSource( + partitions.stream() + .map(Supplier::get) + .collect(toImmutableList()), + hashChannelTypes, + Optional.empty(), + blockTypeOperators)); } private final LookupSource[] lookupSources; diff --git a/core/trino-main/src/main/java/io/trino/operator/join/SortedPositionLinks.java b/core/trino-main/src/main/java/io/trino/operator/join/SortedPositionLinks.java index c57ef8df722d..1c55fd6bf997 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/SortedPositionLinks.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/SortedPositionLinks.java @@ -84,16 +84,14 @@ public int link(int from, int to) positionLinks.computeIfAbsent(to, key -> new IntArrayList()).add(from); return to; } - else { - // _to_ is larger so, move the chain to _from_ - IntArrayList links = positionLinks.remove(to); - if (links == null) { - links = new IntArrayList(); - } - links.add(to); - checkState(positionLinks.put(from, links) == null, "sorted links is corrupted"); - return from; + // _to_ is larger so, move the chain to _from_ + IntArrayList links = positionLinks.remove(to); + if (links == null) { + links = new IntArrayList(); } + links.add(to); + checkState(positionLinks.put(from, links) == null, "sorted links is corrupted"); + return from; } private boolean isNull(int position) diff --git a/core/trino-main/src/main/java/io/trino/operator/join/unspilled/PartitionedLookupSource.java b/core/trino-main/src/main/java/io/trino/operator/join/unspilled/PartitionedLookupSource.java index 9cbf2bffbc91..a701de4c7049 100644 --- a/core/trino-main/src/main/java/io/trino/operator/join/unspilled/PartitionedLookupSource.java +++ b/core/trino-main/src/main/java/io/trino/operator/join/unspilled/PartitionedLookupSource.java @@ -72,16 +72,14 @@ public OuterPositionIterator getOuterPositionIterator() } }; } - else { - return TrackingLookupSourceSupplier.nonTracking( - () -> new PartitionedLookupSource( - partitions.stream() - .map(Supplier::get) - .collect(toImmutableList()), - hashChannelTypes, - Optional.empty(), - blockTypeOperators)); - } + return TrackingLookupSourceSupplier.nonTracking( + () -> new PartitionedLookupSource( + partitions.stream() + .map(Supplier::get) + .collect(toImmutableList()), + hashChannelTypes, + Optional.empty(), + blockTypeOperators)); } private final LookupSource[] lookupSources; diff --git a/core/trino-main/src/main/java/io/trino/operator/project/DictionaryAwarePageProjection.java b/core/trino-main/src/main/java/io/trino/operator/project/DictionaryAwarePageProjection.java index dd6b9ef3ceb1..e413265e509b 100644 --- a/core/trino-main/src/main/java/io/trino/operator/project/DictionaryAwarePageProjection.java +++ b/core/trino-main/src/main/java/io/trino/operator/project/DictionaryAwarePageProjection.java @@ -117,9 +117,7 @@ public boolean process() if (produceLazyBlock) { return true; } - else { - return processInternal(); - } + return processInternal(); } private boolean processInternal() @@ -200,10 +198,8 @@ public Block getResult() return result.getLoadedBlock(); }); } - else { - checkState(result != null, "result has not been generated"); - return result; - } + checkState(result != null, "result has not been generated"); + return result; } private void setupDictionaryBlockProjection() diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/ArrayJoin.java b/core/trino-main/src/main/java/io/trino/operator/scalar/ArrayJoin.java index 30fb04145069..9abc95f268dd 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/ArrayJoin.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/ArrayJoin.java @@ -166,27 +166,25 @@ private static ChoicesSpecializedSqlScalarFunction specializeArrayJoin( methodHandle.bindTo(null), Optional.of(STATE_FACTORY)); } - else { - try { - InvocationConvention convention = new InvocationConvention(ImmutableList.of(BLOCK_POSITION), NULLABLE_RETURN, true, false); - MethodHandle cast = functionDependencies.getCastImplementation(type, VARCHAR, convention).getMethodHandle(); - - // if the cast doesn't take a ConnectorSession, create an adapter that drops the provided session - if (cast.type().parameterArray()[0] != ConnectorSession.class) { - cast = MethodHandles.dropArguments(cast, 0, ConnectorSession.class); - } + try { + InvocationConvention convention = new InvocationConvention(ImmutableList.of(BLOCK_POSITION), NULLABLE_RETURN, true, false); + MethodHandle cast = functionDependencies.getCastImplementation(type, VARCHAR, convention).getMethodHandle(); - MethodHandle target = MethodHandles.insertArguments(methodHandle, 0, cast); - return new ChoicesSpecializedSqlScalarFunction( - boundSignature, - FAIL_ON_NULL, - argumentConventions, - target, - Optional.of(STATE_FACTORY)); - } - catch (TrinoException e) { - throw new TrinoException(INVALID_FUNCTION_ARGUMENT, format("Input type %s not supported", type), e); + // if the cast doesn't take a ConnectorSession, create an adapter that drops the provided session + if (cast.type().parameterArray()[0] != ConnectorSession.class) { + cast = MethodHandles.dropArguments(cast, 0, ConnectorSession.class); } + + MethodHandle target = MethodHandles.insertArguments(methodHandle, 0, cast); + return new ChoicesSpecializedSqlScalarFunction( + boundSignature, + FAIL_ON_NULL, + argumentConventions, + target, + Optional.of(STATE_FACTORY)); + } + catch (TrinoException e) { + throw new TrinoException(INVALID_FUNCTION_ARGUMENT, format("Input type %s not supported", type), e); } } diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/BitwiseFunctions.java b/core/trino-main/src/main/java/io/trino/operator/scalar/BitwiseFunctions.java index 0f861922f2d2..d86e3ce0ba61 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/BitwiseFunctions.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/BitwiseFunctions.java @@ -202,9 +202,7 @@ public static long bitwiseRightShiftArithmeticTinyint(@SqlType(StandardTypes.TIN if (value >= 0) { return 0L; } - else { - return -1L; - } + return -1L; } return preserveSign(value, TINYINT_MASK, TINYINT_SIGNED_BIT) >> shift; } @@ -218,9 +216,7 @@ public static long bitwiseRightShiftArithmeticSmallint(@SqlType(StandardTypes.SM if (value >= 0) { return 0L; } - else { - return -1L; - } + return -1L; } return preserveSign(value, SMALLINT_MASK, SMALLINT_SIGNED_BIT) >> shift; } @@ -234,9 +230,7 @@ public static long bitwiseRightShiftArithmeticInteger(@SqlType(StandardTypes.INT if (value >= 0) { return 0L; } - else { - return -1L; - } + return -1L; } return preserveSign(value, INTEGER_MASK, INTEGER_SIGNED_BIT) >> shift; } @@ -250,9 +244,7 @@ public static long bitwiseRightShiftArithmeticBigint(@SqlType(StandardTypes.BIGI if (value >= 0) { return 0L; } - else { - return -1L; - } + return -1L; } return value >> shift; } diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/CharacterStringCasts.java b/core/trino-main/src/main/java/io/trino/operator/scalar/CharacterStringCasts.java index 5fcddee99505..8cf6809ea93e 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/CharacterStringCasts.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/CharacterStringCasts.java @@ -46,9 +46,7 @@ public static Slice varcharToVarcharCast(@LiteralParameter("x") Long x, @Literal if (x > y) { return truncateToLength(slice, y.intValue()); } - else { - return slice; - } + return slice; } @ScalarOperator(OperatorType.CAST) @@ -59,9 +57,7 @@ public static Slice charToCharCast(@LiteralParameter("x") Long x, @LiteralParame if (x > y) { return truncateToLength(slice, y.intValue()); } - else { - return slice; - } + return slice; } @ScalarOperator(OperatorType.CAST) diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/ConcatWsFunction.java b/core/trino-main/src/main/java/io/trino/operator/scalar/ConcatWsFunction.java index 2b87b118580d..f81c688d2693 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/ConcatWsFunction.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/ConcatWsFunction.java @@ -74,10 +74,8 @@ public Slice getElement(int i) if (elements.isNull(i)) { return null; } - else { - int sliceLength = elements.getSliceLength(i); - return elements.getSlice(i, 0, sliceLength); - } + int sliceLength = elements.getSliceLength(i); + return elements.getSlice(i, 0, sliceLength); } @Override diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/JoniRegexpFunctions.java b/core/trino-main/src/main/java/io/trino/operator/scalar/JoniRegexpFunctions.java index 3a943da09600..2eabd99b2587 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/JoniRegexpFunctions.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/JoniRegexpFunctions.java @@ -74,14 +74,10 @@ private static int getNextStart(Slice source, Matcher matcher) if (matcher.getBegin() < source.length()) { return matcher.getEnd() + lengthOfCodePointFromStartByte(source.getByte(matcher.getBegin())); } - else { - // last match is empty and we matched end of source, move past the source length to terminate the loop - return matcher.getEnd() + 1; - } - } - else { - return matcher.getEnd(); + // last match is empty and we matched end of source, move past the source length to terminate the loop + return matcher.getEnd() + 1; } + return matcher.getEnd(); } @Description("Removes substrings matching a regular expression") diff --git a/core/trino-main/src/main/java/io/trino/operator/scalar/MapToMapCast.java b/core/trino-main/src/main/java/io/trino/operator/scalar/MapToMapCast.java index 54ae82504367..ece2aae99f0b 100644 --- a/core/trino-main/src/main/java/io/trino/operator/scalar/MapToMapCast.java +++ b/core/trino-main/src/main/java/io/trino/operator/scalar/MapToMapCast.java @@ -179,21 +179,19 @@ private MethodHandle nullChecker(Class javaType) if (javaType == Long.class) { return CHECK_LONG_IS_NOT_NULL; } - else if (javaType == Double.class) { + if (javaType == Double.class) { return CHECK_DOUBLE_IS_NOT_NULL; } - else if (javaType == Boolean.class) { + if (javaType == Boolean.class) { return CHECK_BOOLEAN_IS_NOT_NULL; } - else if (javaType == Slice.class) { + if (javaType == Slice.class) { return CHECK_SLICE_IS_NOT_NULL; } - else if (javaType == Block.class) { + if (javaType == Block.class) { return CHECK_BLOCK_IS_NOT_NULL; } - else { - throw new IllegalArgumentException("Unknown java type " + javaType); - } + throw new IllegalArgumentException("Unknown java type " + javaType); } @UsedByGeneratedCode diff --git a/core/trino-main/src/main/java/io/trino/server/ServerInfoResource.java b/core/trino-main/src/main/java/io/trino/server/ServerInfoResource.java index cd4a7d9ca8bc..78f8e31d5446 100644 --- a/core/trino-main/src/main/java/io/trino/server/ServerInfoResource.java +++ b/core/trino-main/src/main/java/io/trino/server/ServerInfoResource.java @@ -108,9 +108,7 @@ public NodeState getServerState() if (shutdownHandler.isShutdownRequested()) { return SHUTTING_DOWN; } - else { - return ACTIVE; - } + return ACTIVE; } @ResourceSecurity(PUBLIC) diff --git a/core/trino-main/src/main/java/io/trino/server/security/oauth2/OidcDiscovery.java b/core/trino-main/src/main/java/io/trino/server/security/oauth2/OidcDiscovery.java index 4ecaa614bc92..e35d1efae9d7 100644 --- a/core/trino-main/src/main/java/io/trino/server/security/oauth2/OidcDiscovery.java +++ b/core/trino-main/src/main/java/io/trino/server/security/oauth2/OidcDiscovery.java @@ -97,9 +97,7 @@ private OAuth2ServerConfig parseConfigurationResponse(HTTPResponse response) if (statusCode < 400 || statusCode >= 500 || statusCode == REQUEST_TIMEOUT.code() || statusCode == TOO_MANY_REQUESTS.code()) { throw new RuntimeException("Invalid response from OpenID Metadata endpoint: " + statusCode); } - else { - throw new IllegalStateException(format("Invalid response from OpenID Metadata endpoint. Expected response code to be %s, but was %s", OK.code(), statusCode)); - } + throw new IllegalStateException(format("Invalid response from OpenID Metadata endpoint. Expected response code to be %s, but was %s", OK.code(), statusCode)); } return readConfiguration(response.getContent()); } diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/CanonicalizationAware.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/CanonicalizationAware.java index 73e545326784..4936fffd46fe 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/CanonicalizationAware.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/CanonicalizationAware.java @@ -99,7 +99,7 @@ public static OptionalInt canonicalizationAwareHash(Node node) if (node instanceof Identifier) { return OptionalInt.of(((Identifier) node).getCanonicalValue().hashCode()); } - else if (node.getChildren().isEmpty()) { + if (node.getChildren().isEmpty()) { return OptionalInt.of(node.hashCode()); } return OptionalInt.empty(); diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java index 132a950ef4ed..afb1c4b4d82f 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java @@ -1816,9 +1816,7 @@ private ArgumentLabel validateLabelConsistency(FunctionCall node, boolean labelR if (labelRequired) { throw semanticException(INVALID_ARGUMENTS, node, "Pattern navigation function %s must contain at least one column reference or CLASSIFIER()", name); } - else { - return ArgumentLabel.noLabel(); - } + return ArgumentLabel.noLabel(); } // Label consistency rules: @@ -1876,12 +1874,12 @@ private ArgumentLabel validateLabelConsistency(FunctionCall node, boolean labelR if (!inputColumnLabels.isEmpty()) { return ArgumentLabel.explicitLabel(getOnlyElement(inputColumnLabels)); } - else if (!classifierLabels.isEmpty()) { + if (!classifierLabels.isEmpty()) { return getOnlyElement(classifierLabels) .map(ArgumentLabel::explicitLabel) .orElse(ArgumentLabel.universalLabel()); } - else if (!unlabeledInputColumns.isEmpty()) { + if (!unlabeledInputColumns.isEmpty()) { return ArgumentLabel.universalLabel(); } return ArgumentLabel.noLabel(); @@ -2508,9 +2506,7 @@ public Type visitGroupingOperation(GroupingOperation node, StackableAstVisitorCo if (node.getGroupingColumns().size() <= MAX_NUMBER_GROUPING_ARGUMENTS_INTEGER) { return setExpressionType(node, INTEGER); } - else { - return setExpressionType(node, BIGINT); - } + return setExpressionType(node, BIGINT); } @Override @@ -2807,12 +2803,10 @@ private ResolvedFunction getInputFunction(Type type, JsonFormat format, Node nod if (UNKNOWN.equals(type) || isCharacterStringType(type)) { yield QualifiedName.of(VARCHAR_TO_JSON); } - else if (isStringType(type)) { + if (isStringType(type)) { yield QualifiedName.of(VARBINARY_TO_JSON); } - else { - throw semanticException(TYPE_MISMATCH, node, format("Cannot read input of type %s as JSON using formatting %s", type, format)); - } + throw semanticException(TYPE_MISMATCH, node, format("Cannot read input of type %s as JSON using formatting %s", type, format)); } case UTF8 -> QualifiedName.of(VARBINARY_UTF8_TO_JSON); case UTF16 -> QualifiedName.of(VARBINARY_UTF16_TO_JSON); @@ -2834,12 +2828,10 @@ private ResolvedFunction getOutputFunction(Type type, JsonFormat format, Node no if (isCharacterStringType(type)) { yield QualifiedName.of(JSON_TO_VARCHAR); } - else if (isStringType(type)) { + if (isStringType(type)) { yield QualifiedName.of(JSON_TO_VARBINARY); } - else { - throw semanticException(TYPE_MISMATCH, node, format("Cannot output JSON value as %s using formatting %s", type, format)); - } + throw semanticException(TYPE_MISMATCH, node, format("Cannot output JSON value as %s using formatting %s", type, format)); } case UTF8 -> { if (!VARBINARY.equals(type)) { diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/RelationId.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/RelationId.java index e214bee84ae7..43a88a6ef454 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/RelationId.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/RelationId.java @@ -86,11 +86,9 @@ public String toString() .addValue(format("x%08x", identityHashCode(this))) .toString(); } - else { - return toStringHelper(this) - .addValue(sourceNode.get().getClass().getSimpleName()) - .addValue(format("x%08x", identityHashCode(sourceNode.get()))) - .toString(); - } + return toStringHelper(this) + .addValue(sourceNode.get().getClass().getSimpleName()) + .addValue(format("x%08x", identityHashCode(sourceNode.get()))) + .toString(); } } diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/Scope.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/Scope.java index 5f25fe8da060..138299100875 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/Scope.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/Scope.java @@ -248,7 +248,7 @@ private Optional resolveField(Expression node, QualifiedName name if (matches.size() > 1) { throw ambiguousAttributeException(node, name); } - else if (matches.size() == 1) { + if (matches.size() == 1) { int parentFieldCount = getLocalParent() .map(Scope::getLocalScopeFieldCount) .orElse(0); @@ -256,18 +256,16 @@ else if (matches.size() == 1) { Field field = getOnlyElement(matches); return Optional.of(asResolvedField(field, parentFieldCount, local)); } - else { - if (isColumnReference(name, relation)) { - return Optional.empty(); - } - if (parent.isPresent()) { - if (queryBoundary) { - return parent.get().resolveField(node, name, false); - } - return parent.get().resolveField(node, name, local); - } + if (isColumnReference(name, relation)) { return Optional.empty(); } + if (parent.isPresent()) { + if (queryBoundary) { + return parent.get().resolveField(node, name, false); + } + return parent.get().resolveField(node, name, local); + } + return Optional.empty(); } public ResolvedField getField(int index) diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java index 55bc43efe437..b898ec00f976 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java @@ -913,10 +913,8 @@ protected Scope visitCreateTableAsSelect(CreateTableAsSelect node, Optional scope) .orElseThrow(() -> semanticException(INVALID_VIEW, table, "Storage table '%s' does not exist", storageTableName)); return createScopeForMaterializedView(table, name, scope, optionalMaterializedView.get(), Optional.of(tableHandle)); } - else { - // This is a stale materialized view and should be expanded like a logical view - return createScopeForMaterializedView(table, name, scope, optionalMaterializedView.get(), Optional.empty()); - } + // This is a stale materialized view and should be expanded like a logical view + return createScopeForMaterializedView(table, name, scope, optionalMaterializedView.get(), Optional.empty()); } // This could be a reference to a logical view or a table @@ -4659,9 +4655,7 @@ private boolean analyzeLimit(Node node, Scope scope) if (node instanceof FetchFirst) { return analyzeLimit((FetchFirst) node, scope); } - else { - return analyzeLimit((Limit) node, scope); - } + return analyzeLimit((Limit) node, scope); } private boolean analyzeLimit(FetchFirst node, Scope scope) @@ -4719,28 +4713,26 @@ private OptionalLong analyzeParameterAsRowCount(Parameter parameter, Scope scope analysis.addCoercion(parameter, BIGINT, false); return OptionalLong.empty(); } - else { - // validate parameter index - analyzeExpression(parameter, scope); - Expression providedValue = analysis.getParameters().get(NodeRef.of(parameter)); - Object value; - try { - value = evaluateConstantExpression( - providedValue, - BIGINT, - plannerContext, - session, - accessControl, - analysis.getParameters()); - } - catch (VerifyException e) { - throw semanticException(INVALID_ARGUMENTS, parameter, "Non constant parameter value for %s: %s", context, providedValue); - } - if (value == null) { - throw semanticException(INVALID_ARGUMENTS, parameter, "Parameter value provided for %s is NULL: %s", context, providedValue); - } - return OptionalLong.of((long) value); + // validate parameter index + analyzeExpression(parameter, scope); + Expression providedValue = analysis.getParameters().get(NodeRef.of(parameter)); + Object value; + try { + value = evaluateConstantExpression( + providedValue, + BIGINT, + plannerContext, + session, + accessControl, + analysis.getParameters()); + } + catch (VerifyException e) { + throw semanticException(INVALID_ARGUMENTS, parameter, "Non constant parameter value for %s: %s", context, providedValue); + } + if (value == null) { + throw semanticException(INVALID_ARGUMENTS, parameter, "Parameter value provided for %s is NULL: %s", context, providedValue); } + return OptionalLong.of((long) value); } private Scope createAndAssignScope(Node node, Optional parentScope) diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/DomainCoercer.java b/core/trino-main/src/main/java/io/trino/sql/planner/DomainCoercer.java index 3118bcfa68f6..f8b85132bc18 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/DomainCoercer.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/DomainCoercer.java @@ -211,9 +211,7 @@ private Optional applySaturatedCast(Object originalValue) if (originalComparedToCoerced == 0) { return Optional.of(coercedFloorValue); } - else { - return Optional.empty(); - } + return Optional.empty(); } private int compareOriginalValueToCoerced(ResolvedFunction castToOriginalTypeOperator, MethodHandle comparisonOperator, Object originalValue, Object coercedValue) diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/GroupingOperationRewriter.java b/core/trino-main/src/main/java/io/trino/sql/planner/GroupingOperationRewriter.java index af2e053aaa30..3c9a6c115014 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/GroupingOperationRewriter.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/GroupingOperationRewriter.java @@ -51,29 +51,27 @@ public static Expression rewriteGroupingOperation(GroupingOperation expression, if (groupingSets.size() == 1) { return new LongLiteral("0"); } - else { - checkState(groupIdSymbol.isPresent(), "groupId symbol is missing"); + checkState(groupIdSymbol.isPresent(), "groupId symbol is missing"); - RelationId relationId = columnReferenceFields.get(NodeRef.of(expression.getGroupingColumns().get(0))).getFieldId().getRelationId(); + RelationId relationId = columnReferenceFields.get(NodeRef.of(expression.getGroupingColumns().get(0))).getFieldId().getRelationId(); - List columns = expression.getGroupingColumns().stream() - .map(NodeRef::of) - .peek(groupingColumn -> checkState(columnReferenceFields.containsKey(groupingColumn), "the grouping column is not in the columnReferencesField map")) - .map(columnReferenceFields::get) - .map(ResolvedField::getFieldId) - .map(fieldId -> translateFieldToInteger(fieldId, relationId)) - .collect(toImmutableList()); + List columns = expression.getGroupingColumns().stream() + .map(NodeRef::of) + .peek(groupingColumn -> checkState(columnReferenceFields.containsKey(groupingColumn), "the grouping column is not in the columnReferencesField map")) + .map(columnReferenceFields::get) + .map(ResolvedField::getFieldId) + .map(fieldId -> translateFieldToInteger(fieldId, relationId)) + .collect(toImmutableList()); - List groupingResults = groupingSets.stream() - .map(groupingSet -> String.valueOf(calculateGrouping(groupingSet, columns))) - .map(LongLiteral::new) - .collect(toImmutableList()); + List groupingResults = groupingSets.stream() + .map(groupingSet -> String.valueOf(calculateGrouping(groupingSet, columns))) + .map(LongLiteral::new) + .collect(toImmutableList()); - // It is necessary to add a 1 to the groupId because the underlying array is indexed starting at 1 - return new SubscriptExpression( - new ArrayConstructor(groupingResults), - new ArithmeticBinaryExpression(ADD, groupIdSymbol.get().toSymbolReference(), new GenericLiteral("BIGINT", "1"))); - } + // It is necessary to add a 1 to the groupId because the underlying array is indexed starting at 1 + return new SubscriptExpression( + new ArrayConstructor(groupingResults), + new ArithmeticBinaryExpression(ADD, groupIdSymbol.get().toSymbolReference(), new GenericLiteral("BIGINT", "1"))); } private static int translateFieldToInteger(FieldId fieldId, RelationId requiredOriginRelationId) diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java b/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java index 193545092f29..a5c515f4fc1a 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java @@ -1944,19 +1944,17 @@ else if (sourceNode instanceof SampleNode) { return new PhysicalOperation(operatorFactory, outputMappings, context); } - else { - Supplier pageProcessor = expressionCompiler.compilePageProcessor(translatedFilter, translatedProjections, Optional.of(context.getStageId() + "_" + planNodeId)); + Supplier pageProcessor = expressionCompiler.compilePageProcessor(translatedFilter, translatedProjections, Optional.of(context.getStageId() + "_" + planNodeId)); - OperatorFactory operatorFactory = FilterAndProjectOperator.createOperatorFactory( - context.getNextOperatorId(), - planNodeId, - pageProcessor, - getTypes(projections, expressionTypes), - getFilterAndProjectMinOutputPageSize(session), - getFilterAndProjectMinOutputPageRowCount(session)); + OperatorFactory operatorFactory = FilterAndProjectOperator.createOperatorFactory( + context.getNextOperatorId(), + planNodeId, + pageProcessor, + getTypes(projections, expressionTypes), + getFilterAndProjectMinOutputPageSize(session), + getFilterAndProjectMinOutputPageRowCount(session)); - return new PhysicalOperation(operatorFactory, outputMappings, context, source); - } + return new PhysicalOperation(operatorFactory, outputMappings, context, source); } catch (TrinoException e) { throw e; @@ -3935,28 +3933,26 @@ private OperatorFactory createHashAggregationOperatorFactory( aggregatorFactories, joinCompiler); } - else { - Optional hashChannel = hashSymbol.map(channelGetter(source)); - return new HashAggregationOperatorFactory( - context.getNextOperatorId(), - planNodeId, - groupByTypes, - groupByChannels, - ImmutableList.copyOf(globalGroupingSets), - step, - hasDefaultOutput, - aggregatorFactories, - hashChannel, - groupIdChannel, - expectedGroups, - maxPartialAggregationMemorySize, - spillEnabled, - unspillMemoryLimit, - spillerFactory, - joinCompiler, - blockTypeOperators, - createPartialAggregationController(step, session)); - } + Optional hashChannel = hashSymbol.map(channelGetter(source)); + return new HashAggregationOperatorFactory( + context.getNextOperatorId(), + planNodeId, + groupByTypes, + groupByChannels, + ImmutableList.copyOf(globalGroupingSets), + step, + hasDefaultOutput, + aggregatorFactories, + hashChannel, + groupIdChannel, + expectedGroups, + maxPartialAggregationMemorySize, + spillEnabled, + unspillMemoryLimit, + spillerFactory, + joinCompiler, + blockTypeOperators, + createPartialAggregationController(step, session)); } } @@ -3980,17 +3976,15 @@ private JoinBridge createLookupSourceFactory( buildOuter, blockTypeOperators); } - else { - return new io.trino.operator.join.unspilled.PartitionedLookupSourceFactory( - buildTypes, - buildOutputTypes, - buildChannels.stream() - .map(buildTypes::get) - .collect(toImmutableList()), - partitionCount, - buildOuter, - blockTypeOperators); - } + return new io.trino.operator.join.unspilled.PartitionedLookupSourceFactory( + buildTypes, + buildOutputTypes, + buildChannels.stream() + .map(buildTypes::get) + .collect(toImmutableList()), + partitionCount, + buildOuter, + blockTypeOperators); } private static Optional createPartialAggregationController(AggregationNode.Step step, Session session) @@ -4073,10 +4067,10 @@ private static TableFinisher createTableFinisher(Session session, TableFinishNod if (target instanceof CreateTarget) { return metadata.finishCreateTable(session, ((CreateTarget) target).getHandle(), fragments, statistics); } - else if (target instanceof InsertTarget) { + if (target instanceof InsertTarget) { return metadata.finishInsert(session, ((InsertTarget) target).getHandle(), fragments, statistics); } - else if (target instanceof TableWriterNode.RefreshMaterializedViewTarget) { + if (target instanceof TableWriterNode.RefreshMaterializedViewTarget) { TableWriterNode.RefreshMaterializedViewTarget refreshTarget = (TableWriterNode.RefreshMaterializedViewTarget) target; return metadata.finishRefreshMaterializedView( session, @@ -4086,27 +4080,25 @@ else if (target instanceof TableWriterNode.RefreshMaterializedViewTarget) { statistics, refreshTarget.getSourceTableHandles()); } - else if (target instanceof DeleteTarget) { + if (target instanceof DeleteTarget) { metadata.finishDelete(session, ((DeleteTarget) target).getHandleOrElseThrow(), fragments); return Optional.empty(); } - else if (target instanceof UpdateTarget) { + if (target instanceof UpdateTarget) { metadata.finishUpdate(session, ((UpdateTarget) target).getHandleOrElseThrow(), fragments); return Optional.empty(); } - else if (target instanceof TableExecuteTarget) { + if (target instanceof TableExecuteTarget) { TableExecuteHandle tableExecuteHandle = ((TableExecuteTarget) target).getExecuteHandle(); metadata.finishTableExecute(session, tableExecuteHandle, fragments, tableExecuteContext.getSplitsInfo()); return Optional.empty(); } - else if (target instanceof MergeTarget mergeTarget) { + if (target instanceof MergeTarget mergeTarget) { MergeHandle mergeHandle = mergeTarget.getMergeHandle().orElseThrow(() -> new IllegalArgumentException("mergeHandle not present")); metadata.finishMerge(session, mergeHandle, fragments, statistics); return Optional.empty(); } - else { - throw new AssertionError("Unhandled target type: " + target.getClass().getName()); - } + throw new AssertionError("Unhandled target type: " + target.getClass().getName()); }; } diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/Partitioning.java b/core/trino-main/src/main/java/io/trino/sql/planner/Partitioning.java index ca686bb8de09..78977f68e400 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/Partitioning.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/Partitioning.java @@ -141,26 +141,20 @@ private static boolean isPartitionedWith( Set mappedColumns = leftToRightMappings.apply(leftArgument.getColumn()); return mappedColumns.contains(rightArgument.getColumn()); } - else { - // variable == constant - // Normally, this would be a false condition, but if we happen to have an external - // mapping from the symbol to a constant value and that constant value matches the - // right value, then we are co-partitioned. - Optional leftConstant = leftConstantMapping.apply(leftArgument.getColumn()); - return leftConstant.isPresent() && leftConstant.get().equals(rightArgument.getConstant()); - } + // variable == constant + // Normally, this would be a false condition, but if we happen to have an external + // mapping from the symbol to a constant value and that constant value matches the + // right value, then we are co-partitioned. + Optional leftConstant = leftConstantMapping.apply(leftArgument.getColumn()); + return leftConstant.isPresent() && leftConstant.get().equals(rightArgument.getConstant()); } - else { - if (rightArgument.isConstant()) { - // constant == constant - return leftArgument.getConstant().equals(rightArgument.getConstant()); - } - else { - // constant == variable - Optional rightConstant = rightConstantMapping.apply(rightArgument.getColumn()); - return rightConstant.isPresent() && rightConstant.get().equals(leftArgument.getConstant()); - } + if (rightArgument.isConstant()) { + // constant == constant + return leftArgument.getConstant().equals(rightArgument.getConstant()); } + // constant == variable + Optional rightConstant = rightConstantMapping.apply(rightArgument.getColumn()); + return rightConstant.isPresent() && rightConstant.get().equals(leftArgument.getConstant()); } public boolean isPartitionedOn(Collection columns, Set knownConstants) diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/ScopeAware.java b/core/trino-main/src/main/java/io/trino/sql/planner/ScopeAware.java index d4ffef3c6f4f..ae3919ab1247 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/ScopeAware.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/ScopeAware.java @@ -138,13 +138,13 @@ private Boolean scopeAwareComparison(Node left, Node right) } // For references that come from the current query scope or an outer scope of the current // expression, compare by resolved field - else if (!leftFieldInSubqueryScope && !rightFieldInSubqueryScope) { + if (!leftFieldInSubqueryScope && !rightFieldInSubqueryScope) { return leftField.getFieldId().equals(rightField.getFieldId()); } // References come from different scopes return false; } - else if (leftExpression instanceof Identifier && rightExpression instanceof Identifier) { + if (leftExpression instanceof Identifier && rightExpression instanceof Identifier) { return treeEqual(leftExpression, rightExpression, CanonicalizationAware::canonicalizationAwareComparison); } } @@ -170,10 +170,10 @@ private OptionalInt scopeAwareHash(Node node) return OptionalInt.of(field.getFieldId().hashCode()); } - else if (expression instanceof Identifier) { + if (expression instanceof Identifier) { return OptionalInt.of(treeHash(expression, CanonicalizationAware::canonicalizationAwareHash)); } - else if (node.getChildren().isEmpty()) { + if (node.getChildren().isEmpty()) { // Calculate shallow hash since node doesn't have any children return OptionalInt.of(expression.hashCode()); } diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/GatherAndMergeWindows.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/GatherAndMergeWindows.java index 36e1ba5561a1..c72e921438c9 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/GatherAndMergeWindows.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/GatherAndMergeWindows.java @@ -221,9 +221,7 @@ protected Optional manipulateAdjacentWindowNodes(WindowNode parent, Wi restrictOutputs(context.getIdAllocator(), transposedWindows, ImmutableSet.copyOf(parent.getOutputSymbols())) .orElse(transposedWindows)); } - else { - return Optional.empty(); - } + return Optional.empty(); } private static int compare(WindowNode o1, WindowNode o2) @@ -291,11 +289,9 @@ private static int compareOrderBy(WindowNode o1, WindowNode o2) if (orderByComparison != 0) { return orderByComparison; } - else { - int sortOrderComparison = o1OrderingScheme.getOrdering(symbol1).compareTo(o2OrderingScheme.getOrdering(symbol2)); - if (sortOrderComparison != 0) { - return sortOrderComparison; - } + int sortOrderComparison = o1OrderingScheme.getOrdering(symbol1).compareTo(o2OrderingScheme.getOrdering(symbol2)); + if (sortOrderComparison != 0) { + return sortOrderComparison; } } diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/MergeLimitWithTopN.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/MergeLimitWithTopN.java index 722206216b2f..7a9386fae224 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/MergeLimitWithTopN.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/MergeLimitWithTopN.java @@ -72,9 +72,7 @@ public Result apply(LimitNode parent, Captures captures, Context context) if (parent.getCount() < child.getCount()) { return Result.empty(); } - else { - return Result.ofPlanNode(child); - } + return Result.ofPlanNode(child); } return Result.ofPlanNode( diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PruneDistinctAggregation.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PruneDistinctAggregation.java index 7f1f2eb545dc..ba8e1306ec83 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PruneDistinctAggregation.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PruneDistinctAggregation.java @@ -58,9 +58,7 @@ public Result apply(AggregationNode node, Captures captures, Context context) if (rewriter.isRewritten()) { return Result.ofPlanNode(replaceChildren(node, newSources)); } - else { - return Result.empty(); - } + return Result.empty(); } private static boolean isDistinctOperator(AggregationNode node) diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PushdownFilterIntoRowNumber.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PushdownFilterIntoRowNumber.java index cfce0e542cfc..3d99f735cf72 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PushdownFilterIntoRowNumber.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/PushdownFilterIntoRowNumber.java @@ -97,9 +97,7 @@ public Result apply(FilterNode node, Captures captures, Context context) if (needRewriteSource) { return Result.ofPlanNode(new FilterNode(node.getId(), source, node.getPredicate())); } - else { - return Result.empty(); - } + return Result.empty(); } TupleDomain newTupleDomain = tupleDomain.filter((symbol, domain) -> !symbol.equals(rowNumberSymbol)); diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ReplaceRedundantJoinWithProject.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ReplaceRedundantJoinWithProject.java index a6c9361c0dba..3f761f28b0fa 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ReplaceRedundantJoinWithProject.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ReplaceRedundantJoinWithProject.java @@ -82,7 +82,7 @@ public Result apply(JoinNode node, Captures captures, Context context) context.getIdAllocator(), context.getSymbolAllocator())); } - else if (!leftSourceEmpty && rightSourceEmpty) { + if (!leftSourceEmpty && rightSourceEmpty) { yield Result.ofPlanNode(appendNulls( node.getLeft(), node.getLeftOutputSymbols(), diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java index 47ce4c17308a..a3f592f921a7 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java @@ -370,9 +370,7 @@ protected Optional visitPlan(PlanNode node, PlanNode reference) if (isCorrelatedRecursively(node)) { return Optional.empty(); } - else { - return Optional.of(new Decorrelated(ImmutableList.of(), reference)); - } + return Optional.of(new Decorrelated(ImmutableList.of(), reference)); } private boolean isCorrelatedRecursively(PlanNode node) diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/UnwrapCastInComparison.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/UnwrapCastInComparison.java index e52d03885534..51c0d031edd2 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/UnwrapCastInComparison.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/UnwrapCastInComparison.java @@ -227,10 +227,8 @@ private Expression unwrapCast(ComparisonExpression expression) if (!typeHasNaN(sourceType)) { return TRUE_LITERAL; } - else { - // NaN on the right of comparison will be cast to source type later - break; - } + // NaN on the right of comparison will be cast to source type later + break; default: throw new UnsupportedOperationException("Not yet implemented: " + operator); } @@ -404,13 +402,11 @@ private boolean hasInjectiveImplicitCoercion(Type source, Type target, Object va Double.isNaN(doubleValue) || (doubleValue > -1L << 53 && doubleValue < 1L << 53); // in (-2^53, 2^53), bigint follows an injective implicit coercion w.r.t double } - else { - float realValue = intBitsToFloat(toIntExact((long) value)); - return (source.equals(BIGINT) && (realValue > Long.MAX_VALUE || realValue < Long.MIN_VALUE)) || - (source.equals(INTEGER) && (realValue > Integer.MAX_VALUE || realValue < Integer.MIN_VALUE)) || - Float.isNaN(realValue) || - (realValue > -1L << 23 && realValue < 1L << 23); // in (-2^23, 2^23), bigint (and integer) follows an injective implicit coercion w.r.t real - } + float realValue = intBitsToFloat(toIntExact((long) value)); + return (source.equals(BIGINT) && (realValue > Long.MAX_VALUE || realValue < Long.MIN_VALUE)) || + (source.equals(INTEGER) && (realValue > Integer.MAX_VALUE || realValue < Integer.MIN_VALUE)) || + Float.isNaN(realValue) || + (realValue > -1L << 23 && realValue < 1L << 23); // in (-2^23, 2^23), bigint (and integer) follows an injective implicit coercion w.r.t real } if (source instanceof DecimalType) { diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/ActualProperties.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/ActualProperties.java index 033ea5079075..af1066506313 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/ActualProperties.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/ActualProperties.java @@ -109,9 +109,7 @@ public boolean isStreamPartitionedOn(Collection columns, boolean nullsAn if (exactly) { return global.isStreamPartitionedOnExactly(columns, constants.keySet(), nullsAndAnyReplicated); } - else { - return global.isStreamPartitionedOn(columns, constants.keySet(), nullsAndAnyReplicated); - } + return global.isStreamPartitionedOn(columns, constants.keySet(), nullsAndAnyReplicated); } public boolean isNodePartitionedOn(Collection columns, boolean exactly) @@ -124,9 +122,7 @@ public boolean isNodePartitionedOn(Collection columns, boolean nullsAndA if (exactly) { return global.isNodePartitionedOnExactly(columns, constants.keySet(), nullsAndAnyReplicated); } - else { - return global.isNodePartitionedOn(columns, constants.keySet(), nullsAndAnyReplicated); - } + return global.isNodePartitionedOn(columns, constants.keySet(), nullsAndAnyReplicated); } public boolean isCompatibleTablePartitioningWith(Partitioning partitioning, boolean nullsAndAnyReplicated, Metadata metadata, Session session) diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/AddExchanges.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/AddExchanges.java index a9c88d98bc0a..d09790704647 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/AddExchanges.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/AddExchanges.java @@ -780,9 +780,7 @@ && isNodePartitionedOn(left.getProperties(), leftSymbols) && !left.getProperties return planReplicatedJoin(node, left); } - else { - return planPartitionedJoin(node, leftSymbols, rightSymbols); - } + return planPartitionedJoin(node, leftSymbols, rightSymbols); } private PlanWithProperties planPartitionedJoin(JoinNode node, List leftSymbols, List rightSymbols) @@ -1272,19 +1270,17 @@ private PlanWithProperties arbitraryDistributeUnion( // instead of "arbitraryPartition". return new PlanWithProperties(node.replaceChildren(partitionedChildren)); } - else { - // Trino currently cannot execute stage that has multiple table scans, so in that case - // we have to insert REMOTE exchange with FIXED_ARBITRARY_DISTRIBUTION instead of local exchange - return new PlanWithProperties( - new ExchangeNode( - idAllocator.getNextId(), - REPARTITION, - REMOTE, - new PartitioningScheme(Partitioning.create(FIXED_ARBITRARY_DISTRIBUTION, ImmutableList.of()), node.getOutputSymbols()), - partitionedChildren, - partitionedOutputLayouts, - Optional.empty())); - } + // Trino currently cannot execute stage that has multiple table scans, so in that case + // we have to insert REMOTE exchange with FIXED_ARBITRARY_DISTRIBUTION instead of local exchange + return new PlanWithProperties( + new ExchangeNode( + idAllocator.getNextId(), + REPARTITION, + REMOTE, + new PartitioningScheme(Partitioning.create(FIXED_ARBITRARY_DISTRIBUTION, ImmutableList.of()), node.getOutputSymbols()), + partitionedChildren, + partitionedOutputLayouts, + Optional.empty())); } @Override diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/MetadataQueryOptimizer.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/MetadataQueryOptimizer.java index 7b82987c7b3e..7f7e3cfd07e5 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/MetadataQueryOptimizer.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/MetadataQueryOptimizer.java @@ -162,9 +162,7 @@ public PlanNode visitAggregation(AggregationNode node, RewriteContext cont // partition key does not have a single value, so bail out to be safe return context.defaultRewrite(node); } - else { - rowBuilder.add(literalEncoder.toExpression(session, value.getValue(), type)); - } + rowBuilder.add(literalEncoder.toExpression(session, value.getValue(), type)); } rowsBuilder.add(new Row(rowBuilder.build())); } diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PlanNodeSearcher.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PlanNodeSearcher.java index 7f0ac26a3d8e..a04de1f5f41f 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PlanNodeSearcher.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PlanNodeSearcher.java @@ -201,12 +201,10 @@ private PlanNode removeFirstRecursive(PlanNode node) if (sources.isEmpty()) { return node; } - else if (sources.size() == 1) { + if (sources.size() == 1) { return replaceChildren(node, ImmutableList.of(removeFirstRecursive(sources.get(0)))); } - else { - throw new IllegalArgumentException("Unable to remove first node when a node has multiple children, use removeAll instead"); - } + throw new IllegalArgumentException("Unable to remove first node when a node has multiple children, use removeAll instead"); } return node; } @@ -248,12 +246,10 @@ private PlanNode replaceFirstRecursive(PlanNode node, PlanNode nodeToReplace) if (sources.isEmpty()) { return node; } - else if (sources.size() == 1) { + if (sources.size() == 1) { return replaceChildren(node, ImmutableList.of(replaceFirstRecursive(node, sources.get(0)))); } - else { - throw new IllegalArgumentException("Unable to replace first node when a node has multiple children, use replaceAll instead"); - } + throw new IllegalArgumentException("Unable to replace first node when a node has multiple children, use replaceAll instead"); } public boolean matches() diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PredicatePushDown.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PredicatePushDown.java index 9990cfe494f7..353506f8da14 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PredicatePushDown.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PredicatePushDown.java @@ -1154,24 +1154,22 @@ private JoinNode tryNormalizeToOuterToInnerJoin(JoinNode node, Expression inheri node.getDynamicFilters(), node.getReorderJoinStatsAndCost()); } - else { - return new JoinNode( - node.getId(), - canConvertToLeftJoin ? LEFT : RIGHT, - node.getLeft(), - node.getRight(), - node.getCriteria(), - node.getLeftOutputSymbols(), - node.getRightOutputSymbols(), - node.isMaySkipOutputDuplicates(), - node.getFilter(), - node.getLeftHashSymbol(), - node.getRightHashSymbol(), - node.getDistributionType(), - node.isSpillable(), - node.getDynamicFilters(), - node.getReorderJoinStatsAndCost()); - } + return new JoinNode( + node.getId(), + canConvertToLeftJoin ? LEFT : RIGHT, + node.getLeft(), + node.getRight(), + node.getCriteria(), + node.getLeftOutputSymbols(), + node.getRightOutputSymbols(), + node.isMaySkipOutputDuplicates(), + node.getFilter(), + node.getLeftHashSymbol(), + node.getRightHashSymbol(), + node.getDistributionType(), + node.isSpillable(), + node.getDynamicFilters(), + node.getReorderJoinStatsAndCost()); } if (node.getType() == JoinNode.Type.LEFT && !canConvertOuterToInner(node.getRight().getOutputSymbols(), inheritedPredicate) || diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PropertyDerivations.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PropertyDerivations.java index 1b831b18a403..444f03845499 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PropertyDerivations.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/PropertyDerivations.java @@ -964,7 +964,7 @@ public static Optional filterOrRewrite(Collection columns, Colle if (equality.getLeft().equals(column) && columns.contains(equality.getRight())) { return Optional.of(equality.getRight()); } - else if (equality.getRight().equals(column) && columns.contains(equality.getLeft())) { + if (equality.getRight().equals(column) && columns.contains(equality.getLeft())) { return Optional.of(equality.getLeft()); } } diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/QueryCardinalityUtil.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/QueryCardinalityUtil.java index 6a06d03f1750..2159e1c8d18d 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/QueryCardinalityUtil.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/QueryCardinalityUtil.java @@ -183,9 +183,7 @@ public Range visitOffset(OffsetNode node, Void context) if (sourceCardinalityRange.hasUpperBound()) { return Range.closed(lower, max(sourceCardinalityRange.upperEndpoint() - node.getCount(), 0L)); } - else { - return Range.atLeast(lower); - } + return Range.atLeast(lower); } @Override @@ -197,9 +195,7 @@ public Range visitLimit(LimitNode node, Void context) if (sourceCardinalityRange.hasUpperBound()) { return Range.closed(lower, sourceCardinalityRange.upperEndpoint()); } - else { - return Range.atLeast(lower); - } + return Range.atLeast(lower); } return applyLimit(node.getSource(), node.getCount()); diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/StreamPreferredProperties.java b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/StreamPreferredProperties.java index 4d81bcd8a9ec..3f0083d109e9 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/StreamPreferredProperties.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/StreamPreferredProperties.java @@ -183,10 +183,10 @@ public boolean isSatisfiedBy(StreamProperties actualProperties) if (distribution.get() == SINGLE && actualDistribution != SINGLE) { return false; } - else if (distribution.get() == FIXED && actualDistribution != FIXED) { + if (distribution.get() == FIXED && actualDistribution != FIXED) { return false; } - else if (distribution.get() == MULTIPLE && actualDistribution != FIXED && actualDistribution != MULTIPLE) { + if (distribution.get() == MULTIPLE && actualDistribution != FIXED && actualDistribution != MULTIPLE) { return false; } } diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/planprinter/CounterBasedAnonymizer.java b/core/trino-main/src/main/java/io/trino/sql/planner/planprinter/CounterBasedAnonymizer.java index 1a1d45bdc816..0a9ec9ecad56 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/planprinter/CounterBasedAnonymizer.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/planprinter/CounterBasedAnonymizer.java @@ -225,22 +225,22 @@ public String anonymize(WriterTarget target) if (target instanceof CreateTarget) { return anonymize((CreateTarget) target); } - else if (target instanceof InsertTarget) { + if (target instanceof InsertTarget) { return anonymize((InsertTarget) target); } - else if (target instanceof MergeTarget) { + if (target instanceof MergeTarget) { return anonymize((MergeTarget) target); } - else if (target instanceof RefreshMaterializedViewTarget) { + if (target instanceof RefreshMaterializedViewTarget) { return anonymize((RefreshMaterializedViewTarget) target); } - else if (target instanceof DeleteTarget) { + if (target instanceof DeleteTarget) { return anonymize((DeleteTarget) target); } - else if (target instanceof UpdateTarget) { + if (target instanceof UpdateTarget) { return anonymize((UpdateTarget) target); } - else if (target instanceof TableExecuteTarget) { + if (target instanceof TableExecuteTarget) { return anonymize((TableExecuteTarget) target); } throw new UnsupportedOperationException("Anonymization is not supported for WriterTarget type: " + target.getClass().getSimpleName()); diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/rowpattern/IrRowPatternFlattener.java b/core/trino-main/src/main/java/io/trino/sql/planner/rowpattern/IrRowPatternFlattener.java index 4778f2be9822..9d77c2383cf1 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/rowpattern/IrRowPatternFlattener.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/rowpattern/IrRowPatternFlattener.java @@ -118,9 +118,7 @@ protected IrRowPattern visitIrAlternation(IrAlternation node, Boolean inExclusio if (child instanceof IrAlternation) { return ((IrAlternation) child).getPatterns().stream(); } - else { - return Stream.of(child); - } + return Stream.of(child); }) .collect(toImmutableList()); @@ -174,9 +172,7 @@ protected IrRowPattern visitIrConcatenation(IrConcatenation node, Boolean inExcl if (child instanceof IrConcatenation) { return ((IrConcatenation) child).getPatterns().stream(); } - else { - return Stream.of(child); - } + return Stream.of(child); }) .filter(child -> !(child instanceof IrEmpty)) .collect(toImmutableList()); diff --git a/core/trino-main/src/main/java/io/trino/sql/relational/optimizer/ExpressionOptimizer.java b/core/trino-main/src/main/java/io/trino/sql/relational/optimizer/ExpressionOptimizer.java index 2deb772241af..25d5de77e612 100644 --- a/core/trino-main/src/main/java/io/trino/sql/relational/optimizer/ExpressionOptimizer.java +++ b/core/trino-main/src/main/java/io/trino/sql/relational/optimizer/ExpressionOptimizer.java @@ -130,9 +130,7 @@ public RowExpression visitSpecialForm(SpecialForm specialForm, Void context) return specialForm.getArguments().get(1).accept(this, context); } // FALSE and NULL - else { - return specialForm.getArguments().get(2).accept(this, context); - } + return specialForm.getArguments().get(2).accept(this, context); } List arguments = specialForm.getArguments().stream() .map(argument -> argument.accept(this, null)) diff --git a/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java b/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java index bd9461f2b92f..b5f05dbfa5ee 100644 --- a/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java +++ b/core/trino-main/src/main/java/io/trino/sql/rewrite/ShowQueriesRewrite.java @@ -373,13 +373,11 @@ protected Node visitShowRoles(ShowRoles node, Void context) .collect(toList()); return singleColumnValues(rows, "Role"); } - else { - accessControl.checkCanShowRoles(session.toSecurityContext(), catalog); - List rows = metadata.listRoles(session, catalog).stream() - .map(role -> row(new StringLiteral(role))) - .collect(toList()); - return singleColumnValues(rows, "Role"); - } + accessControl.checkCanShowRoles(session.toSecurityContext(), catalog); + List rows = metadata.listRoles(session, catalog).stream() + .map(role -> row(new StringLiteral(role))) + .collect(toList()); + return singleColumnValues(rows, "Role"); } @Override diff --git a/core/trino-main/src/main/java/io/trino/transaction/InMemoryTransactionManager.java b/core/trino-main/src/main/java/io/trino/transaction/InMemoryTransactionManager.java index 8df986833457..6d359a64b4c8 100644 --- a/core/trino-main/src/main/java/io/trino/transaction/InMemoryTransactionManager.java +++ b/core/trino-main/src/main/java/io/trino/transaction/InMemoryTransactionManager.java @@ -375,9 +375,7 @@ public void checkOpenTransaction() // Should not happen normally throw new IllegalStateException("Current transaction already committed"); } - else { - throw new TrinoException(TRANSACTION_ALREADY_ABORTED, "Current transaction is aborted, commands ignored until end of transaction block"); - } + throw new TrinoException(TRANSACTION_ALREADY_ABORTED, "Current transaction is aborted, commands ignored until end of transaction block"); } } diff --git a/core/trino-main/src/main/java/io/trino/type/LikeFunctions.java b/core/trino-main/src/main/java/io/trino/type/LikeFunctions.java index 23826d98b37c..f3c9e1ecc59e 100644 --- a/core/trino-main/src/main/java/io/trino/type/LikeFunctions.java +++ b/core/trino-main/src/main/java/io/trino/type/LikeFunctions.java @@ -54,9 +54,7 @@ public static boolean likeVarchar(@SqlType("varchar(x)") Slice value, @SqlType(L if (value.hasByteArray()) { return matcher.match(value.byteArray(), value.byteArrayOffset(), value.length()); } - else { - return matcher.match(value.getBytes(), 0, value.length()); - } + return matcher.match(value.getBytes(), 0, value.length()); } @ScalarFunction(value = LIKE_PATTERN_FUNCTION_NAME, hidden = true) diff --git a/core/trino-main/src/main/java/io/trino/type/TypeUtils.java b/core/trino-main/src/main/java/io/trino/type/TypeUtils.java index 2d017e8cc54b..3f2f330c68a1 100644 --- a/core/trino-main/src/main/java/io/trino/type/TypeUtils.java +++ b/core/trino-main/src/main/java/io/trino/type/TypeUtils.java @@ -113,9 +113,7 @@ private static String getRowDisplayLabelForLegacyClients(RowType type) if (field.getName().isPresent()) { return field.getName().get() + ' ' + typeDisplayName; } - else { - return typeDisplayName; - } + return typeDisplayName; }) .collect(toImmutableList()); diff --git a/core/trino-main/src/main/java/io/trino/util/DateTimeZoneIndex.java b/core/trino-main/src/main/java/io/trino/util/DateTimeZoneIndex.java index 62902c4213f8..3a014450dc91 100644 --- a/core/trino-main/src/main/java/io/trino/util/DateTimeZoneIndex.java +++ b/core/trino-main/src/main/java/io/trino/util/DateTimeZoneIndex.java @@ -97,8 +97,6 @@ public static int extractZoneOffsetMinutes(long epochMillis, short zoneKey) if (FIXED_ZONE_OFFSET[zoneKey] == VARIABLE_ZONE) { return DATE_TIME_ZONES[zoneKey].getOffset(epochMillis) / 60_000; } - else { - return FIXED_ZONE_OFFSET[zoneKey]; - } + return FIXED_ZONE_OFFSET[zoneKey]; } } diff --git a/core/trino-main/src/main/java/io/trino/util/DisjointSet.java b/core/trino-main/src/main/java/io/trino/util/DisjointSet.java index 8eb5343d9b39..8100185b95bb 100644 --- a/core/trino-main/src/main/java/io/trino/util/DisjointSet.java +++ b/core/trino-main/src/main/java/io/trino/util/DisjointSet.java @@ -120,11 +120,9 @@ private T findInternal(T element) if (value.getParent() == null) { return element; } - else { - T root = findInternal(value.getParent()); - value.setParent(root); - return root; - } + T root = findInternal(value.getParent()); + value.setParent(root); + return root; } public Collection> getEquivalentClasses() diff --git a/core/trino-main/src/main/java/io/trino/util/FastutilSetHelper.java b/core/trino-main/src/main/java/io/trino/util/FastutilSetHelper.java index 2963e9ab19d9..e6373cc62547 100644 --- a/core/trino-main/src/main/java/io/trino/util/FastutilSetHelper.java +++ b/core/trino-main/src/main/java/io/trino/util/FastutilSetHelper.java @@ -65,12 +65,10 @@ public static Set toFastutilHashSet(Set set, Type type, MethodHandle hashC if (javaElementType == boolean.class) { return new BooleanOpenHashSet((Collection) set, 0.25f); } - else if (!type.getJavaType().isPrimitive()) { + if (!type.getJavaType().isPrimitive()) { return new ObjectOpenCustomHashSet<>(set, 0.25f, new ObjectStrategy(hashCodeHandle, equalsHandle, type)); } - else { - throw new UnsupportedOperationException("Unsupported native type in set: " + type.getJavaType() + " with type " + type.getTypeSignature()); - } + throw new UnsupportedOperationException("Unsupported native type in set: " + type.getJavaType() + " with type " + type.getTypeSignature()); } public static boolean in(boolean booleanValue, BooleanOpenHashSet set) diff --git a/core/trino-main/src/main/java/io/trino/util/JsonUtil.java b/core/trino-main/src/main/java/io/trino/util/JsonUtil.java index 50dcb5561e27..1b14f5de8caf 100644 --- a/core/trino-main/src/main/java/io/trino/util/JsonUtil.java +++ b/core/trino-main/src/main/java/io/trino/util/JsonUtil.java @@ -133,9 +133,7 @@ public static String truncateIfNecessaryForErrorMessage(Slice json) if (json.length() <= MAX_JSON_LENGTH_IN_ERROR_MESSAGE) { return json.toStringUtf8(); } - else { - return json.slice(0, MAX_JSON_LENGTH_IN_ERROR_MESSAGE).toStringUtf8() + "...(truncated)"; - } + return json.slice(0, MAX_JSON_LENGTH_IN_ERROR_MESSAGE).toStringUtf8() + "...(truncated)"; } public static boolean canCastToJson(Type type) diff --git a/core/trino-main/src/main/java/io/trino/util/MoreMath.java b/core/trino-main/src/main/java/io/trino/util/MoreMath.java index 06820b18b384..402e0056108d 100644 --- a/core/trino-main/src/main/java/io/trino/util/MoreMath.java +++ b/core/trino-main/src/main/java/io/trino/util/MoreMath.java @@ -34,14 +34,12 @@ public static boolean nearlyEqual(double a, double b, double epsilon) if (a == b) { // shortcut, handles infinities return true; } - else if (a == 0 || b == 0 || diff < Double.MIN_NORMAL) { + if (a == 0 || b == 0 || diff < Double.MIN_NORMAL) { // a or b is zero or both are extremely close to it // relative error is less meaningful here return diff < (epsilon * Double.MIN_NORMAL); - } - else { // use relative error - return diff / Math.min((absA + absB), Double.MAX_VALUE) < epsilon; - } + } // use relative error + return diff / Math.min((absA + absB), Double.MAX_VALUE) < epsilon; } /** @@ -56,14 +54,12 @@ public static boolean nearlyEqual(float a, float b, float epsilon) if (a == b) { // shortcut, handles infinities return true; } - else if (a == 0 || b == 0 || diff < Float.MIN_NORMAL) { + if (a == 0 || b == 0 || diff < Float.MIN_NORMAL) { // a or b is zero or both are extremely close to it // relative error is less meaningful here return diff < (epsilon * Float.MIN_NORMAL); - } - else { // use relative error - return diff / Math.min((absA + absB), Float.MAX_VALUE) < epsilon; - } + } // use relative error + return diff / Math.min((absA + absB), Float.MAX_VALUE) < epsilon; } public static double min(double... values) diff --git a/core/trino-main/src/main/java/io/trino/util/Optionals.java b/core/trino-main/src/main/java/io/trino/util/Optionals.java index dc5fd6f8f684..3d9e29977952 100644 --- a/core/trino-main/src/main/java/io/trino/util/Optionals.java +++ b/core/trino-main/src/main/java/io/trino/util/Optionals.java @@ -26,11 +26,9 @@ public static Optional combine(Optional left, Optional right, Binar if (left.isPresent() && right.isPresent()) { return Optional.of(combiner.apply(left.get(), right.get())); } - else if (left.isPresent()) { + if (left.isPresent()) { return left; } - else { - return right; - } + return right; } } diff --git a/core/trino-main/src/test/java/io/trino/block/AbstractTestBlock.java b/core/trino-main/src/test/java/io/trino/block/AbstractTestBlock.java index 95a38b7d5c3e..456d0d98eb67 100644 --- a/core/trino-main/src/test/java/io/trino/block/AbstractTestBlock.java +++ b/core/trino-main/src/test/java/io/trino/block/AbstractTestBlock.java @@ -404,9 +404,7 @@ private static long getCompactedBlockSizeInBytes(Block block) // dictionary blocks might become unwrapped when copyRegion is called on a block that is already compact return ((DictionaryBlock) block).compact().getSizeInBytes(); } - else { - return copyBlockViaCopyRegion(block).getSizeInBytes(); - } + return copyBlockViaCopyRegion(block).getSizeInBytes(); } private static Block copyBlockViaCopyRegion(Block block) diff --git a/core/trino-main/src/test/java/io/trino/metadata/TestSignatureBinder.java b/core/trino-main/src/test/java/io/trino/metadata/TestSignatureBinder.java index 11cab519d155..9cfa25ccb960 100644 --- a/core/trino-main/src/test/java/io/trino/metadata/TestSignatureBinder.java +++ b/core/trino-main/src/test/java/io/trino/metadata/TestSignatureBinder.java @@ -1239,9 +1239,7 @@ private Optional bindVariables() if (returnType == null) { return signatureBinder.bindVariables(argumentTypes); } - else { - return signatureBinder.bindVariables(argumentTypes, returnType.getTypeSignature()); - } + return signatureBinder.bindVariables(argumentTypes, returnType.getTypeSignature()); } } } diff --git a/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java b/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java index bc57a56041b6..8d3b708b14b7 100644 --- a/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java +++ b/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java @@ -239,9 +239,7 @@ private static Page createPage(List types, int positions, boolea if (dictionary) { return SequencePageBuilder.createSequencePageWithDictionaryBlocks(types, positions); } - else { - return SequencePageBuilder.createSequencePage(types, positions); - } + return SequencePageBuilder.createSequencePage(types, positions); } } diff --git a/core/trino-main/src/test/java/io/trino/operator/TestExchangeOperator.java b/core/trino-main/src/test/java/io/trino/operator/TestExchangeOperator.java index 3bc935e7e01e..f2b820946cf7 100644 --- a/core/trino-main/src/test/java/io/trino/operator/TestExchangeOperator.java +++ b/core/trino-main/src/test/java/io/trino/operator/TestExchangeOperator.java @@ -292,9 +292,7 @@ private static List waitForPages(Operator operator, int expectedPageCount) greaterThanZero = true; break; } - else { - Thread.sleep(10); - } + Thread.sleep(10); } assertTrue(greaterThanZero); diff --git a/core/trino-main/src/test/java/io/trino/operator/TestingExchangeHttpClientHandler.java b/core/trino-main/src/test/java/io/trino/operator/TestingExchangeHttpClientHandler.java index a800874367da..a93c1a5c680e 100644 --- a/core/trino-main/src/test/java/io/trino/operator/TestingExchangeHttpClientHandler.java +++ b/core/trino-main/src/test/java/io/trino/operator/TestingExchangeHttpClientHandler.java @@ -88,7 +88,7 @@ public Response handle(Request request) output.writeBytes(serializedPage); return new TestingResponse(HttpStatus.OK, headers.build(), output.slice().getInput()); } - else if (taskBuffer.isFinished()) { + if (taskBuffer.isFinished()) { headers.put(TRINO_PAGE_NEXT_TOKEN, String.valueOf(pageToken)); headers.put(TRINO_BUFFER_COMPLETE, String.valueOf(true)); DynamicSliceOutput output = new DynamicSliceOutput(8); @@ -97,10 +97,8 @@ else if (taskBuffer.isFinished()) { output.writeInt(0); return new TestingResponse(HttpStatus.OK, headers.build(), output.slice().getInput()); } - else { - headers.put(TRINO_PAGE_NEXT_TOKEN, String.valueOf(pageToken)); - headers.put(TRINO_BUFFER_COMPLETE, String.valueOf(false)); - return new TestingResponse(HttpStatus.NO_CONTENT, headers.build(), new byte[0]); - } + headers.put(TRINO_PAGE_NEXT_TOKEN, String.valueOf(pageToken)); + headers.put(TRINO_BUFFER_COMPLETE, String.valueOf(false)); + return new TestingResponse(HttpStatus.NO_CONTENT, headers.build(), new byte[0]); } } diff --git a/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateCountDistinct.java b/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateCountDistinct.java index e2a55f3a8313..6af897c3231f 100644 --- a/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateCountDistinct.java +++ b/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateCountDistinct.java @@ -164,11 +164,9 @@ private Page createPage(List values, double maxStandardError) if (values.isEmpty()) { return new Page(0); } - else { - return new Page(values.size(), - createBlock(getValueType(), values), - createBlock(DOUBLE, ImmutableList.copyOf(Collections.nCopies(values.size(), maxStandardError)))); - } + return new Page(values.size(), + createBlock(getValueType(), values), + createBlock(DOUBLE, ImmutableList.copyOf(Collections.nCopies(values.size(), maxStandardError)))); } /** diff --git a/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateSetGeneric.java b/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateSetGeneric.java index b5304fbd0179..26a0f2f265b8 100644 --- a/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateSetGeneric.java +++ b/core/trino-main/src/test/java/io/trino/operator/aggregation/AbstractTestApproximateSetGeneric.java @@ -190,9 +190,7 @@ private Page createPage(List values) if (values.isEmpty()) { return new Page(0); } - else { - return new Page(values.size(), createBlock(getValueType(), values)); - } + return new Page(values.size(), createBlock(getValueType(), values)); } /** diff --git a/core/trino-main/src/test/java/io/trino/operator/aggregation/groupby/GroupByAggregationTestUtils.java b/core/trino-main/src/test/java/io/trino/operator/aggregation/groupby/GroupByAggregationTestUtils.java index d46f9df67f9f..1a4a9503d67c 100644 --- a/core/trino-main/src/test/java/io/trino/operator/aggregation/groupby/GroupByAggregationTestUtils.java +++ b/core/trino-main/src/test/java/io/trino/operator/aggregation/groupby/GroupByAggregationTestUtils.java @@ -35,18 +35,16 @@ public static Page[] createPages(Block[] blocks) if (positions == 0) { return new Page[] {}; } - else if (positions == 1) { + if (positions == 1) { return new Page[] {new Page(positions, blocks)}; } - else { - int split = positions / 2; // [0, split - 1] goes to first list of blocks; [split, positions - 1] goes to second list of blocks. - Block[] blockArray1 = new Block[blocks.length]; - Block[] blockArray2 = new Block[blocks.length]; - for (int i = 0; i < blocks.length; i++) { - blockArray1[i] = blocks[i].getRegion(0, split); - blockArray2[i] = blocks[i].getRegion(split, positions - split); - } - return new Page[] {new Page(blockArray1), new Page(blockArray2)}; + int split = positions / 2; // [0, split - 1] goes to first list of blocks; [split, positions - 1] goes to second list of blocks. + Block[] blockArray1 = new Block[blocks.length]; + Block[] blockArray2 = new Block[blocks.length]; + for (int i = 0; i < blocks.length; i++) { + blockArray1[i] = blocks[i].getRegion(0, split); + blockArray2[i] = blocks[i].getRegion(split, positions - split); } + return new Page[] {new Page(blockArray1), new Page(blockArray2)}; } } diff --git a/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToArrayCast.java b/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToArrayCast.java index a2497c0f6367..0d1cb166ec82 100644 --- a/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToArrayCast.java +++ b/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToArrayCast.java @@ -141,10 +141,10 @@ private static String generateRandomJsonValue(Type valueType) if (valueType == BIGINT) { return Long.toString(ThreadLocalRandom.current().nextLong()); } - else if (valueType == DOUBLE) { + if (valueType == DOUBLE) { return Double.toString(ThreadLocalRandom.current().nextDouble()); } - else if (valueType == VARCHAR) { + if (valueType == VARCHAR) { String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; int length = ThreadLocalRandom.current().nextInt(10) + 1; @@ -156,9 +156,7 @@ else if (valueType == VARCHAR) { builder.append('"'); return builder.toString(); } - else { - throw new UnsupportedOperationException(); - } + throw new UnsupportedOperationException(); } public PageProcessor getPageProcessor() diff --git a/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToMapCast.java b/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToMapCast.java index 80df4518f490..8bb2df88515d 100644 --- a/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToMapCast.java +++ b/core/trino-main/src/test/java/io/trino/operator/scalar/BenchmarkJsonToMapCast.java @@ -147,10 +147,10 @@ private static String generateRandomJsonValue(Type valueType) if (valueType == BIGINT) { return Long.toString(ThreadLocalRandom.current().nextLong()); } - else if (valueType == DOUBLE) { + if (valueType == DOUBLE) { return Double.toString(ThreadLocalRandom.current().nextDouble()); } - else if (valueType == VARCHAR) { + if (valueType == VARCHAR) { String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; int length = ThreadLocalRandom.current().nextInt(10) + 1; @@ -162,9 +162,7 @@ else if (valueType == VARCHAR) { builder.append('"'); return builder.toString(); } - else { - throw new UnsupportedOperationException(); - } + throw new UnsupportedOperationException(); } public PageProcessor getPageProcessor() diff --git a/core/trino-main/src/test/java/io/trino/operator/scalar/FunctionAssertions.java b/core/trino-main/src/test/java/io/trino/operator/scalar/FunctionAssertions.java index 3c7f9eeca120..35ec196b159a 100644 --- a/core/trino-main/src/test/java/io/trino/operator/scalar/FunctionAssertions.java +++ b/core/trino-main/src/test/java/io/trino/operator/scalar/FunctionAssertions.java @@ -783,21 +783,19 @@ private Object interpret(Expression expression, Type expectedType, Session sessi if (javaType == boolean.class) { return type.getBoolean(block, position); } - else if (javaType == long.class) { + if (javaType == long.class) { return type.getLong(block, position); } - else if (javaType == double.class) { + if (javaType == double.class) { return type.getDouble(block, position); } - else if (javaType == Slice.class) { + if (javaType == Slice.class) { return type.getSlice(block, position); } - else if (javaType == Block.class || javaType == Int128.class) { + if (javaType == Block.class || javaType == Int128.class) { return type.getObject(block, position); } - else { - throw new UnsupportedOperationException("not yet implemented"); - } + throw new UnsupportedOperationException("not yet implemented"); }); // convert result from stack type to Type ObjectValue @@ -953,9 +951,7 @@ public ConnectorPageSource createPageSource(Session session, Split split, TableH .build(); return new RecordPageSource(records); } - else { - return new FixedPageSource(ImmutableList.of(SOURCE_PAGE)); - } + return new FixedPageSource(ImmutableList.of(SOURCE_PAGE)); } } diff --git a/core/trino-main/src/test/java/io/trino/spiller/TestAesSpillCipher.java b/core/trino-main/src/test/java/io/trino/spiller/TestAesSpillCipher.java index 46fb5d1868ef..a1abbbb0cc48 100644 --- a/core/trino-main/src/test/java/io/trino/spiller/TestAesSpillCipher.java +++ b/core/trino-main/src/test/java/io/trino/spiller/TestAesSpillCipher.java @@ -56,9 +56,7 @@ private static byte[] encryptExact(SpillCipher cipher, byte[] data) if (output.length == outLength) { return output; } - else { - return Arrays.copyOfRange(output, 0, outLength); - } + return Arrays.copyOfRange(output, 0, outLength); } private static byte[] decryptExact(SpillCipher cipher, byte[] encryptedData) @@ -68,9 +66,7 @@ private static byte[] decryptExact(SpillCipher cipher, byte[] encryptedData) if (outLength == output.length) { return output; } - else { - return Arrays.copyOfRange(output, 0, outLength); - } + return Arrays.copyOfRange(output, 0, outLength); } private static void assertFailure(ThrowingRunnable runnable, String expectedErrorMessage) diff --git a/core/trino-main/src/test/java/io/trino/sql/gen/BenchmarkPageProcessor2.java b/core/trino-main/src/test/java/io/trino/sql/gen/BenchmarkPageProcessor2.java index a142146a0d52..fa038e54bf53 100644 --- a/core/trino-main/src/test/java/io/trino/sql/gen/BenchmarkPageProcessor2.java +++ b/core/trino-main/src/test/java/io/trino/sql/gen/BenchmarkPageProcessor2.java @@ -189,9 +189,7 @@ private static Page createPage(List types, boolean dictionary) if (dictionary) { return SequencePageBuilder.createSequencePageWithDictionaryBlocks(types, POSITIONS); } - else { - return SequencePageBuilder.createSequencePage(types, POSITIONS); - } + return SequencePageBuilder.createSequencePage(types, POSITIONS); } public static void main(String[] args) diff --git a/core/trino-main/src/test/java/io/trino/sql/planner/TestTableScanRedirectionWithPushdown.java b/core/trino-main/src/test/java/io/trino/sql/planner/TestTableScanRedirectionWithPushdown.java index fa64db21371a..0b1d58788edc 100644 --- a/core/trino-main/src/test/java/io/trino/sql/planner/TestTableScanRedirectionWithPushdown.java +++ b/core/trino-main/src/test/java/io/trino/sql/planner/TestTableScanRedirectionWithPushdown.java @@ -337,7 +337,7 @@ private LocalQueryRunner createLocalQueryRunner( new ColumnMetadata(SOURCE_COLUMN_NAME_C, VARCHAR), new ColumnMetadata(SOURCE_COLUMN_NAME_D, ROW_TYPE)); } - else if (name.equals(DESTINATION_TABLE)) { + if (name.equals(DESTINATION_TABLE)) { return ImmutableList.of( new ColumnMetadata(DESTINATION_COLUMN_NAME_A, INTEGER), new ColumnMetadata(DESTINATION_COLUMN_NAME_B, INTEGER), diff --git a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/CorrelationMatcher.java b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/CorrelationMatcher.java index 7243f6c4e984..ed6253d641f3 100644 --- a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/CorrelationMatcher.java +++ b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/CorrelationMatcher.java @@ -72,12 +72,10 @@ private List getCorrelation(PlanNode node) if (node instanceof ApplyNode) { return ((ApplyNode) node).getCorrelation(); } - else if (node instanceof CorrelatedJoinNode) { + if (node instanceof CorrelatedJoinNode) { return ((CorrelatedJoinNode) node).getCorrelation(); } - else { - throw new IllegalStateException("Unexpected plan node: " + node); - } + throw new IllegalStateException("Unexpected plan node: " + node); } @Override diff --git a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/ExpressionMatcher.java b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/ExpressionMatcher.java index 941721e83c0c..fcc39625005f 100644 --- a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/ExpressionMatcher.java +++ b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/ExpressionMatcher.java @@ -96,13 +96,11 @@ private static Map getAssignments(PlanNode node) ProjectNode projectNode = (ProjectNode) node; return projectNode.getAssignments().getMap(); } - else if (node instanceof ApplyNode) { + if (node instanceof ApplyNode) { ApplyNode applyNode = (ApplyNode) node; return applyNode.getSubqueryAssignments().getMap(); } - else { - return null; - } + return null; } @Override diff --git a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/MatchResult.java b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/MatchResult.java index 8470f2aded8f..4e53c5a4f952 100644 --- a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/MatchResult.java +++ b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/MatchResult.java @@ -69,8 +69,6 @@ public String toString() if (matches) { return "MATCH"; } - else { - return "NO MATCH"; - } + return "NO MATCH"; } } diff --git a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/PlanMatchPattern.java b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/PlanMatchPattern.java index a808ba0f85f3..e4048a1e321c 100644 --- a/core/trino-main/src/test/java/io/trino/sql/planner/assertions/PlanMatchPattern.java +++ b/core/trino-main/src/test/java/io/trino/sql/planner/assertions/PlanMatchPattern.java @@ -1389,19 +1389,13 @@ public SortOrder getSortOrder() if (nullOrdering == FIRST) { return ASC_NULLS_FIRST; } - else { - return ASC_NULLS_LAST; - } + return ASC_NULLS_LAST; } - else { - checkState(ordering == DESCENDING); - if (nullOrdering == FIRST) { - return DESC_NULLS_FIRST; - } - else { - return DESC_NULLS_LAST; - } + checkState(ordering == DESCENDING); + if (nullOrdering == FIRST) { + return DESC_NULLS_FIRST; } + return DESC_NULLS_LAST; } @Override diff --git a/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestApplyTableScanRedirection.java b/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestApplyTableScanRedirection.java index 760c49f08519..0783932d6713 100644 --- a/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestApplyTableScanRedirection.java +++ b/core/trino-main/src/test/java/io/trino/sql/planner/iterative/rule/TestApplyTableScanRedirection.java @@ -281,7 +281,7 @@ private MockConnectorFactory createMockFactory(Optional T getObject(int position, Class clazz) if (position % 2 == 0) { return getRawKeyBlock().getObject(position / 2, clazz); } - else { - return getRawValueBlock().getObject(position / 2, clazz); - } + return getRawValueBlock().getObject(position / 2, clazz); } @Override @@ -219,9 +193,7 @@ public Block getSingleValueBlock(int position) if (position % 2 == 0) { return getRawKeyBlock().getSingleValueBlock(position / 2); } - else { - return getRawValueBlock().getSingleValueBlock(position / 2); - } + return getRawValueBlock().getSingleValueBlock(position / 2); } @Override @@ -231,9 +203,7 @@ public long getEstimatedDataSizeForStats(int position) if (position % 2 == 0) { return getRawKeyBlock().getEstimatedDataSizeForStats(position / 2); } - else { - return getRawValueBlock().getEstimatedDataSizeForStats(position / 2); - } + return getRawValueBlock().getEstimatedDataSizeForStats(position / 2); } @Override diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/ByteArrayBlockEncoding.java b/core/trino-spi/src/main/java/io/trino/spi/block/ByteArrayBlockEncoding.java index 3d4486e797ef..0fc86d4549d1 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/block/ByteArrayBlockEncoding.java +++ b/core/trino-spi/src/main/java/io/trino/spi/block/ByteArrayBlockEncoding.java @@ -111,7 +111,7 @@ private Slice getValuesSlice(Block block) if (block instanceof ByteArrayBlock) { return ((ByteArrayBlock) block).getValuesSlice(); } - else if (block instanceof ByteArrayBlockBuilder) { + if (block instanceof ByteArrayBlockBuilder) { return ((ByteArrayBlockBuilder) block).getValuesSlice(); } diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/Int128ArrayBlockEncoding.java b/core/trino-spi/src/main/java/io/trino/spi/block/Int128ArrayBlockEncoding.java index 45625b697d24..6ce731e4e8cc 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/block/Int128ArrayBlockEncoding.java +++ b/core/trino-spi/src/main/java/io/trino/spi/block/Int128ArrayBlockEncoding.java @@ -90,7 +90,7 @@ private Slice getValuesSlice(Block block) if (block instanceof Int128ArrayBlock) { return ((Int128ArrayBlock) block).getValuesSlice(); } - else if (block instanceof Int128ArrayBlockBuilder) { + if (block instanceof Int128ArrayBlockBuilder) { return ((Int128ArrayBlockBuilder) block).getValuesSlice(); } diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/Int96ArrayBlockEncoding.java b/core/trino-spi/src/main/java/io/trino/spi/block/Int96ArrayBlockEncoding.java index 8e9da83a5be5..c94421cbfafe 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/block/Int96ArrayBlockEncoding.java +++ b/core/trino-spi/src/main/java/io/trino/spi/block/Int96ArrayBlockEncoding.java @@ -121,7 +121,7 @@ private Slice getHighSlice(Block block) if (block instanceof Int96ArrayBlock) { return ((Int96ArrayBlock) block).getHighSlice(); } - else if (block instanceof Int96ArrayBlockBuilder) { + if (block instanceof Int96ArrayBlockBuilder) { return ((Int96ArrayBlockBuilder) block).getHighSlice(); } @@ -133,7 +133,7 @@ private Slice getLowSlice(Block block) if (block instanceof Int96ArrayBlock) { return ((Int96ArrayBlock) block).getLowSlice(); } - else if (block instanceof Int96ArrayBlockBuilder) { + if (block instanceof Int96ArrayBlockBuilder) { return ((Int96ArrayBlockBuilder) block).getLowSlice(); } diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlockEncoding.java b/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlockEncoding.java index 86483ca9be0a..038ee2b98ee8 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlockEncoding.java +++ b/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlockEncoding.java @@ -111,7 +111,7 @@ private Slice getValuesSlice(Block block) if (block instanceof IntArrayBlock) { return ((IntArrayBlock) block).getValuesSlice(); } - else if (block instanceof IntArrayBlockBuilder) { + if (block instanceof IntArrayBlockBuilder) { return ((IntArrayBlockBuilder) block).getValuesSlice(); } diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/LongArrayBlockEncoding.java b/core/trino-spi/src/main/java/io/trino/spi/block/LongArrayBlockEncoding.java index 14819c8d363b..b453e854d114 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/block/LongArrayBlockEncoding.java +++ b/core/trino-spi/src/main/java/io/trino/spi/block/LongArrayBlockEncoding.java @@ -111,7 +111,7 @@ private Slice getValuesSlice(Block block) if (block instanceof LongArrayBlock) { return ((LongArrayBlock) block).getValuesSlice(); } - else if (block instanceof LongArrayBlockBuilder) { + if (block instanceof LongArrayBlockBuilder) { return ((LongArrayBlockBuilder) block).getValuesSlice(); } diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/ShortArrayBlockEncoding.java b/core/trino-spi/src/main/java/io/trino/spi/block/ShortArrayBlockEncoding.java index 5c98827bc2ad..49c3591f3270 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/block/ShortArrayBlockEncoding.java +++ b/core/trino-spi/src/main/java/io/trino/spi/block/ShortArrayBlockEncoding.java @@ -111,7 +111,7 @@ private Slice getValuesSlice(Block block) if (block instanceof ShortArrayBlock) { return ((ShortArrayBlock) block).getValuesSlice(); } - else if (block instanceof ShortArrayBlockBuilder) { + if (block instanceof ShortArrayBlockBuilder) { return ((ShortArrayBlockBuilder) block).getValuesSlice(); } diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/SingleRowBlockWriter.java b/core/trino-spi/src/main/java/io/trino/spi/block/SingleRowBlockWriter.java index 4d972f97db15..0b0e10800f13 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/block/SingleRowBlockWriter.java +++ b/core/trino-spi/src/main/java/io/trino/spi/block/SingleRowBlockWriter.java @@ -216,9 +216,7 @@ public String toString() if (!fieldBlockBuilderReturned) { return format("SingleRowBlockWriter{numFields=%d, fieldBlockBuilderReturned=false, positionCount=%d}", fieldBlockBuilders.length, getPositionCount()); } - else { - return format("SingleRowBlockWriter{numFields=%d, fieldBlockBuilderReturned=true}", fieldBlockBuilders.length); - } + return format("SingleRowBlockWriter{numFields=%d, fieldBlockBuilderReturned=true}", fieldBlockBuilders.length); } void setRowIndex(int rowIndex) diff --git a/core/trino-spi/src/main/java/io/trino/spi/predicate/Domain.java b/core/trino-spi/src/main/java/io/trino/spi/predicate/Domain.java index 5571832479c9..3116f157b269 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/predicate/Domain.java +++ b/core/trino-spi/src/main/java/io/trino/spi/predicate/Domain.java @@ -146,9 +146,7 @@ public boolean isNullableSingleValue() if (nullAllowed) { return values.isNone(); } - else { - return values.isSingleValue(); - } + return values.isSingleValue(); } public boolean isOnlyNull() @@ -173,9 +171,7 @@ public Object getNullableSingleValue() if (nullAllowed) { return null; } - else { - return values.getSingleValue(); - } + return values.getSingleValue(); } public boolean includesNullableValue(Object value) diff --git a/core/trino-spi/src/main/java/io/trino/spi/predicate/EquatableValueSet.java b/core/trino-spi/src/main/java/io/trino/spi/predicate/EquatableValueSet.java index 9d543635c3e9..e05c10afb52f 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/predicate/EquatableValueSet.java +++ b/core/trino-spi/src/main/java/io/trino/spi/predicate/EquatableValueSet.java @@ -243,15 +243,13 @@ public EquatableValueSet intersect(ValueSet other) if (inclusive && otherValueSet.inclusive()) { return new EquatableValueSet(type, true, intersect(entries, otherValueSet.entries)); } - else if (inclusive) { + if (inclusive) { return new EquatableValueSet(type, true, subtract(entries, otherValueSet.entries)); } - else if (otherValueSet.inclusive()) { + if (otherValueSet.inclusive()) { return new EquatableValueSet(type, true, subtract(otherValueSet.entries, entries)); } - else { - return new EquatableValueSet(type, false, union(otherValueSet.entries, entries)); - } + return new EquatableValueSet(type, false, union(otherValueSet.entries, entries)); } @Override @@ -262,15 +260,13 @@ public boolean overlaps(ValueSet other) if (inclusive && otherValueSet.inclusive()) { return setsOverlap(entries, otherValueSet.entries); } - else if (inclusive) { + if (inclusive) { return !otherValueSet.entries.containsAll(entries); } - else if (otherValueSet.inclusive()) { + if (otherValueSet.inclusive()) { return !entries.containsAll(otherValueSet.entries); } - else { - return true; - } + return true; } @Override @@ -281,15 +277,13 @@ public EquatableValueSet union(ValueSet other) if (inclusive && otherValueSet.inclusive()) { return new EquatableValueSet(type, true, union(entries, otherValueSet.entries)); } - else if (inclusive) { + if (inclusive) { return new EquatableValueSet(type, false, subtract(otherValueSet.entries, entries)); } - else if (otherValueSet.inclusive()) { + if (otherValueSet.inclusive()) { return new EquatableValueSet(type, false, subtract(entries, otherValueSet.entries)); } - else { - return new EquatableValueSet(type, false, intersect(otherValueSet.entries, entries)); - } + return new EquatableValueSet(type, false, intersect(otherValueSet.entries, entries)); } @Override diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/ArrayType.java b/core/trino-spi/src/main/java/io/trino/spi/type/ArrayType.java index f1ed1506f37e..ac29e3095cd0 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/ArrayType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/ArrayType.java @@ -195,10 +195,8 @@ public Object getObjectValue(ConnectorSession session, Block block, int position if (block instanceof AbstractArrayBlock) { return ((AbstractArrayBlock) block).apply((valuesBlock, start, length) -> arrayBlockToObjectValues(session, valuesBlock, start, length), position); } - else { - Block arrayBlock = block.getObject(position, Block.class); - return arrayBlockToObjectValues(session, arrayBlock, 0, arrayBlock.getPositionCount()); - } + Block arrayBlock = block.getObject(position, Block.class); + return arrayBlockToObjectValues(session, arrayBlock, 0, arrayBlock.getPositionCount()); } private List arrayBlockToObjectValues(ConnectorSession session, Block block, int start, int length) diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/Chars.java b/core/trino-spi/src/main/java/io/trino/spi/type/Chars.java index 1a55fdbf50a8..4e3cd7512e53 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/Chars.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/Chars.java @@ -135,9 +135,7 @@ public static int compareChars(Slice left, Slice right) if (left.length() < right.length()) { return compareCharsShorterToLonger(left, right); } - else { - return -compareCharsShorterToLonger(right, left); - } + return -compareCharsShorterToLonger(right, left); } private static int compareCharsShorterToLonger(Slice shorter, Slice longer) diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java b/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java index 3617e94b4d20..c83c661e7583 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/DecimalType.java @@ -43,9 +43,7 @@ public static DecimalType createDecimalType(int precision, int scale) if (precision <= MAX_SHORT_PRECISION) { return new ShortDecimalType(precision, scale); } - else { - return new LongDecimalType(precision, scale); - } + return new LongDecimalType(precision, scale); } public static DecimalType createDecimalType(int precision) diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/Int128.java b/core/trino-spi/src/main/java/io/trino/spi/type/Int128.java index 789b6c17a418..87c0a6591632 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/Int128.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/Int128.java @@ -66,7 +66,7 @@ public static Int128 fromBigEndian(byte[] bytes) return Int128.valueOf(high, low); } - else if (bytes.length > 8) { + if (bytes.length > 8) { // read the last 8 bytes into low int offset = bytes.length - Long.BYTES; long low = (long) BIG_ENDIAN_LONG_VIEW.get(bytes, offset); @@ -80,21 +80,19 @@ else if (bytes.length > 8) { return Int128.valueOf(high, low); } - else if (bytes.length == 8) { + if (bytes.length == 8) { long low = (long) BIG_ENDIAN_LONG_VIEW.get(bytes, 0); long high = (low >> 63); return Int128.valueOf(high, low); } - else { - long high = (bytes[0] >> 7); - long low = high; - for (int i = 0; i < bytes.length; i++) { - low = (low << 8) | (bytes[i] & 0xFF); - } - - return Int128.valueOf(high, low); + long high = (bytes[0] >> 7); + long low = high; + for (int i = 0; i < bytes.length; i++) { + low = (low << 8) | (bytes[i] & 0xFF); } + + return Int128.valueOf(high, low); } public static Int128 valueOf(long[] value) diff --git a/core/trino-spi/src/main/java/io/trino/spi/type/SqlVarbinary.java b/core/trino-spi/src/main/java/io/trino/spi/type/SqlVarbinary.java index 2ef2ddb047d3..ea79baa64207 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/type/SqlVarbinary.java +++ b/core/trino-spi/src/main/java/io/trino/spi/type/SqlVarbinary.java @@ -40,7 +40,7 @@ public int compareTo(SqlVarbinary obj) if (bytes[i] < obj.bytes[i]) { return -1; } - else if (bytes[i] > obj.bytes[i]) { + if (bytes[i] > obj.bytes[i]) { return 1; } } diff --git a/lib/trino-matching/src/main/java/io/trino/matching/Captures.java b/lib/trino-matching/src/main/java/io/trino/matching/Captures.java index 27bb02fb1a1b..e587a8a3ba2d 100644 --- a/lib/trino-matching/src/main/java/io/trino/matching/Captures.java +++ b/lib/trino-matching/src/main/java/io/trino/matching/Captures.java @@ -45,9 +45,7 @@ public Captures addAll(Captures other) if (this == NIL) { return other; } - else { - return new Captures(capture, value, tail.addAll(other)); - } + return new Captures(capture, value, tail.addAll(other)); } @SuppressWarnings("unchecked cast") @@ -56,12 +54,10 @@ public T get(Capture capture) if (this.equals(NIL)) { throw new NoSuchElementException("Requested value for unknown Capture. Was it registered in the Pattern?"); } - else if (this.capture.equals(capture)) { + if (this.capture.equals(capture)) { return (T) value; } - else { - return tail.get(capture); - } + return tail.get(capture); } @Override diff --git a/lib/trino-matching/src/main/java/io/trino/matching/Pattern.java b/lib/trino-matching/src/main/java/io/trino/matching/Pattern.java index fe90541d06b3..708b89500a21 100644 --- a/lib/trino-matching/src/main/java/io/trino/matching/Pattern.java +++ b/lib/trino-matching/src/main/java/io/trino/matching/Pattern.java @@ -116,9 +116,7 @@ public final Stream match(Object object, Captures captures, C context return previous.get().match(object, captures, context) .flatMap(match -> accept(object, match.captures(), context)); } - else { - return accept(object, captures, context); - } + return accept(object, captures, context); } @Override diff --git a/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/Checkpoints.java b/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/Checkpoints.java index c7f932eb94e9..81498c199677 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/Checkpoints.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/Checkpoints.java @@ -144,7 +144,7 @@ public static StreamCheckpoint getDictionaryStreamCheckpoint(StreamId streamId, if (columnEncoding == DICTIONARY_V2) { return new LongStreamV2Checkpoint(0, createInputStreamCheckpoint(0, 0)); } - else if (columnEncoding == DICTIONARY) { + if (columnEncoding == DICTIONARY) { return new LongStreamV1Checkpoint(0, createInputStreamCheckpoint(0, 0)); } } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/InputStreamCheckpoint.java b/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/InputStreamCheckpoint.java index bd55e12e9416..178ae6985d3d 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/InputStreamCheckpoint.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/checkpoint/InputStreamCheckpoint.java @@ -32,9 +32,7 @@ public static long createInputStreamCheckpoint(boolean compressed, ColumnPositio if (compressed) { return createInputStreamCheckpoint(positionsList.nextPosition(), positionsList.nextPosition()); } - else { - return createInputStreamCheckpoint(0, positionsList.nextPosition()); - } + return createInputStreamCheckpoint(0, positionsList.nextPosition()); } public static long createInputStreamCheckpoint(int compressedBlockOffset, int decompressedOffset) @@ -58,9 +56,7 @@ public static List createInputStreamPositionList(boolean compressed, lo if (compressed) { return ImmutableList.of(decodeCompressedBlockOffset(inputStreamCheckpoint), decodeDecompressedOffset(inputStreamCheckpoint)); } - else { - return ImmutableList.of(decodeDecompressedOffset(inputStreamCheckpoint)); - } + return ImmutableList.of(decodeDecompressedOffset(inputStreamCheckpoint)); } public static String inputStreamCheckpointToString(long inputStreamCheckpoint) diff --git a/lib/trino-orc/src/main/java/io/trino/orc/metadata/statistics/StringStatisticsBuilder.java b/lib/trino-orc/src/main/java/io/trino/orc/metadata/statistics/StringStatisticsBuilder.java index 6198a41e56a4..320eab940e9e 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/metadata/statistics/StringStatisticsBuilder.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/metadata/statistics/StringStatisticsBuilder.java @@ -187,9 +187,7 @@ private Slice computeStringMinMax(Slice minOrMax, boolean isMin) if (isMin) { return StringCompactor.truncateMin(minOrMax, stringStatisticsLimitInBytes); } - else { - return StringCompactor.truncateMax(minOrMax, stringStatisticsLimitInBytes); - } + return StringCompactor.truncateMax(minOrMax, stringStatisticsLimitInBytes); } // Do not hold the entire slice where the actual stats could be small diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalOutputStream.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalOutputStream.java index 5771a9491380..908dfd5c78b3 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalOutputStream.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/DecimalOutputStream.java @@ -72,10 +72,8 @@ public void writeUnscaledValue(Int128 decimal) buffer.write((byte) lowBits); return; } - else { - buffer.write((byte) (0x80 | (lowBits & 0x7f))); - lowBits >>>= 7; - } + buffer.write((byte) (0x80 | (lowBits & 0x7f))); + lowBits >>>= 7; } value = value.shiftRight(63); } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongDecode.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongDecode.java index dd92dd7347b4..4c08e8c87c21 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/LongDecode.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/LongDecode.java @@ -49,30 +49,28 @@ public static int decodeBitWidth(int n) if (n >= ONE.ordinal() && n <= TWENTY_FOUR.ordinal()) { return n + 1; } - else if (n == TWENTY_SIX.ordinal()) { + if (n == TWENTY_SIX.ordinal()) { return 26; } - else if (n == TWENTY_EIGHT.ordinal()) { + if (n == TWENTY_EIGHT.ordinal()) { return 28; } - else if (n == THIRTY.ordinal()) { + if (n == THIRTY.ordinal()) { return 30; } - else if (n == THIRTY_TWO.ordinal()) { + if (n == THIRTY_TWO.ordinal()) { return 32; } - else if (n == FORTY.ordinal()) { + if (n == FORTY.ordinal()) { return 40; } - else if (n == FORTY_EIGHT.ordinal()) { + if (n == FORTY_EIGHT.ordinal()) { return 48; } - else if (n == FIFTY_SIX.ordinal()) { + if (n == FIFTY_SIX.ordinal()) { return 56; } - else { - return 64; - } + return 64; } /** @@ -87,30 +85,28 @@ public static int getClosestFixedBits(int width) if (width >= 1 && width <= 24) { return width; } - else if (width > 24 && width <= 26) { + if (width > 24 && width <= 26) { return 26; } - else if (width > 26 && width <= 28) { + if (width > 26 && width <= 28) { return 28; } - else if (width > 28 && width <= 30) { + if (width > 28 && width <= 30) { return 30; } - else if (width > 30 && width <= 32) { + if (width > 30 && width <= 32) { return 32; } - else if (width > 32 && width <= 40) { + if (width > 32 && width <= 40) { return 40; } - else if (width > 40 && width <= 48) { + if (width > 40 && width <= 48) { return 48; } - else if (width > 48 && width <= 56) { + if (width > 48 && width <= 56) { return 56; } - else { - return 64; - } + return 64; } public static long readSignedVInt(OrcInputStream inputStream) @@ -144,9 +140,7 @@ public static long readVInt(boolean signed, OrcInputStream inputStream) if (signed) { return readSignedVInt(inputStream); } - else { - return readUnsignedVInt(inputStream); - } + return readUnsignedVInt(inputStream); } public static long zigzagDecode(long value) @@ -170,10 +164,8 @@ private static void writeVLongUnsigned(SliceOutput output, long value) output.write((byte) value); return; } - else { - output.write((byte) (0x80 | (value & 0x7f))); - value >>>= 7; - } + output.write((byte) (0x80 | (value & 0x7f))); + value >>>= 7; } } 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 7246d88e0e7f..33980a6ee142 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 @@ -795,10 +795,8 @@ static void writeVulong(SliceOutput output, long value) output.write((byte) value); return; } - else { - output.write((byte) (0x80 | (value & 0x7f))); - value >>>= 7; - } + output.write((byte) (0x80 | (value & 0x7f))); + value >>>= 7; } } @@ -870,30 +868,28 @@ static int getClosestFixedBits(int n) if (n >= 1 && n <= 24) { return n; } - else if (n > 24 && n <= 26) { + if (n > 24 && n <= 26) { return 26; } - else if (n > 26 && n <= 28) { + if (n > 26 && n <= 28) { return 28; } - else if (n > 28 && n <= 30) { + if (n > 28 && n <= 30) { return 30; } - else if (n > 30 && n <= 32) { + if (n > 30 && n <= 32) { return 32; } - else if (n > 32 && n <= 40) { + if (n > 32 && n <= 40) { return 40; } - else if (n > 40 && n <= 48) { + if (n > 40 && n <= 48) { return 48; } - else if (n > 48 && n <= 56) { + if (n > 48 && n <= 56) { return 56; } - else { - return 64; - } + return 64; } public static int getClosestAlignedFixedBits(int n) @@ -901,36 +897,34 @@ public static int getClosestAlignedFixedBits(int n) if (n == 0 || n == 1) { return 1; } - else if (n > 1 && n <= 2) { + if (n > 1 && n <= 2) { return 2; } - else if (n > 2 && n <= 4) { + if (n > 2 && n <= 4) { return 4; } - else if (n > 4 && n <= 8) { + if (n > 4 && n <= 8) { return 8; } - else if (n > 8 && n <= 16) { + if (n > 8 && n <= 16) { return 16; } - else if (n > 16 && n <= 24) { + if (n > 16 && n <= 24) { return 24; } - else if (n > 24 && n <= 32) { + if (n > 24 && n <= 32) { return 32; } - else if (n > 32 && n <= 40) { + if (n > 32 && n <= 40) { return 40; } - else if (n > 40 && n <= 48) { + if (n > 40 && n <= 48) { return 48; } - else if (n > 48 && n <= 56) { + if (n > 48 && n <= 56) { return 56; } - else { - return 64; - } + return 64; } enum FixedBitSizes @@ -955,30 +949,28 @@ static int encodeBitWidth(int n) if (n >= 1 && n <= 24) { return n - 1; } - else if (n > 24 && n <= 26) { + if (n > 24 && n <= 26) { return FixedBitSizes.TWENTY_SIX.ordinal(); } - else if (n > 26 && n <= 28) { + if (n > 26 && n <= 28) { return FixedBitSizes.TWENTY_EIGHT.ordinal(); } - else if (n > 28 && n <= 30) { + if (n > 28 && n <= 30) { return FixedBitSizes.THIRTY.ordinal(); } - else if (n > 30 && n <= 32) { + if (n > 30 && n <= 32) { return FixedBitSizes.THIRTY_TWO.ordinal(); } - else if (n > 32 && n <= 40) { + if (n > 32 && n <= 40) { return FixedBitSizes.FORTY.ordinal(); } - else if (n > 40 && n <= 48) { + if (n > 40 && n <= 48) { return FixedBitSizes.FORTY_EIGHT.ordinal(); } - else if (n > 48 && n <= 56) { + if (n > 48 && n <= 56) { return FixedBitSizes.FIFTY_SIX.ordinal(); } - else { - return FixedBitSizes.SIXTY_FOUR.ordinal(); - } + return FixedBitSizes.SIXTY_FOUR.ordinal(); } /** @@ -989,30 +981,28 @@ static int decodeBitWidth(int n) if (n >= FixedBitSizes.ONE.ordinal() && n <= FixedBitSizes.TWENTY_FOUR.ordinal()) { return n + 1; } - else if (n == FixedBitSizes.TWENTY_SIX.ordinal()) { + if (n == FixedBitSizes.TWENTY_SIX.ordinal()) { return 26; } - else if (n == FixedBitSizes.TWENTY_EIGHT.ordinal()) { + if (n == FixedBitSizes.TWENTY_EIGHT.ordinal()) { return 28; } - else if (n == FixedBitSizes.THIRTY.ordinal()) { + if (n == FixedBitSizes.THIRTY.ordinal()) { return 30; } - else if (n == FixedBitSizes.THIRTY_TWO.ordinal()) { + if (n == FixedBitSizes.THIRTY_TWO.ordinal()) { return 32; } - else if (n == FixedBitSizes.FORTY.ordinal()) { + if (n == FixedBitSizes.FORTY.ordinal()) { return 40; } - else if (n == FixedBitSizes.FORTY_EIGHT.ordinal()) { + if (n == FixedBitSizes.FORTY_EIGHT.ordinal()) { return 48; } - else if (n == FixedBitSizes.FIFTY_SIX.ordinal()) { + if (n == FixedBitSizes.FIFTY_SIX.ordinal()) { return 56; } - else { - return 64; - } + return 64; } void writeInts(long[] input, int offset, int length, int bitSize, SliceOutput output) diff --git a/lib/trino-orc/src/main/java/io/trino/orc/stream/ValueStreams.java b/lib/trino-orc/src/main/java/io/trino/orc/stream/ValueStreams.java index 27445d32b15b..a5726d28b724 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/stream/ValueStreams.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/stream/ValueStreams.java @@ -135,11 +135,9 @@ private static ValueInputStream createLongStream( if (encoding == DIRECT_V2 || encoding == DICTIONARY_V2) { return new LongInputStreamV2(inputStream, signed, false); } - else if (encoding == DIRECT || encoding == DICTIONARY) { + if (encoding == DIRECT || encoding == DICTIONARY) { return new LongInputStreamV1(inputStream, signed); } - else { - throw new IllegalArgumentException("Unsupported encoding for long stream: " + encoding); - } + throw new IllegalArgumentException("Unsupported encoding for long stream: " + encoding); } } diff --git a/lib/trino-orc/src/main/java/io/trino/orc/writer/DictionaryBuilder.java b/lib/trino-orc/src/main/java/io/trino/orc/writer/DictionaryBuilder.java index 80cc998df791..d9b75cdc331e 100644 --- a/lib/trino-orc/src/main/java/io/trino/orc/writer/DictionaryBuilder.java +++ b/lib/trino-orc/src/main/java/io/trino/orc/writer/DictionaryBuilder.java @@ -103,9 +103,7 @@ public boolean contains(Block block, int position) if (block.isNull(position)) { return containsNullElement; } - else { - return blockPositionByHash.get(getHashPositionOfElement(block, position)) != EMPTY_SLOT; - } + return blockPositionByHash.get(getHashPositionOfElement(block, position)) != EMPTY_SLOT; } public int putIfAbsent(Block block, int position) diff --git a/lib/trino-orc/src/test/java/io/trino/orc/TestDictionaryCompressionOptimizer.java b/lib/trino-orc/src/test/java/io/trino/orc/TestDictionaryCompressionOptimizer.java index 0745eb0e5635..ed82fa0f3253 100644 --- a/lib/trino-orc/src/test/java/io/trino/orc/TestDictionaryCompressionOptimizer.java +++ b/lib/trino-orc/src/test/java/io/trino/orc/TestDictionaryCompressionOptimizer.java @@ -622,9 +622,7 @@ public OptionalInt tryConvertToDirect(int maxDirectBytes) direct = true; return OptionalInt.of(toIntExact(directBytes)); } - else { - return OptionalInt.empty(); - } + return OptionalInt.empty(); } public boolean isDirect() diff --git a/lib/trino-orc/src/test/java/io/trino/orc/stream/TestDecimalStream.java b/lib/trino-orc/src/test/java/io/trino/orc/stream/TestDecimalStream.java index ee52897428be..06b7575c529d 100644 --- a/lib/trino-orc/src/test/java/io/trino/orc/stream/TestDecimalStream.java +++ b/lib/trino-orc/src/test/java/io/trino/orc/stream/TestDecimalStream.java @@ -263,10 +263,8 @@ private static void writeBigInteger(OutputStream output, BigInteger value) output.write((byte) lowBits); return; } - else { - output.write((byte) (0x80 | (lowBits & 0x7f))); - lowBits >>>= 7; - } + output.write((byte) (0x80 | (lowBits & 0x7f))); + lowBits >>>= 7; } value = value.shiftRight(63); } diff --git a/lib/trino-orc/src/test/java/io/trino/orc/stream/TestLongDecode.java b/lib/trino-orc/src/test/java/io/trino/orc/stream/TestLongDecode.java index 17cd93e22bdf..1852bc12add9 100644 --- a/lib/trino-orc/src/test/java/io/trino/orc/stream/TestLongDecode.java +++ b/lib/trino-orc/src/test/java/io/trino/orc/stream/TestLongDecode.java @@ -111,10 +111,8 @@ private static void writeVulong(OutputStream output, long value) output.write((byte) value); return; } - else { - output.write((byte) (0x80 | (value & 0x7f))); - value >>>= 7; - } + output.write((byte) (0x80 | (value & 0x7f))); + value >>>= 7; } } diff --git a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/DecimalColumnReaderFactory.java b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/DecimalColumnReaderFactory.java index b7c3f5fe1394..d16c896f7517 100644 --- a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/DecimalColumnReaderFactory.java +++ b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/DecimalColumnReaderFactory.java @@ -25,8 +25,6 @@ public static PrimitiveColumnReader createReader(PrimitiveField field, DecimalTy if (parquetDecimalType.isShort()) { return new ShortDecimalColumnReader(field, parquetDecimalType); } - else { - return new LongDecimalColumnReader(field, parquetDecimalType); - } + return new LongDecimalColumnReader(field, parquetDecimalType); } } diff --git a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/PageReader.java b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/PageReader.java index bcf368e08f14..43aa635b950a 100644 --- a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/PageReader.java +++ b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/PageReader.java @@ -78,27 +78,25 @@ public DataPage readPage() dataPageV1.getDefinitionLevelEncoding(), dataPageV1.getValueEncoding()); } - else { - DataPageV2 dataPageV2 = (DataPageV2) compressedPage; - if (!dataPageV2.isCompressed()) { - return dataPageV2; - } - int uncompressedSize = dataPageV2.getUncompressedSize() - - dataPageV2.getDefinitionLevels().length() - - dataPageV2.getRepetitionLevels().length(); - return new DataPageV2( - dataPageV2.getRowCount(), - dataPageV2.getNullCount(), - dataPageV2.getValueCount(), - dataPageV2.getRepetitionLevels(), - dataPageV2.getDefinitionLevels(), - dataPageV2.getDataEncoding(), - decompress(codec, dataPageV2.getSlice(), uncompressedSize), - dataPageV2.getUncompressedSize(), - firstRowIndex, - dataPageV2.getStatistics(), - false); + DataPageV2 dataPageV2 = (DataPageV2) compressedPage; + if (!dataPageV2.isCompressed()) { + return dataPageV2; } + int uncompressedSize = dataPageV2.getUncompressedSize() + - dataPageV2.getDefinitionLevels().length() + - dataPageV2.getRepetitionLevels().length(); + return new DataPageV2( + dataPageV2.getRowCount(), + dataPageV2.getNullCount(), + dataPageV2.getValueCount(), + dataPageV2.getRepetitionLevels(), + dataPageV2.getDefinitionLevels(), + dataPageV2.getDataEncoding(), + decompress(codec, dataPageV2.getSlice(), uncompressedSize), + dataPageV2.getUncompressedSize(), + firstRowIndex, + dataPageV2.getStatistics(), + false); } catch (IOException e) { throw new RuntimeException("Could not decompress page", e); diff --git a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/ParquetColumnChunk.java b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/ParquetColumnChunk.java index 14e25b75df2b..cc5a2fa1ced7 100644 --- a/lib/trino-parquet/src/main/java/io/trino/parquet/reader/ParquetColumnChunk.java +++ b/lib/trino-parquet/src/main/java/io/trino/parquet/reader/ParquetColumnChunk.java @@ -123,9 +123,7 @@ private boolean hasMorePages(long valuesCountReadSoFar, int dataPageCountReadSoF if (offsetIndex == null) { return valuesCountReadSoFar < descriptor.getColumnChunkMetaData().getValueCount(); } - else { - return dataPageCountReadSoFar < offsetIndex.getPageCount(); - } + return dataPageCountReadSoFar < offsetIndex.getPageCount(); } private Slice getSlice(int size) diff --git a/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetSchemaConverter.java b/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetSchemaConverter.java index c3a51f8a71ed..ea02339c21e0 100644 --- a/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetSchemaConverter.java +++ b/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetSchemaConverter.java @@ -100,15 +100,13 @@ private org.apache.parquet.schema.Type convert(Type type, String name, List parent, Repetition repetition) diff --git a/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetTypeVisitor.java b/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetTypeVisitor.java index 72b6153f688d..d494770fe64a 100644 --- a/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetTypeVisitor.java +++ b/lib/trino-parquet/src/main/java/io/trino/parquet/writer/ParquetTypeVisitor.java @@ -36,77 +36,75 @@ public static T visit(Type type, ParquetTypeVisitor visitor) if (type instanceof MessageType) { return visitor.message((MessageType) type, visitFields(type.asGroupType(), visitor)); } - else if (type.isPrimitive()) { + if (type.isPrimitive()) { return visitor.primitive(type.asPrimitiveType()); } - else { - // if not a primitive, the typeId must be a group - GroupType group = type.asGroupType(); - LogicalTypeAnnotation annotation = group.getLogicalTypeAnnotation(); - if (LogicalTypeAnnotation.listType().equals(annotation)) { - checkArgument(!group.isRepetition(REPEATED), - "Invalid list: top-level group is repeated: " + group); - checkArgument(group.getFieldCount() == 1, - "Invalid list: does not contain single repeated field: " + group); - - GroupType repeatedElement = group.getFields().get(0).asGroupType(); - checkArgument(repeatedElement.isRepetition(REPEATED), - "Invalid list: inner group is not repeated"); - checkArgument(repeatedElement.getFieldCount() <= 1, - "Invalid list: repeated group is not a single field: " + group); - - visitor.fieldNames.push(repeatedElement.getName()); - try { - T elementResult = null; - if (repeatedElement.getFieldCount() > 0) { - elementResult = visitField(repeatedElement.getType(0), visitor); - } - - return visitor.list(group, elementResult); - } - finally { - visitor.fieldNames.pop(); + // if not a primitive, the typeId must be a group + GroupType group = type.asGroupType(); + LogicalTypeAnnotation annotation = group.getLogicalTypeAnnotation(); + if (LogicalTypeAnnotation.listType().equals(annotation)) { + checkArgument(!group.isRepetition(REPEATED), + "Invalid list: top-level group is repeated: " + group); + checkArgument(group.getFieldCount() == 1, + "Invalid list: does not contain single repeated field: " + group); + + GroupType repeatedElement = group.getFields().get(0).asGroupType(); + checkArgument(repeatedElement.isRepetition(REPEATED), + "Invalid list: inner group is not repeated"); + checkArgument(repeatedElement.getFieldCount() <= 1, + "Invalid list: repeated group is not a single field: " + group); + + visitor.fieldNames.push(repeatedElement.getName()); + try { + T elementResult = null; + if (repeatedElement.getFieldCount() > 0) { + elementResult = visitField(repeatedElement.getType(0), visitor); } + + return visitor.list(group, elementResult); + } + finally { + visitor.fieldNames.pop(); } - else if (LogicalTypeAnnotation.mapType().equals(annotation)) { - checkArgument(!group.isRepetition(REPEATED), - "Invalid map: top-level group is repeated: " + group); - checkArgument(group.getFieldCount() == 1, - "Invalid map: does not contain single repeated field: " + group); - - GroupType repeatedKeyValue = group.getType(0).asGroupType(); - checkArgument(repeatedKeyValue.isRepetition(REPEATED), - "Invalid map: inner group is not repeated"); - checkArgument(repeatedKeyValue.getFieldCount() <= 2, - "Invalid map: repeated group does not have 2 fields"); - - visitor.fieldNames.push(repeatedKeyValue.getName()); - try { - T keyResult = null; - T valueResult = null; - if (repeatedKeyValue.getFieldCount() == 2) { - keyResult = visitField(repeatedKeyValue.getType(0), visitor); - valueResult = visitField(repeatedKeyValue.getType(1), visitor); + } + if (LogicalTypeAnnotation.mapType().equals(annotation)) { + checkArgument(!group.isRepetition(REPEATED), + "Invalid map: top-level group is repeated: " + group); + checkArgument(group.getFieldCount() == 1, + "Invalid map: does not contain single repeated field: " + group); + + GroupType repeatedKeyValue = group.getType(0).asGroupType(); + checkArgument(repeatedKeyValue.isRepetition(REPEATED), + "Invalid map: inner group is not repeated"); + checkArgument(repeatedKeyValue.getFieldCount() <= 2, + "Invalid map: repeated group does not have 2 fields"); + + visitor.fieldNames.push(repeatedKeyValue.getName()); + try { + T keyResult = null; + T valueResult = null; + if (repeatedKeyValue.getFieldCount() == 2) { + keyResult = visitField(repeatedKeyValue.getType(0), visitor); + valueResult = visitField(repeatedKeyValue.getType(1), visitor); + } + else if (repeatedKeyValue.getFieldCount() == 1) { + Type keyOrValue = repeatedKeyValue.getType(0); + if (keyOrValue.getName().equalsIgnoreCase("key")) { + keyResult = visitField(keyOrValue, visitor); + // value result remains null } - else if (repeatedKeyValue.getFieldCount() == 1) { - Type keyOrValue = repeatedKeyValue.getType(0); - if (keyOrValue.getName().equalsIgnoreCase("key")) { - keyResult = visitField(keyOrValue, visitor); - // value result remains null - } - else { - valueResult = visitField(keyOrValue, visitor); - // key result remains null - } + else { + valueResult = visitField(keyOrValue, visitor); + // key result remains null } - return visitor.map(group, keyResult, valueResult); - } - finally { - visitor.fieldNames.pop(); } + return visitor.map(group, keyResult, valueResult); + } + finally { + visitor.fieldNames.pop(); } - return visitor.struct(group, visitFields(group, visitor)); } + return visitor.struct(group, visitFields(group, visitor)); } private static T visitField(Type field, ParquetTypeVisitor visitor) diff --git a/lib/trino-rcfile/src/main/java/io/trino/rcfile/RcFileDecoderUtils.java b/lib/trino-rcfile/src/main/java/io/trino/rcfile/RcFileDecoderUtils.java index d7d41bf25ea1..ca496ad6d563 100644 --- a/lib/trino-rcfile/src/main/java/io/trino/rcfile/RcFileDecoderUtils.java +++ b/lib/trino-rcfile/src/main/java/io/trino/rcfile/RcFileDecoderUtils.java @@ -155,12 +155,10 @@ public static long findFirstSyncPosition(RcFileDataSource dataSource, long offse long startOfSyncSequence = offset + position + index; return startOfSyncSequence; } - else { - // Otherwise, this is not a match for this region - // Note: this case isn't strictly needed as the loop will exit, but it is - // simpler to explicitly call it out. - return -1; - } + // Otherwise, this is not a match for this region + // Note: this case isn't strictly needed as the loop will exit, but it is + // simpler to explicitly call it out. + return -1; } } return -1; diff --git a/lib/trino-rcfile/src/main/java/io/trino/rcfile/TimestampHolder.java b/lib/trino-rcfile/src/main/java/io/trino/rcfile/TimestampHolder.java index 1049baf75651..c770ec18a18e 100644 --- a/lib/trino-rcfile/src/main/java/io/trino/rcfile/TimestampHolder.java +++ b/lib/trino-rcfile/src/main/java/io/trino/rcfile/TimestampHolder.java @@ -62,11 +62,9 @@ public static BiFunction getFactory(TimestampTy if (type.isShort()) { return (block, position) -> new TimestampHolder(type.getLong(block, position), 0); } - else { - return (block, position) -> { - LongTimestamp longTimestamp = (LongTimestamp) type.getObject(block, position); - return new TimestampHolder(longTimestamp.getEpochMicros(), longTimestamp.getPicosOfMicro()); - }; - } + return (block, position) -> { + LongTimestamp longTimestamp = (LongTimestamp) type.getObject(block, position); + return new TimestampHolder(longTimestamp.getEpochMicros(), longTimestamp.getPicosOfMicro()); + }; } } diff --git a/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroColumnDecoder.java b/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroColumnDecoder.java index f276a5260646..4e65a72421ec 100644 --- a/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroColumnDecoder.java +++ b/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroColumnDecoder.java @@ -216,7 +216,7 @@ private static Slice getSlice(Object value, Type type, String columnName) if (value instanceof ByteBuffer) { return Slices.wrappedBuffer((ByteBuffer) value); } - else if (value instanceof GenericFixed) { + if (value instanceof GenericFixed) { return Slices.wrappedBuffer(((GenericFixed) value).bytes()); } } diff --git a/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroRowDecoderFactory.java b/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroRowDecoderFactory.java index a872ac532ccb..c63410ece71b 100644 --- a/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroRowDecoderFactory.java +++ b/lib/trino-record-decoder/src/main/java/io/trino/decoder/avro/AvroRowDecoderFactory.java @@ -61,10 +61,8 @@ public RowDecoder create(Map decoderParams, Set dataDecoder = avroDeserializerFactory.create(avroReaderSupplier); return new GenericRecordRowDecoder(dataDecoder, columns); } - else { - AvroReaderSupplier avroReaderSupplier = avroReaderSupplierFactory.create(parsedSchema); - AvroDeserializer dataDecoder = avroDeserializerFactory.create(avroReaderSupplier); - return new SingleValueRowDecoder(dataDecoder, getOnlyElement(columns)); - } + AvroReaderSupplier avroReaderSupplier = avroReaderSupplierFactory.create(parsedSchema); + AvroDeserializer dataDecoder = avroDeserializerFactory.create(avroReaderSupplier); + return new SingleValueRowDecoder(dataDecoder, getOnlyElement(columns)); } } diff --git a/lib/trino-record-decoder/src/main/java/io/trino/decoder/csv/CsvColumnDecoder.java b/lib/trino-record-decoder/src/main/java/io/trino/decoder/csv/CsvColumnDecoder.java index f360e341748d..23a80643457b 100644 --- a/lib/trino-record-decoder/src/main/java/io/trino/decoder/csv/CsvColumnDecoder.java +++ b/lib/trino-record-decoder/src/main/java/io/trino/decoder/csv/CsvColumnDecoder.java @@ -84,55 +84,53 @@ public FieldValueProvider decodeField(String[] tokens) if (columnIndex >= tokens.length) { return nullValueProvider(); } - else { - return new FieldValueProvider() + return new FieldValueProvider() + { + @Override + public boolean isNull() { - @Override - public boolean isNull() - { - return tokens[columnIndex].isEmpty(); - } + return tokens[columnIndex].isEmpty(); + } - @SuppressWarnings("SimplifiableConditionalExpression") - @Override - public boolean getBoolean() - { - try { - return Boolean.parseBoolean(tokens[columnIndex].trim()); - } - catch (NumberFormatException e) { - throw new TrinoException(DECODER_CONVERSION_NOT_SUPPORTED, format("could not parse value '%s' as '%s' for column '%s'", tokens[columnIndex].trim(), columnType, columnName)); - } + @SuppressWarnings("SimplifiableConditionalExpression") + @Override + public boolean getBoolean() + { + try { + return Boolean.parseBoolean(tokens[columnIndex].trim()); } - - @Override - public long getLong() - { - try { - return Long.parseLong(tokens[columnIndex].trim()); - } - catch (NumberFormatException e) { - throw new TrinoException(DECODER_CONVERSION_NOT_SUPPORTED, format("could not parse value '%s' as '%s' for column '%s'", tokens[columnIndex].trim(), columnType, columnName)); - } + catch (NumberFormatException e) { + throw new TrinoException(DECODER_CONVERSION_NOT_SUPPORTED, format("could not parse value '%s' as '%s' for column '%s'", tokens[columnIndex].trim(), columnType, columnName)); } + } - @Override - public double getDouble() - { - try { - return Double.parseDouble(tokens[columnIndex].trim()); - } - catch (NumberFormatException e) { - throw new TrinoException(DECODER_CONVERSION_NOT_SUPPORTED, format("could not parse value '%s' as '%s' for column '%s'", tokens[columnIndex].trim(), columnType, columnName)); - } + @Override + public long getLong() + { + try { + return Long.parseLong(tokens[columnIndex].trim()); } + catch (NumberFormatException e) { + throw new TrinoException(DECODER_CONVERSION_NOT_SUPPORTED, format("could not parse value '%s' as '%s' for column '%s'", tokens[columnIndex].trim(), columnType, columnName)); + } + } - @Override - public Slice getSlice() - { - return truncateToLength(utf8Slice(tokens[columnIndex]), columnType); + @Override + public double getDouble() + { + try { + return Double.parseDouble(tokens[columnIndex].trim()); } - }; - } + catch (NumberFormatException e) { + throw new TrinoException(DECODER_CONVERSION_NOT_SUPPORTED, format("could not parse value '%s' as '%s' for column '%s'", tokens[columnIndex].trim(), columnType, columnName)); + } + } + + @Override + public Slice getSlice() + { + return truncateToLength(utf8Slice(tokens[columnIndex]), columnType); + } + }; } } diff --git a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloClient.java b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloClient.java index 63e0ed04eec4..1134f6cde8dd 100644 --- a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloClient.java +++ b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloClient.java @@ -852,20 +852,18 @@ private Optional getTabletLocation(String table, Key key) location = Optional.of(entry.getValue().toString()); break; } - else { - // Chop off some magic nonsense - scannedCompareKey.set(keyBytes, 3, keyBytes.length - 3); - - // Compare the keys, moving along the tablets until the location is found - if (scannedCompareKey.getLength() > 0) { - int compareTo = splitCompareKey.compareTo(scannedCompareKey); - if (compareTo <= 0) { - location = Optional.of(entry.getValue().toString()); - } - else { - // all future tablets will be greater than this key - break; - } + // Chop off some magic nonsense + scannedCompareKey.set(keyBytes, 3, keyBytes.length - 3); + + // Compare the keys, moving along the tablets until the location is found + if (scannedCompareKey.getLength() > 0) { + int compareTo = splitCompareKey.compareTo(scannedCompareKey); + if (compareTo <= 0) { + location = Optional.of(entry.getValue().toString()); + } + else { + // all future tablets will be greater than this key + break; } } } diff --git a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/index/IndexLookup.java b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/index/IndexLookup.java index 3dc25663a53c..e2914148e1e9 100644 --- a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/index/IndexLookup.java +++ b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/index/IndexLookup.java @@ -172,11 +172,9 @@ public boolean applyIndex( return true; } - else { - LOG.debug("Use of index metrics is enabled"); - // Get ranges using the metrics - return getRangesWithMetrics(session, schema, table, constraintRanges, rowIdRanges, tabletSplits, auths); - } + LOG.debug("Use of index metrics is enabled"); + // Get ranges using the metrics + return getRangesWithMetrics(session, schema, table, constraintRanges, rowIdRanges, tabletSplits, auths); } private static Multimap getIndexedConstraintRanges(Collection constraints, AccumuloRowSerializer serializer) @@ -279,10 +277,8 @@ private boolean getRangesWithMetrics( LOG.debug("Number of splits for %s.%s is %d with %d ranges", schema, table, tabletSplits.size(), indexRanges.size()); return true; } - else { - // We are going to do too much work to use the secondary index, so return false - return false; - } + // We are going to do too much work to use the secondary index, so return false + return false; } private static boolean smallestCardAboveThreshold(ConnectorSession session, long numRows, long smallestCardinality) diff --git a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloRecordSet.java b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloRecordSet.java index 09267f7a460d..2b1c6c068423 100644 --- a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloRecordSet.java +++ b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/io/AccumuloRecordSet.java @@ -122,11 +122,9 @@ private static Authorizations getScanAuthorizations(ConnectorSession session, Ac LOG.debug("scan_auths table property set: %s", auths); return auths; } - else { - Authorizations auths = connector.securityOperations().getUserAuthorizations(username); - LOG.debug("scan_auths table property not set, using user auths: %s", auths); - return auths; - } + Authorizations auths = connector.securityOperations().getUserAuthorizations(username); + LOG.debug("scan_auths table property not set, using user auths: %s", auths); + return auths; } @Override diff --git a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/AccumuloRowSerializer.java b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/AccumuloRowSerializer.java index ec170e37f00e..889b2ff96ce6 100644 --- a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/AccumuloRowSerializer.java +++ b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/AccumuloRowSerializer.java @@ -609,16 +609,14 @@ static Object readObject(Type type, Block block, int position) Type elementType = Types.getElementType(type); return getArrayFromBlock(elementType, block.getObject(position, Block.class)); } - else if (Types.isMapType(type)) { + if (Types.isMapType(type)) { return getMapFromBlock(type, block.getObject(position, Block.class)); } - else { - if (type.getJavaType() == Slice.class) { - Slice slice = (Slice) TypeUtils.readNativeValue(type, block, position); - return type.equals(VarcharType.VARCHAR) ? slice.toStringUtf8() : slice.getBytes(); - } - - return TypeUtils.readNativeValue(type, block, position); + if (type.getJavaType() == Slice.class) { + Slice slice = (Slice) TypeUtils.readNativeValue(type, block, position); + return type.equals(VarcharType.VARCHAR) ? slice.toStringUtf8() : slice.getBytes(); } + + return TypeUtils.readNativeValue(type, block, position); } } diff --git a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/LexicoderRowSerializer.java b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/LexicoderRowSerializer.java index d4d8613d0434..1d758620ce5c 100644 --- a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/LexicoderRowSerializer.java +++ b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/serializers/LexicoderRowSerializer.java @@ -382,19 +382,17 @@ public static Lexicoder getLexicoder(Type type) if (Types.isArrayType(type)) { return getListLexicoder(type); } - else if (Types.isMapType(type)) { + if (Types.isMapType(type)) { return getMapLexicoder(type); } - else if (type instanceof VarcharType) { + if (type instanceof VarcharType) { return LEXICODER_MAP.get(VARCHAR); } - else { - Lexicoder lexicoder = LEXICODER_MAP.get(type); - if (lexicoder == null) { - throw new TrinoException(NOT_SUPPORTED, "No lexicoder for type " + type); - } - return lexicoder; + Lexicoder lexicoder = LEXICODER_MAP.get(type); + if (lexicoder == null) { + throw new TrinoException(NOT_SUPPORTED, "No lexicoder for type " + type); } + return lexicoder; } private static ListLexicoder getListLexicoder(Type elementType) diff --git a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java index fb50609f33c2..c6eb3d9bbed2 100644 --- a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java +++ b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java @@ -1307,9 +1307,7 @@ protected QueryAssert assertConditionallyPushedDown( if (condition) { return queryAssert.isFullyPushedDown(); } - else { - return queryAssert.isNotFullyPushedDown(otherwiseExpected); - } + return queryAssert.isNotFullyPushedDown(otherwiseExpected); } protected void assertConditionallyOrderedPushedDown( diff --git a/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/ReadSessionCreator.java b/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/ReadSessionCreator.java index 7d174b0824bc..4ae570a34d3e 100644 --- a/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/ReadSessionCreator.java +++ b/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/ReadSessionCreator.java @@ -111,10 +111,8 @@ private TableInfo getActualTable( // get it from the view return client.getCachedTable(viewExpiration, remoteTable, requiredColumns); } - else { - // not regular table or a view - throw new TrinoException(NOT_SUPPORTED, format("Table type '%s' of table '%s.%s' is not supported", - tableType, remoteTable.getTableId().getDataset(), remoteTable.getTableId().getTable())); - } + // not regular table or a view + throw new TrinoException(NOT_SUPPORTED, format("Table type '%s' of table '%s.%s' is not supported", + tableType, remoteTable.getTableId().getDataset(), remoteTable.getTableId().getTable())); } } diff --git a/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSource.java b/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSource.java index e9bd4d219afa..49f8ca3b135d 100644 --- a/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSource.java +++ b/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSource.java @@ -67,10 +67,8 @@ public Page getNextPage() if (pageProcessingDelayInMillis == 0) { return page; } - else { - currentPage = toCompletableFuture(executorService.schedule(() -> page, pageProcessingDelayInMillis, MILLISECONDS)); - return null; - } + currentPage = toCompletableFuture(executorService.schedule(() -> page, pageProcessingDelayInMillis, MILLISECONDS)); + return null; } @Override diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSession.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSession.java index ec0e8fcec1f1..1ecda23397d9 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSession.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSession.java @@ -570,17 +570,15 @@ private T executeWithSession(SessionCallable sessionCallable) if (timeLeft <= 0) { throw e; } - else { - long delay = Math.min(schedule.nextDelay().toMillis(), timeLeft); - log.warn(e.getMessage()); - log.warn("Reconnecting in %dms", delay); - try { - Thread.sleep(delay); - } - catch (InterruptedException interrupted) { - Thread.currentThread().interrupt(); - throw new RuntimeException("interrupted", interrupted); - } + long delay = Math.min(schedule.nextDelay().toMillis(), timeLeft); + log.warn(e.getMessage()); + log.warn("Reconnecting in %dms", delay); + try { + Thread.sleep(delay); + } + catch (InterruptedException interrupted) { + Thread.currentThread().interrupt(); + throw new RuntimeException("interrupted", interrupted); } } } diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplit.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplit.java index adfa7d3e2f8c..698b78d8b07d 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplit.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplit.java @@ -107,17 +107,11 @@ public String getWhereClause() if (splitCondition != null) { return " WHERE " + splitCondition; } - else { - return ""; - } + return ""; } - else { - if (splitCondition != null) { - return " WHERE " + partitionId + " AND " + splitCondition; - } - else { - return " WHERE " + partitionId; - } + if (splitCondition != null) { + return " WHERE " + partitionId + " AND " + splitCondition; } + return " WHERE " + partitionId; } } diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/Murmur3PartitionerTokenRing.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/Murmur3PartitionerTokenRing.java index 42228051b096..3c1280ab5916 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/Murmur3PartitionerTokenRing.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/Murmur3PartitionerTokenRing.java @@ -47,9 +47,7 @@ public BigInteger getTokenCountInRange(Token startToken, Token endToken) if (start == MIN_TOKEN) { return TOTAL_TOKEN_COUNT; } - else { - return ZERO; - } + return ZERO; } BigInteger result = BigInteger.valueOf(end).subtract(BigInteger.valueOf(start)); diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/RandomPartitionerTokenRing.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/RandomPartitionerTokenRing.java index ef8d5acdcaef..4e3d2a2570d7 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/RandomPartitionerTokenRing.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/RandomPartitionerTokenRing.java @@ -50,9 +50,7 @@ public BigInteger getTokenCountInRange(Token startToken, Token endToken) if (start.equals(MIN_TOKEN)) { return TOTAL_TOKEN_COUNT; } - else { - return ZERO; - } + return ZERO; } BigInteger result = end.subtract(start); diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/DeltaLakeParquetStatisticsUtils.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/DeltaLakeParquetStatisticsUtils.java index 448e5650787f..ff3a2143fb2b 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/DeltaLakeParquetStatisticsUtils.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/DeltaLakeParquetStatisticsUtils.java @@ -110,7 +110,7 @@ private static Optional getMin(Type type, Statistics statistics) Instant ts = Instant.ofEpochMilli(((LongStatistics) statistics).genericGetMin()); return Optional.of(ISO_INSTANT.format(ZonedDateTime.ofInstant(ts, UTC))); } - else if (statistics instanceof BinaryStatistics) { + if (statistics instanceof BinaryStatistics) { DecodedTimestamp decodedTimestamp = decodeInt96Timestamp(((BinaryStatistics) statistics).genericGetMin()); Instant ts = Instant.ofEpochSecond(decodedTimestamp.getEpochSeconds(), decodedTimestamp.getNanosOfSecond()); return Optional.of(ISO_INSTANT.format(ZonedDateTime.ofInstant(ts, UTC).truncatedTo(MILLIS))); @@ -145,11 +145,11 @@ else if (statistics instanceof BinaryStatistics) { min = BigDecimal.valueOf(((IntStatistics) statistics).getMin()).movePointLeft(scale); return Optional.of(min.toPlainString()); } - else if (statistics instanceof LongStatistics) { + if (statistics instanceof LongStatistics) { min = BigDecimal.valueOf(((LongStatistics) statistics).getMin()).movePointLeft(scale); return Optional.of(min.toPlainString()); } - else if (statistics instanceof BinaryStatistics) { + if (statistics instanceof BinaryStatistics) { BigInteger base = new BigInteger(((BinaryStatistics) statistics).genericGetMin().getBytes()); min = new BigDecimal(base, scale); return Optional.of(min.toPlainString()); @@ -187,7 +187,7 @@ private static Optional getMax(Type type, Statistics statistics) Instant ts = Instant.ofEpochMilli(((LongStatistics) statistics).genericGetMax()); return Optional.of(ISO_INSTANT.format(ZonedDateTime.ofInstant(ts, UTC))); } - else if (statistics instanceof BinaryStatistics) { + if (statistics instanceof BinaryStatistics) { DecodedTimestamp decodedTimestamp = decodeInt96Timestamp(((BinaryStatistics) statistics).genericGetMax()); Instant ts = Instant.ofEpochSecond(decodedTimestamp.getEpochSeconds(), decodedTimestamp.getNanosOfSecond()); ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(ts, UTC); @@ -225,11 +225,11 @@ else if (statistics instanceof BinaryStatistics) { max = BigDecimal.valueOf(((IntStatistics) statistics).getMax()).movePointLeft(scale); return Optional.of(max.toPlainString()); } - else if (statistics instanceof LongStatistics) { + if (statistics instanceof LongStatistics) { max = BigDecimal.valueOf(((LongStatistics) statistics).getMax()).movePointLeft(scale); return Optional.of(max.toPlainString()); } - else if (statistics instanceof BinaryStatistics) { + if (statistics instanceof BinaryStatistics) { BigInteger base = new BigInteger(((BinaryStatistics) statistics).genericGetMax().getBytes()); max = new BigDecimal(base, scale); return Optional.of(max.toPlainString()); diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/TransactionLogAccess.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/TransactionLogAccess.java index a823d08b817b..5f0454634122 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/TransactionLogAccess.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/TransactionLogAccess.java @@ -209,7 +209,7 @@ public List getActiveFiles(TableSnapshot tableSnapshot, ConnectorS log.warn("Query run with outdated Transaction Log Snapshot, retrieved stale table entries for table: %s and query %s", tableSnapshot.getTable(), session.getQueryId()); return loadActiveFiles(tableSnapshot, session); } - else if (cachedTable.getVersion() < tableSnapshot.getVersion()) { + if (cachedTable.getVersion() < tableSnapshot.getVersion()) { DeltaLakeDataFileCacheEntry updatedCacheEntry; try { List newEntries = getJsonEntries( diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/checkpoint/TransactionLogTail.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/checkpoint/TransactionLogTail.java index b0771db6c966..11db3114a427 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/checkpoint/TransactionLogTail.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/transactionlog/checkpoint/TransactionLogTail.java @@ -84,9 +84,7 @@ public static TransactionLogTail loadNewTail( if (endVersion.isPresent()) { throw new MissingTransactionLogException(path); } - else { - endOfTail = true; - } + endOfTail = true; } if (endVersion.isPresent() && version == endVersion.get()) { @@ -157,12 +155,10 @@ public static boolean isFileNotFoundException(IOException e) if (e instanceof FileNotFoundException) { return true; } - else if (e.getMessage().contains("The specified key does not exist")) { + if (e.getMessage().contains("The specified key does not exist")) { return true; } - else { - return false; - } + return false; } public List getFileEntries() diff --git a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchQueryBuilder.java b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchQueryBuilder.java index 60358786e679..86c24f572c18 100644 --- a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchQueryBuilder.java +++ b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchQueryBuilder.java @@ -100,13 +100,12 @@ private static void addPredicateToQueryBuilder(BoolQueryBuilder queryBuilder, St queryBuilder.filter(getOnlyElement(shouldClauses)); return; } - else if (shouldClauses.size() > 1) { + if (shouldClauses.size() > 1) { BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); shouldClauses.forEach(boolQueryBuilder::should); queryBuilder.filter(boolQueryBuilder); return; } - return; } private static List getShouldClauses(String columnName, Domain domain, Type type) diff --git a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java index 18fce4cba83e..52c42262b08d 100644 --- a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java +++ b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java @@ -57,12 +57,10 @@ public ConnectorSplitSource getSplits( if (tableHandle.getType().equals(QUERY)) { return new FixedSplitSource(ImmutableList.of(new ElasticsearchSplit(tableHandle.getIndex(), 0, Optional.empty()))); } - else { - List splits = client.getSearchShards(tableHandle.getIndex()).stream() - .map(shard -> new ElasticsearchSplit(shard.getIndex(), shard.getId(), shard.getAddress())) - .collect(toImmutableList()); + List splits = client.getSearchShards(tableHandle.getIndex()).stream() + .map(shard -> new ElasticsearchSplit(shard.getIndex(), shard.getId(), shard.getAddress())) + .collect(toImmutableList()); - return new FixedSplitSource(splits); - } + return new FixedSplitSource(splits); } } diff --git a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeFutures.java b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeFutures.java index d8f1f81f59dc..2fa01a970d60 100644 --- a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeFutures.java +++ b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeFutures.java @@ -33,9 +33,7 @@ public static ListenableFuture translateFailures(ListenableFuture liste if (throwable instanceof Error || throwable instanceof IOException) { return immediateFailedFuture(throwable); } - else { - return immediateFailedFuture(new IOException(throwable)); - } + return immediateFailedFuture(new IOException(throwable)); }, directExecutor())); } } diff --git a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSinkHandle.java b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSinkHandle.java index 0a3588ae6362..4308f7f5baca 100644 --- a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSinkHandle.java +++ b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSinkHandle.java @@ -64,9 +64,7 @@ public boolean equals(Object o) if (secretKey.isPresent() && that.secretKey.isPresent()) { return partitionId == that.getPartitionId() && Arrays.equals(secretKey.get(), that.secretKey.get()); } - else { - return partitionId == that.getPartitionId() && secretKey.isEmpty() && that.secretKey.isEmpty(); - } + return partitionId == that.getPartitionId() && secretKey.isEmpty() && that.secretKey.isEmpty(); } @Override diff --git a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSourceHandle.java b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSourceHandle.java index 7b175d85c0a1..74a1b1b8c500 100644 --- a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSourceHandle.java +++ b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/FileSystemExchangeSourceHandle.java @@ -98,9 +98,7 @@ public boolean equals(Object o) if (secretKey.isPresent() && that.secretKey.isPresent()) { return partitionId == that.getPartitionId() && Arrays.equals(secretKey.get(), that.secretKey.get()); } - else { - return partitionId == that.getPartitionId() && secretKey.isEmpty() && that.secretKey.isEmpty(); - } + return partitionId == that.getPartitionId() && secretKey.isEmpty() && that.secretKey.isEmpty(); } @Override diff --git a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/local/LocalFileSystemExchangeStorage.java b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/local/LocalFileSystemExchangeStorage.java index 631bdfb713c0..3a01955bd2b5 100644 --- a/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/local/LocalFileSystemExchangeStorage.java +++ b/plugin/trino-exchange-filesystem/src/main/java/io/trino/plugin/exchange/filesystem/local/LocalFileSystemExchangeStorage.java @@ -229,9 +229,7 @@ private InputStreamSliceInput getSliceInput(ExchangeSourceFile sourceFile) throw new TrinoException(GENERIC_INTERNAL_ERROR, "Failed to create CipherInputStream: " + e.getMessage(), e); } } - else { - return new InputStreamSliceInput(new FileInputStream(file), BUFFER_SIZE_IN_BYTES); - } + return new InputStreamSliceInput(new FileInputStream(file), BUFFER_SIZE_IN_BYTES); } } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveApplyProjectionUtil.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveApplyProjectionUtil.java index 487bfb56b93f..d031c3b1cd91 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveApplyProjectionUtil.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveApplyProjectionUtil.java @@ -72,7 +72,7 @@ public static ProjectedColumnRepresentation createProjectedColumnRepresentation( target = (Variable) expression; break; } - else if (expression instanceof FieldDereference) { + if (expression instanceof FieldDereference) { FieldDereference dereference = (FieldDereference) expression; ordinals.add(dereference.getField()); expression = dereference.getTarget(); diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveLocationService.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveLocationService.java index 54878a5ee300..18e7d2e468d9 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveLocationService.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveLocationService.java @@ -69,9 +69,7 @@ public LocationHandle forNewTable(SemiTransactionalHiveMetastore metastore, Conn Path writePath = createTemporaryPath(session, context, hdfsEnvironment, targetPath); return new LocationHandle(targetPath, writePath, false, STAGE_AND_MOVE_TO_TARGET_DIRECTORY); } - else { - return new LocationHandle(targetPath, targetPath, false, DIRECT_TO_TARGET_NEW_DIRECTORY); - } + return new LocationHandle(targetPath, targetPath, false, DIRECT_TO_TARGET_NEW_DIRECTORY); } @Override @@ -84,9 +82,7 @@ public LocationHandle forExistingTable(SemiTransactionalHiveMetastore metastore, Path writePath = createTemporaryPath(session, context, hdfsEnvironment, targetPath); return new LocationHandle(targetPath, writePath, true, STAGE_AND_MOVE_TO_TARGET_DIRECTORY); } - else { - return new LocationHandle(targetPath, targetPath, true, DIRECT_TO_TARGET_EXISTING_DIRECTORY); - } + return new LocationHandle(targetPath, targetPath, true, DIRECT_TO_TARGET_EXISTING_DIRECTORY); } @Override @@ -133,13 +129,11 @@ public WriteInfo getPartitionWriteInfo(LocationHandle locationHandle, Optional

= remainingBlockBytes) { // But an extra invocation likely doesn't matter. return new ConnectorSplitBatch(splits, splits.isEmpty() && queues.isFinished()); } - else { - return new ConnectorSplitBatch(splits, false); - } + return new ConnectorSplitBatch(splits, false); }); } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveUpdatablePageSource.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveUpdatablePageSource.java index 3ddba881672a..955f2e3c2cb3 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveUpdatablePageSource.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveUpdatablePageSource.java @@ -257,9 +257,7 @@ public Page getNextPage() List channels = dependencyChannels.orElseThrow(() -> new IllegalArgumentException("dependencyChannels not present")); return updateProcessor.removeNonDependencyColumns(page, channels); } - else { - return page; - } + return page; } @Override diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/coercions/DecimalCoercers.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/coercions/DecimalCoercers.java index 27fd67f16b5d..bb93e4851c8b 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/coercions/DecimalCoercers.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/coercions/DecimalCoercers.java @@ -49,18 +49,12 @@ public static Function createDecimalToDecimalCoercer(DecimalType f if (toType.isShort()) { return new ShortDecimalToShortDecimalCoercer(fromType, toType); } - else { - return new ShortDecimalToLongDecimalCoercer(fromType, toType); - } + return new ShortDecimalToLongDecimalCoercer(fromType, toType); } - else { - if (toType.isShort()) { - return new LongDecimalToShortDecimalCoercer(fromType, toType); - } - else { - return new LongDecimalToLongDecimalCoercer(fromType, toType); - } + if (toType.isShort()) { + return new LongDecimalToShortDecimalCoercer(fromType, toType); } + return new LongDecimalToLongDecimalCoercer(fromType, toType); } private static class ShortDecimalToShortDecimalCoercer @@ -153,9 +147,7 @@ public static Function createDecimalToDoubleCoercer(DecimalType fr if (fromType.isShort()) { return new ShortDecimalToDoubleCoercer(fromType); } - else { - return new LongDecimalToDoubleCoercer(fromType); - } + return new LongDecimalToDoubleCoercer(fromType); } private static class ShortDecimalToDoubleCoercer @@ -198,9 +190,7 @@ public static Function createDecimalToRealCoercer(DecimalType from if (fromType.isShort()) { return new ShortDecimalToRealCoercer(fromType); } - else { - return new LongDecimalToRealCoercer(fromType); - } + return new LongDecimalToRealCoercer(fromType); } private static class ShortDecimalToRealCoercer @@ -243,9 +233,7 @@ public static Function createDoubleToDecimalCoercer(DecimalType to if (toType.isShort()) { return new DoubleToShortDecimalCoercer(toType); } - else { - return new DoubleToLongDecimalCoercer(toType); - } + return new DoubleToLongDecimalCoercer(toType); } private static class DoubleToShortDecimalCoercer @@ -285,9 +273,7 @@ public static Function createRealToDecimalCoercer(DecimalType toTy if (toType.isShort()) { return new RealToShortDecimalCoercer(toType); } - else { - return new RealToLongDecimalCoercer(toType); - } + return new RealToLongDecimalCoercer(toType); } private static class RealToShortDecimalCoercer diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/CachingDirectoryLister.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/CachingDirectoryLister.java index 3c1bacfaef32..71123cbbd40b 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/CachingDirectoryLister.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/CachingDirectoryLister.java @@ -127,9 +127,7 @@ private static RemoteIterator createListingRemoteIterator(Fil if (cacheKey.isRecursiveFilesOnly()) { return fs.listFiles(cacheKey.getPath(), true); } - else { - return fs.listLocatedStatus(cacheKey.getPath()); - } + return fs.listLocatedStatus(cacheKey.getPath()); } @Override diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/TransactionScopeCachingDirectoryLister.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/TransactionScopeCachingDirectoryLister.java index fe462b408dd4..37aa0da0c6e2 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/TransactionScopeCachingDirectoryLister.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/fs/TransactionScopeCachingDirectoryLister.java @@ -107,9 +107,7 @@ private RemoteIterator createListingRemoteIterator(FileSystem if (cacheKey.isRecursiveFilesOnly()) { return delegate.listFilesRecursively(fs, table, cacheKey.getPath()); } - else { - return delegate.list(fs, table, cacheKey.getPath()); - } + return delegate.list(fs, table, cacheKey.getPath()); } @Override diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HivePageSinkMetadataProvider.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HivePageSinkMetadataProvider.java index 750f774509f1..dc1f14d0a9b7 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HivePageSinkMetadataProvider.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HivePageSinkMetadataProvider.java @@ -54,8 +54,6 @@ public Optional getPartition(List partitionValues) if (modifiedPartition == null) { return delegate.getPartition(schemaTableName.getSchemaName(), schemaTableName.getTableName(), partitionValues); } - else { - return modifiedPartition; - } + return modifiedPartition; } } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/MetastoreUtil.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/MetastoreUtil.java index 9e5c16be3808..219044f2d716 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/MetastoreUtil.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/MetastoreUtil.java @@ -276,9 +276,7 @@ private static ProtectMode getProtectMode(Map parameters) if (!parameters.containsKey(ProtectMode.PARAMETER_NAME)) { return new ProtectMode(); } - else { - return getProtectModeFromString(parameters.get(ProtectMode.PARAMETER_NAME)); - } + return getProtectModeFromString(parameters.get(ProtectMode.PARAMETER_NAME)); } public static void verifyOnline(SchemaTableName tableName, Optional partitionName, ProtectMode protectMode, Map parameters) @@ -384,29 +382,29 @@ public static String sqlScalarToString(Type type, Object value, String nullStrin if (value == null) { return nullString; } - else if (type instanceof CharType) { + if (type instanceof CharType) { Slice slice = (Slice) value; return padSpaces(slice, (CharType) type).toStringUtf8(); } - else if (type instanceof VarcharType) { + if (type instanceof VarcharType) { Slice slice = (Slice) value; return slice.toStringUtf8(); } - else if (type instanceof DecimalType && !((DecimalType) type).isShort()) { + if (type instanceof DecimalType && !((DecimalType) type).isShort()) { return Decimals.toString((Int128) value, ((DecimalType) type).getScale()); } - else if (type instanceof DecimalType && ((DecimalType) type).isShort()) { + if (type instanceof DecimalType && ((DecimalType) type).isShort()) { return Decimals.toString((long) value, ((DecimalType) type).getScale()); } - else if (type instanceof DateType) { + if (type instanceof DateType) { DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.date().withZoneUTC(); return dateTimeFormatter.print(TimeUnit.DAYS.toMillis((long) value)); } - else if (type instanceof TimestampType) { + if (type instanceof TimestampType) { // we throw on this type as we don't have timezone. Callers should not ask for this conversion type, but document for possible future work (?) throw new TrinoException(NOT_SUPPORTED, "TimestampType conversion to scalar expressions is not supported"); } - else if (type instanceof TinyintType + if (type instanceof TinyintType || type instanceof SmallintType || type instanceof IntegerType || type instanceof BigintType @@ -415,9 +413,7 @@ else if (type instanceof TinyintType || type instanceof BooleanType) { return value.toString(); } - else { - throw new TrinoException(NOT_SUPPORTED, format("Unsupported partition key type: %s", type.getDisplayName())); - } + throw new TrinoException(NOT_SUPPORTED, format("Unsupported partition key type: %s", type.getDisplayName())); } /** diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/ProtoUtils.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/ProtoUtils.java index 14b0ca3bae75..de3397f019b0 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/ProtoUtils.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/ProtoUtils.java @@ -250,9 +250,7 @@ public static HiveColumnStatistics fromProto(ColumnStatisticsData columnStatisti getTotalSizeInBytes(averageColumnLength, rowCount, nullsCount), nullsCount); } - else { - throw new TrinoException(HIVE_INVALID_METADATA, "Invalid column statistics data: " + columnStatistics); - } + throw new TrinoException(HIVE_INVALID_METADATA, "Invalid column statistics data: " + columnStatistics); } static Column fromProto(alluxio.grpc.table.FieldSchema column) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueColumnStatisticsProvider.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueColumnStatisticsProvider.java index 67f9695e9dbe..0ca852f4a08c 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueColumnStatisticsProvider.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueColumnStatisticsProvider.java @@ -200,15 +200,15 @@ private boolean isGlueWritable(ColumnStatistics stats) DateColumnStatisticsData data = statisticsData.getDateColumnStatisticsData(); return data.getMaximumValue() != null && data.getMinimumValue() != null; } - else if (columnType.equals(ColumnStatisticsType.DECIMAL.toString())) { + if (columnType.equals(ColumnStatisticsType.DECIMAL.toString())) { DecimalColumnStatisticsData data = statisticsData.getDecimalColumnStatisticsData(); return data.getMaximumValue() != null && data.getMinimumValue() != null; } - else if (columnType.equals(ColumnStatisticsType.DOUBLE.toString())) { + if (columnType.equals(ColumnStatisticsType.DOUBLE.toString())) { DoubleColumnStatisticsData data = statisticsData.getDoubleColumnStatisticsData(); return data.getMaximumValue() != null && data.getMinimumValue() != null; } - else if (columnType.equals(ColumnStatisticsType.LONG.toString())) { + if (columnType.equals(ColumnStatisticsType.LONG.toString())) { LongColumnStatisticsData data = statisticsData.getLongColumnStatisticsData(); return data.getMaximumValue() != null && data.getMinimumValue() != null; } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/converter/GlueToTrinoConverter.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/converter/GlueToTrinoConverter.java index 329b27822881..353e38ceee02 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/converter/GlueToTrinoConverter.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/converter/GlueToTrinoConverter.java @@ -117,9 +117,7 @@ private static Column convertColumn(com.amazonaws.services.glue.model.Column glu //TODO(https://github.com/trinodb/trino/issues/7240) Add tests return new Column(glueColumn.getName(), HiveType.HIVE_STRING, Optional.ofNullable(glueColumn.getComment())); } - else { - return new Column(glueColumn.getName(), HiveType.valueOf(glueColumn.getType().toLowerCase(Locale.ENGLISH)), Optional.ofNullable(glueColumn.getComment())); - } + return new Column(glueColumn.getName(), HiveType.valueOf(glueColumn.getType().toLowerCase(Locale.ENGLISH)), Optional.ofNullable(glueColumn.getComment())); } private static List convertColumns(List glueColumns, String serde) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastoreUtil.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastoreUtil.java index ac3ef86446ba..7a0afb5aed76 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastoreUtil.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftMetastoreUtil.java @@ -552,9 +552,7 @@ public static HiveColumnStatistics fromMetastoreApiColumnStatistics(ColumnStatis getTotalSizeInBytes(averageColumnLength, rowCount, nullsCount), nullsCount); } - else { - throw new TrinoException(HIVE_INVALID_METADATA, "Invalid column statistics data: " + columnStatistics); - } + throw new TrinoException(HIVE_INVALID_METADATA, "Invalid column statistics data: " + columnStatistics); } private static Optional fromMetastoreDate(Date date) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/s3select/S3SelectRecordCursorProvider.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/s3select/S3SelectRecordCursorProvider.java index de8c1cfa4082..d06d1b057923 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/s3select/S3SelectRecordCursorProvider.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/s3select/S3SelectRecordCursorProvider.java @@ -117,10 +117,8 @@ public Optional createRecordCursor( RecordCursor cursor = new S3SelectRecordCursor<>(configuration, path, recordReader.get(), length, schema, readerColumns); return Optional.of(new ReaderRecordCursorWithProjections(cursor, projectedReaderColumns)); } - else { - // unsupported serdes - return Optional.empty(); - } + // unsupported serdes + return Optional.empty(); } private static boolean hasFilters( diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveUtil.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveUtil.java index 02945e194231..38f11ad8f515 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveUtil.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/HiveUtil.java @@ -556,12 +556,10 @@ public static NullableValue parsePartitionValue(String partitionName, String val } return NullableValue.of(decimalType, shortDecimalPartitionKey(value, decimalType, partitionName)); } - else { - if (value.isEmpty()) { - return NullableValue.of(decimalType, Int128.ZERO); - } - return NullableValue.of(decimalType, longDecimalPartitionKey(value, decimalType, partitionName)); + if (value.isEmpty()) { + return NullableValue.of(decimalType, Int128.ZERO); } + return NullableValue.of(decimalType, longDecimalPartitionKey(value, decimalType, partitionName)); } if (BOOLEAN.equals(type)) { @@ -685,9 +683,7 @@ public static Optional getDecimalType(String hiveTypeName) int scale = parseInt(matcher.group(DECIMAL_SCALE_GROUP)); return Optional.of(createDecimalType(precision, scale)); } - else { - return Optional.empty(); - } + return Optional.empty(); } public static boolean isArrayType(Type type) @@ -988,50 +984,50 @@ else if (isPartitionColumnHandle(columnHandle)) { if (isHiveNull(bytes)) { return NullableValue.asNull(type); } - else if (type.equals(BOOLEAN)) { + if (type.equals(BOOLEAN)) { return NullableValue.of(type, booleanPartitionKey(columnValue, name)); } - else if (type.equals(BIGINT)) { + if (type.equals(BIGINT)) { return NullableValue.of(type, bigintPartitionKey(columnValue, name)); } - else if (type.equals(INTEGER)) { + if (type.equals(INTEGER)) { return NullableValue.of(type, integerPartitionKey(columnValue, name)); } - else if (type.equals(SMALLINT)) { + if (type.equals(SMALLINT)) { return NullableValue.of(type, smallintPartitionKey(columnValue, name)); } - else if (type.equals(TINYINT)) { + if (type.equals(TINYINT)) { return NullableValue.of(type, tinyintPartitionKey(columnValue, name)); } - else if (type.equals(REAL)) { + if (type.equals(REAL)) { return NullableValue.of(type, floatPartitionKey(columnValue, name)); } - else if (type.equals(DOUBLE)) { + if (type.equals(DOUBLE)) { return NullableValue.of(type, doublePartitionKey(columnValue, name)); } - else if (type instanceof VarcharType) { + if (type instanceof VarcharType) { return NullableValue.of(type, varcharPartitionKey(columnValue, name, type)); } - else if (type instanceof CharType) { + if (type instanceof CharType) { return NullableValue.of(type, charPartitionKey(columnValue, name, type)); } - else if (type.equals(DATE)) { + if (type.equals(DATE)) { return NullableValue.of(type, datePartitionKey(columnValue, name)); } - else if (type.equals(TIMESTAMP_MILLIS)) { + if (type.equals(TIMESTAMP_MILLIS)) { return NullableValue.of(type, timestampPartitionKey(columnValue, name)); } - else if (type.equals(TIMESTAMP_TZ_MILLIS)) { + if (type.equals(TIMESTAMP_TZ_MILLIS)) { // used for $file_modified_time return NullableValue.of(type, packDateTimeWithZone(floorDiv(timestampPartitionKey(columnValue, name), MICROSECONDS_PER_MILLISECOND), DateTimeZone.getDefault().getID())); } - else if (isShortDecimal(type)) { + if (isShortDecimal(type)) { return NullableValue.of(type, shortDecimalPartitionKey(columnValue, (DecimalType) type, name)); } - else if (isLongDecimal(type)) { + if (isLongDecimal(type)) { return NullableValue.of(type, longDecimalPartitionKey(columnValue, (DecimalType) type, name)); } - else if (type.equals(VarbinaryType.VARBINARY)) { + if (type.equals(VarbinaryType.VARBINARY)) { return NullableValue.of(type, utf8Slice(columnValue)); } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/SerDeUtils.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/SerDeUtils.java index 19324bb7d904..1633f04846b6 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/SerDeUtils.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/util/SerDeUtils.java @@ -199,10 +199,8 @@ private static Block serializeList(Type type, BlockBuilder builder, Object objec builder.closeEntry(); return null; } - else { - Block resultBlock = currentBuilder.build(); - return resultBlock; - } + Block resultBlock = currentBuilder.build(); + return resultBlock; } private static Block serializeMap(Type type, BlockBuilder builder, Object object, MapObjectInspector inspector, boolean filterNullMapKeys) @@ -240,9 +238,7 @@ private static Block serializeMap(Type type, BlockBuilder builder, Object object if (builderSynthesized) { return (Block) type.getObject(builder, 0); } - else { - return null; - } + return null; } private static Block serializeStruct(Type type, BlockBuilder builder, Object object, StructObjectInspector inspector) @@ -273,9 +269,7 @@ private static Block serializeStruct(Type type, BlockBuilder builder, Object obj if (builderSynthesized) { return (Block) type.getObject(builder, 0); } - else { - return null; - } + return null; } // Use row blocks to represent union objects when reading diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileFormats.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileFormats.java index 5ba17c0cccca..64d3e564c076 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileFormats.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileFormats.java @@ -727,9 +727,7 @@ public static Object getFieldFromCursor(RecordCursor cursor, Type type, int fiel if (decimalType.isShort()) { return BigInteger.valueOf(cursor.getLong(field)); } - else { - return ((Int128) cursor.getObject(field)).toBigInteger(); - } + return ((Int128) cursor.getObject(field)).toBigInteger(); } throw new RuntimeException("unknown type"); } diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestReaderProjectionsAdapter.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestReaderProjectionsAdapter.java index eac2452834e4..b39e347310c1 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestReaderProjectionsAdapter.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestReaderProjectionsAdapter.java @@ -163,12 +163,10 @@ private static Block createInputBlock(List data, Type type) if (type instanceof RowType) { return new LazyBlock(data.size(), () -> createRowBlockWithLazyNestedBlocks(data, (RowType) type)); } - else if (BIGINT.equals(type)) { + if (BIGINT.equals(type)) { return new LazyBlock(positionCount, () -> createLongArrayBlock(data)); } - else { - throw new UnsupportedOperationException(); - } + throw new UnsupportedOperationException(); } private static Block createRowBlockWithLazyNestedBlocks(List data, RowType rowType) diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/benchmark/BenchmarkProjectionPushdownHive.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/benchmark/BenchmarkProjectionPushdownHive.java index f1d044cef9d6..1a114ced0e1b 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/benchmark/BenchmarkProjectionPushdownHive.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/benchmark/BenchmarkProjectionPushdownHive.java @@ -274,14 +274,14 @@ private Block createBlock(Type type, int rowCount) return RowBlock.fromFieldBlocks(rowCount, Optional.empty(), fieldBlocks); } - else if (type instanceof VarcharType) { + if (type instanceof VarcharType) { BlockBuilder builder = VARCHAR.createBlockBuilder(null, rowCount); for (int i = 0; i < rowCount; i++) { VARCHAR.writeString(builder, generateRandomString(random, 500)); } return builder.build(); } - else if (type instanceof ArrayType) { + if (type instanceof ArrayType) { ArrayType arrayType = (ArrayType) type; Type elementType = arrayType.getElementType(); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/recording/TestRecordingHiveMetastore.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/recording/TestRecordingHiveMetastore.java index 586d41f36698..97c44abd4e7f 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/recording/TestRecordingHiveMetastore.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/recording/TestRecordingHiveMetastore.java @@ -311,7 +311,7 @@ public Optional getPartition(Table table, List partitionValue if (partitionValues.equals(ImmutableList.of("value"))) { return Optional.of(PARTITION); } - else if (partitionValues.equals(ImmutableList.of("other_value"))) { + if (partitionValues.equals(ImmutableList.of("other_value"))) { return Optional.of(OTHER_PARTITION); } } diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/MapKeyValuesSchemaConverter.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/MapKeyValuesSchemaConverter.java index c0c9347c50b9..2ee37c0ed82c 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/MapKeyValuesSchemaConverter.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/MapKeyValuesSchemaConverter.java @@ -71,72 +71,68 @@ private static Type convertType(String name, TypeInfo typeInfo, Repetition repet return Types.primitive(PrimitiveTypeName.BINARY, repetition).as(LogicalTypeAnnotation.stringType()) .named(name); } - else if (typeInfo.equals(TypeInfoFactory.intTypeInfo) || + if (typeInfo.equals(TypeInfoFactory.intTypeInfo) || typeInfo.equals(TypeInfoFactory.shortTypeInfo) || typeInfo.equals(TypeInfoFactory.byteTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT32, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.longTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.longTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT64, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.doubleTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.doubleTypeInfo)) { return Types.primitive(PrimitiveTypeName.DOUBLE, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.floatTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.floatTypeInfo)) { return Types.primitive(PrimitiveTypeName.FLOAT, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.booleanTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.booleanTypeInfo)) { return Types.primitive(PrimitiveTypeName.BOOLEAN, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.binaryTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.binaryTypeInfo)) { return Types.primitive(PrimitiveTypeName.BINARY, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.timestampTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.timestampTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT96, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.voidTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.voidTypeInfo)) { throw new UnsupportedOperationException("Void type not implemented"); } - else if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( + if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( serdeConstants.CHAR_TYPE_NAME)) { return Types.optional(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); } - else if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( + if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( serdeConstants.VARCHAR_TYPE_NAME)) { return Types.optional(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); } - else if (typeInfo instanceof DecimalTypeInfo) { + if (typeInfo instanceof DecimalTypeInfo) { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) typeInfo; int prec = decimalTypeInfo.precision(); int scale = decimalTypeInfo.scale(); int bytes = ParquetHiveSerDe.PRECISION_TO_BYTE_COUNT[prec - 1]; return Types.optional(PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY).length(bytes).as(LogicalTypeAnnotation.decimalType(scale, prec)).named(name); } - else if (typeInfo.equals(TypeInfoFactory.dateTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.dateTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT32, repetition).as(LogicalTypeAnnotation.dateType()).named(name); } - else if (typeInfo.equals(TypeInfoFactory.unknownTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.unknownTypeInfo)) { throw new UnsupportedOperationException("Unknown type not implemented"); } - else { - throw new IllegalArgumentException("Unknown type: " + typeInfo); - } + throw new IllegalArgumentException("Unknown type: " + typeInfo); } - else if (typeInfo.getCategory() == Category.LIST) { + if (typeInfo.getCategory() == Category.LIST) { return convertArrayType(name, (ListTypeInfo) typeInfo); } - else if (typeInfo.getCategory() == Category.STRUCT) { + if (typeInfo.getCategory() == Category.STRUCT) { return convertStructType(name, (StructTypeInfo) typeInfo); } - else if (typeInfo.getCategory() == Category.MAP) { + if (typeInfo.getCategory() == Category.MAP) { return convertMapType(name, (MapTypeInfo) typeInfo); } - else if (typeInfo.getCategory() == Category.UNION) { + if (typeInfo.getCategory() == Category.UNION) { throw new UnsupportedOperationException("Union type not implemented"); } - else { - throw new IllegalArgumentException("Unknown type: " + typeInfo); - } + throw new IllegalArgumentException("Unknown type: " + typeInfo); } // An optional group containing a repeated anonymous group "bag", containing @@ -183,19 +179,17 @@ public static GroupType mapType(Repetition repetition, String alias, String mapA mapAlias, keyType)); } - else { - if (!valueType.getName().equals("value")) { - throw new RuntimeException(valueType.getName() + " should be value"); - } - return mapKvWrapper( - repetition, - alias, - new GroupType( - Repetition.REPEATED, - mapAlias, - keyType, - valueType)); + if (!valueType.getName().equals("value")) { + throw new RuntimeException(valueType.getName() + " should be value"); } + return mapKvWrapper( + repetition, + alias, + new GroupType( + Repetition.REPEATED, + mapAlias, + keyType, + valueType)); } private static GroupType mapKvWrapper(Repetition repetition, String alias, Type nested) diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/SingleLevelArraySchemaConverter.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/SingleLevelArraySchemaConverter.java index f508b4dfb290..1b6f44d901b1 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/SingleLevelArraySchemaConverter.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/parquet/write/SingleLevelArraySchemaConverter.java @@ -74,51 +74,47 @@ private static Type convertType(String name, TypeInfo typeInfo, return Types.primitive(PrimitiveTypeName.BINARY, repetition).as(LogicalTypeAnnotation.stringType()) .named(name); } - else if (typeInfo.equals(TypeInfoFactory.intTypeInfo) || + if (typeInfo.equals(TypeInfoFactory.intTypeInfo) || typeInfo.equals(TypeInfoFactory.shortTypeInfo) || typeInfo.equals(TypeInfoFactory.byteTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT32, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.longTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.longTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT64, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.doubleTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.doubleTypeInfo)) { return Types.primitive(PrimitiveTypeName.DOUBLE, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.floatTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.floatTypeInfo)) { return Types.primitive(PrimitiveTypeName.FLOAT, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.booleanTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.booleanTypeInfo)) { return Types.primitive(PrimitiveTypeName.BOOLEAN, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.binaryTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.binaryTypeInfo)) { return Types.primitive(PrimitiveTypeName.BINARY, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.timestampTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.timestampTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT96, repetition).named(name); } - else if (typeInfo.equals(TypeInfoFactory.voidTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.voidTypeInfo)) { throw new UnsupportedOperationException("Void type not implemented"); } - else if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( + if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( serdeConstants.CHAR_TYPE_NAME)) { if (repetition == Repetition.OPTIONAL) { return Types.optional(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); } - else { - return Types.repeated(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); - } + return Types.repeated(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); } - else if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( + if (typeInfo.getTypeName().toLowerCase(Locale.ENGLISH).startsWith( serdeConstants.VARCHAR_TYPE_NAME)) { if (repetition == Repetition.OPTIONAL) { return Types.optional(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); } - else { - return Types.repeated(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); - } + return Types.repeated(PrimitiveTypeName.BINARY).as(LogicalTypeAnnotation.stringType()).named(name); } - else if (typeInfo instanceof DecimalTypeInfo) { + if (typeInfo instanceof DecimalTypeInfo) { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) typeInfo; int prec = decimalTypeInfo.precision(); int scale = decimalTypeInfo.scale(); @@ -126,35 +122,29 @@ else if (typeInfo instanceof DecimalTypeInfo) { if (repetition == Repetition.OPTIONAL) { return Types.optional(PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY).length(bytes).as(LogicalTypeAnnotation.decimalType(scale, prec)).named(name); } - else { - return Types.repeated(PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY).length(bytes).as(LogicalTypeAnnotation.decimalType(scale, prec)).named(name); - } + return Types.repeated(PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY).length(bytes).as(LogicalTypeAnnotation.decimalType(scale, prec)).named(name); } - else if (typeInfo.equals(TypeInfoFactory.dateTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.dateTypeInfo)) { return Types.primitive(PrimitiveTypeName.INT32, repetition).as(LogicalTypeAnnotation.dateType()).named(name); } - else if (typeInfo.equals(TypeInfoFactory.unknownTypeInfo)) { + if (typeInfo.equals(TypeInfoFactory.unknownTypeInfo)) { throw new UnsupportedOperationException("Unknown type not implemented"); } - else { - throw new IllegalArgumentException("Unknown type: " + typeInfo); - } + throw new IllegalArgumentException("Unknown type: " + typeInfo); } - else if (typeInfo.getCategory() == Category.LIST) { + if (typeInfo.getCategory() == Category.LIST) { return convertArrayType(name, (ListTypeInfo) typeInfo, repetition); } - else if (typeInfo.getCategory() == Category.STRUCT) { + if (typeInfo.getCategory() == Category.STRUCT) { return convertStructType(name, (StructTypeInfo) typeInfo, repetition); } - else if (typeInfo.getCategory() == Category.MAP) { + if (typeInfo.getCategory() == Category.MAP) { return convertMapType(name, (MapTypeInfo) typeInfo, repetition); } - else if (typeInfo.getCategory() == Category.UNION) { + if (typeInfo.getCategory() == Category.UNION) { throw new UnsupportedOperationException("Union type not implemented"); } - else { - throw new IllegalArgumentException("Unknown type: " + typeInfo); - } + throw new IllegalArgumentException("Unknown type: " + typeInfo); } // 1 anonymous element "array_element" diff --git a/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxMetadata.java b/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxMetadata.java index a4fe0b656409..9029216786c1 100644 --- a/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxMetadata.java +++ b/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxMetadata.java @@ -204,7 +204,7 @@ public List listTables(ConnectorSession session, Optional new SchemaTableName(JmxMetadata.HISTORY_SCHEMA_NAME, tableName)) .collect(toList()); diff --git a/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaFilterManager.java b/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaFilterManager.java index 098b1fecd314..aed71a9f4338 100644 --- a/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaFilterManager.java +++ b/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaFilterManager.java @@ -248,27 +248,23 @@ public static Set filterValuesByDomain(Domain domain, Set sourceValu long singleValue = (long) domain.getSingleValue(); return sourceValues.stream().filter(sourceValue -> sourceValue == singleValue).collect(toImmutableSet()); } - else { - ValueSet valueSet = domain.getValues(); - if (valueSet instanceof SortedRangeSet) { - Ranges ranges = ((SortedRangeSet) valueSet).getRanges(); - List rangeList = ranges.getOrderedRanges(); - if (rangeList.stream().allMatch(io.trino.spi.predicate.Range::isSingleValue)) { - return rangeList.stream() - .map(range -> (Long) range.getSingleValue()) - .filter(sourceValues::contains) - .collect(toImmutableSet()); - } - else { - // still return values for range case like (_partition_id > 1) - io.trino.spi.predicate.Range span = ranges.getSpan(); - long low = getLowIncludedValue(span).orElse(0L); - long high = getHighIncludedValue(span).orElse(Long.MAX_VALUE); - return sourceValues.stream() - .filter(item -> item >= low && item <= high) - .collect(toImmutableSet()); - } + ValueSet valueSet = domain.getValues(); + if (valueSet instanceof SortedRangeSet) { + Ranges ranges = ((SortedRangeSet) valueSet).getRanges(); + List rangeList = ranges.getOrderedRanges(); + if (rangeList.stream().allMatch(io.trino.spi.predicate.Range::isSingleValue)) { + return rangeList.stream() + .map(range -> (Long) range.getSingleValue()) + .filter(sourceValues::contains) + .collect(toImmutableSet()); } + // still return values for range case like (_partition_id > 1) + io.trino.spi.predicate.Range span = ranges.getSpan(); + long low = getLowIncludedValue(span).orElse(0L); + long high = getHighIncludedValue(span).orElse(Long.MAX_VALUE); + return sourceValues.stream() + .filter(item -> item >= low && item <= high) + .collect(toImmutableSet()); } return sourceValues; } diff --git a/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/schema/confluent/AvroSchemaConverter.java b/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/schema/confluent/AvroSchemaConverter.java index 7729187a1c09..9752939fea91 100644 --- a/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/schema/confluent/AvroSchemaConverter.java +++ b/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/schema/confluent/AvroSchemaConverter.java @@ -159,19 +159,19 @@ private Optional convertUnion(Schema schema) .filter(type -> type.getType() != NULL) .collect(toImmutableList()))); } - else if (schema.getTypes().size() == 1) { + if (schema.getTypes().size() == 1) { return convert(getOnlyElement(schema.getTypes())); } - else if (INTEGRAL_TYPES.containsAll(types)) { + if (INTEGRAL_TYPES.containsAll(types)) { return Optional.of(BigintType.BIGINT); } - else if (DECIMAL_TYPES.containsAll(types)) { + if (DECIMAL_TYPES.containsAll(types)) { return Optional.of(DoubleType.DOUBLE); } - else if (STRING_TYPES.containsAll(types)) { + if (STRING_TYPES.containsAll(types)) { return Optional.of(VarcharType.VARCHAR); } - else if (BINARY_TYPES.containsAll(types)) { + if (BINARY_TYPES.containsAll(types)) { return Optional.of(VarbinaryType.VARBINARY); } throw new UnsupportedOperationException(format("Incompatible UNION type: '%s'", schema.toString(true))); diff --git a/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisRecordSet.java b/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisRecordSet.java index 9aa5060ae913..b4500b6fae73 100644 --- a/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisRecordSet.java +++ b/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisRecordSet.java @@ -241,15 +241,13 @@ public boolean advanceNextPosition() if (listIterator.hasNext()) { return nextRow(); } - else { - log.debug("(%s:%s) Read all of the records from the shard: %d batches and %d messages and %d total bytes.", - split.getStreamName(), - split.getShardId(), - batchesRead, - totalMessages, - totalBytes); - return false; - } + log.debug("(%s:%s) Read all of the records from the shard: %d batches and %d messages and %d total bytes.", + split.getStreamName(), + split.getShardId(), + batchesRead, + totalMessages, + totalBytes); + return false; } private boolean shouldGetMoreRecords() diff --git a/plugin/trino-kinesis/src/test/java/io/trino/plugin/kinesis/util/MockKinesisClient.java b/plugin/trino-kinesis/src/test/java/io/trino/plugin/kinesis/util/MockKinesisClient.java index e53ef407d41c..8d762746ed96 100644 --- a/plugin/trino-kinesis/src/test/java/io/trino/plugin/kinesis/util/MockKinesisClient.java +++ b/plugin/trino-kinesis/src/test/java/io/trino/plugin/kinesis/util/MockKinesisClient.java @@ -169,9 +169,7 @@ public List getShardsFrom(String afterShardId) return returnArray; } - else { - return new ArrayList<>(); - } + return new ArrayList<>(); } public PutRecordResult putRecord(ByteBuffer data, String partitionKey) @@ -289,9 +287,7 @@ public PutRecordResult putRecord(PutRecordRequest putRecordRequest) if (theStream != null) { return theStream.putRecord(putRecordRequest.getData(), putRecordRequest.getPartitionKey()); } - else { - throw new AmazonClientException("This stream does not exist!"); - } + throw new AmazonClientException("This stream does not exist!"); } @Override @@ -328,9 +324,7 @@ public PutRecordsResult putRecords(PutRecordsRequest putRecordsRequest) result.setRecords(resultList); return result; } - else { - throw new AmazonClientException("This stream does not exist!"); - } + throw new AmazonClientException("This stream does not exist!"); } @Override diff --git a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/KuduTableProperties.java b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/KuduTableProperties.java index 1603a233bc3d..21a81ad4ec1e 100644 --- a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/KuduTableProperties.java +++ b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/KuduTableProperties.java @@ -342,23 +342,21 @@ private static RangeBoundValue buildRangePartitionBound(KuduTable table, byte[] if (rangeKey.length == 0) { return null; } - else { - Schema schema = table.getSchema(); - PartitionSchema partitionSchema = table.getPartitionSchema(); - PartitionSchema.RangeSchema rangeSchema = partitionSchema.getRangeSchema(); - List rangeColumns = rangeSchema.getColumnIds(); + Schema schema = table.getSchema(); + PartitionSchema partitionSchema = table.getPartitionSchema(); + PartitionSchema.RangeSchema rangeSchema = partitionSchema.getRangeSchema(); + List rangeColumns = rangeSchema.getColumnIds(); - int numColumns = rangeColumns.size(); + int numColumns = rangeColumns.size(); - PartialRow bound = KeyEncoderAccessor.decodeRangePartitionKey(schema, partitionSchema, rangeKey); + PartialRow bound = KeyEncoderAccessor.decodeRangePartitionKey(schema, partitionSchema, rangeKey); - ArrayList list = new ArrayList<>(); - for (int i = 0; i < numColumns; i++) { - Object obj = toValue(schema, bound, rangeColumns.get(i)); - list.add(obj); - } - return new RangeBoundValue(list); + ArrayList list = new ArrayList<>(); + for (int i = 0; i < numColumns; i++) { + Object obj = toValue(schema, bound, rangeColumns.get(i)); + list.add(obj); } + return new RangeBoundValue(list); } private static Object toValue(Schema schema, PartialRow bound, Integer idx) @@ -506,13 +504,11 @@ private static byte[] toByteArray(Object obj, Type type, String name) if (obj instanceof byte[]) { return (byte[]) obj; } - else if (obj instanceof String) { + if (obj instanceof String) { return Base64.getDecoder().decode((String) obj); } - else { - handleInvalidValue(name, type, obj); - return null; - } + handleInvalidValue(name, type, obj); + return null; } private static boolean toBoolean(Object obj, Type type, String name) @@ -520,13 +516,11 @@ private static boolean toBoolean(Object obj, Type type, String name) if (obj instanceof Boolean) { return (Boolean) obj; } - else if (obj instanceof String) { + if (obj instanceof String) { return Boolean.valueOf((String) obj); } - else { - handleInvalidValue(name, type, obj); - return false; - } + handleInvalidValue(name, type, obj); + return false; } private static long toUnixTimeMicros(Object obj, Type type, String name) @@ -534,16 +528,14 @@ private static long toUnixTimeMicros(Object obj, Type type, String name) if (Number.class.isAssignableFrom(obj.getClass())) { return ((Number) obj).longValue(); } - else if (obj instanceof String) { + if (obj instanceof String) { String s = (String) obj; s = s.trim().replace(' ', 'T'); long millis = ISODateTimeFormat.dateOptionalTimeParser().withZone(DateTimeZone.UTC).parseMillis(s); return millis * 1000; } - else { - handleInvalidValue(name, type, obj); - return 0; - } + handleInvalidValue(name, type, obj); + return 0; } private static Number toNumber(Object obj, Type type, String name) @@ -551,13 +543,11 @@ private static Number toNumber(Object obj, Type type, String name) if (Number.class.isAssignableFrom(obj.getClass())) { return (Number) obj; } - else if (obj instanceof String) { + if (obj instanceof String) { return new BigDecimal((String) obj); } - else { - handleInvalidValue(name, type, obj); - return 0; - } + handleInvalidValue(name, type, obj); + return 0; } private static void handleInvalidValue(String name, Type type, Object obj) diff --git a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueDeserializer.java b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueDeserializer.java index df7b9ad527c4..554f61a1f7e8 100644 --- a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueDeserializer.java +++ b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueDeserializer.java @@ -36,22 +36,20 @@ public RangeBoundValue deserialize(JsonParser jp, DeserializationContext ctxt) if (node.isNull()) { return null; } - else { - List list; - if (node.isArray()) { - list = new ArrayList<>(); - Iterator iter = node.elements(); - while (iter.hasNext()) { - Object v = toValue(iter.next()); - list.add(v); - } - } - else { - Object v = toValue(node); - list = ImmutableList.of(v); + List list; + if (node.isArray()) { + list = new ArrayList<>(); + Iterator iter = node.elements(); + while (iter.hasNext()) { + Object v = toValue(iter.next()); + list.add(v); } - return new RangeBoundValue(list); } + else { + Object v = toValue(node); + list = ImmutableList.of(v); + } + return new RangeBoundValue(list); } private Object toValue(JsonNode node) @@ -60,17 +58,15 @@ private Object toValue(JsonNode node) if (node.isTextual()) { return node.asText(); } - else if (node.isNumber()) { + if (node.isNumber()) { return node.numberValue(); } - else if (node.isBoolean()) { + if (node.isBoolean()) { return node.asBoolean(); } - else if (node.isBinary()) { + if (node.isBinary()) { return node.binaryValue(); } - else { - throw new IllegalStateException("Unexpected range bound value: " + node); - } + throw new IllegalStateException("Unexpected range bound value: " + node); } } diff --git a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueSerializer.java b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueSerializer.java index 73a9dd902879..b1c484b30120 100644 --- a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueSerializer.java +++ b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/properties/RangeBoundValueSerializer.java @@ -51,7 +51,7 @@ private void writeValue(Object obj, JsonGenerator gen) if (obj == null) { throw new IllegalStateException("Unexpected null value"); } - else if (obj instanceof String) { + if (obj instanceof String) { gen.writeString((String) obj); } else if (Number.class.isAssignableFrom(obj.getClass())) { diff --git a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/NoSchemaEmulation.java b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/NoSchemaEmulation.java index 692db5327d3f..b3e4b44f8b0d 100644 --- a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/NoSchemaEmulation.java +++ b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/NoSchemaEmulation.java @@ -33,9 +33,7 @@ public void createSchema(KuduClientWrapper client, String schemaName) if (DEFAULT_SCHEMA.equals(schemaName)) { throw new SchemaAlreadyExistsException(schemaName); } - else { - throw new TrinoException(GENERIC_USER_ERROR, "Creating schema in Kudu connector not allowed if schema emulation is disabled."); - } + throw new TrinoException(GENERIC_USER_ERROR, "Creating schema in Kudu connector not allowed if schema emulation is disabled."); } @Override @@ -44,9 +42,7 @@ public void dropSchema(KuduClientWrapper client, String schemaName) if (DEFAULT_SCHEMA.equals(schemaName)) { throw new TrinoException(GENERIC_USER_ERROR, "Deleting default schema not allowed."); } - else { - throw new SchemaNotFoundException(schemaName); - } + throw new SchemaNotFoundException(schemaName); } @Override @@ -67,9 +63,7 @@ public String toRawName(SchemaTableName schemaTableName) if (DEFAULT_SCHEMA.equals(schemaTableName.getSchemaName())) { return schemaTableName.getTableName(); } - else { - throw new SchemaNotFoundException(schemaTableName.getSchemaName()); - } + throw new SchemaNotFoundException(schemaTableName.getSchemaName()); } @Override diff --git a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java index 72d558adab2d..496e2a86205d 100644 --- a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java +++ b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java @@ -59,16 +59,14 @@ public void createSchema(KuduClientWrapper client, String schemaName) if (DEFAULT_SCHEMA.equals(schemaName)) { throw new SchemaAlreadyExistsException(schemaName); } - else { - try (KuduOperationApplier operationApplier = KuduOperationApplier.fromKuduClientWrapper(client)) { - KuduTable schemasTable = getSchemasTable(client); - Upsert upsert = schemasTable.newUpsert(); - upsert.getRow().addString(0, schemaName); - operationApplier.applyOperationAsync(upsert); - } - catch (KuduException e) { - throw new TrinoException(GENERIC_INTERNAL_ERROR, e); - } + try (KuduOperationApplier operationApplier = KuduOperationApplier.fromKuduClientWrapper(client)) { + KuduTable schemasTable = getSchemasTable(client); + Upsert upsert = schemasTable.newUpsert(); + upsert.getRow().addString(0, schemaName); + operationApplier.applyOperationAsync(upsert); + } + catch (KuduException e) { + throw new TrinoException(GENERIC_INTERNAL_ERROR, e); } } @@ -78,10 +76,8 @@ public boolean existsSchema(KuduClientWrapper client, String schemaName) if (DEFAULT_SCHEMA.equals(schemaName)) { return true; } - else { - List schemas = listSchemaNames(client); - return schemas.contains(schemaName); - } + List schemas = listSchemaNames(client); + return schemas.contains(schemaName); } @Override @@ -90,21 +86,19 @@ public void dropSchema(KuduClientWrapper client, String schemaName) if (DEFAULT_SCHEMA.equals(schemaName)) { throw new TrinoException(GENERIC_USER_ERROR, "Deleting default schema not allowed."); } - else { - try (KuduOperationApplier operationApplier = KuduOperationApplier.fromKuduClientWrapper(client)) { - String prefix = getPrefixForTablesOfSchema(schemaName); - for (String name : client.getTablesList(prefix).getTablesList()) { - client.deleteTable(name); - } - - KuduTable schemasTable = getSchemasTable(client); - Delete delete = schemasTable.newDelete(); - delete.getRow().addString(0, schemaName); - operationApplier.applyOperationAsync(delete); - } - catch (KuduException e) { - throw new TrinoException(GENERIC_INTERNAL_ERROR, e); + try (KuduOperationApplier operationApplier = KuduOperationApplier.fromKuduClientWrapper(client)) { + String prefix = getPrefixForTablesOfSchema(schemaName); + for (String name : client.getTablesList(prefix).getTablesList()) { + client.deleteTable(name); } + + KuduTable schemasTable = getSchemasTable(client); + Delete delete = schemasTable.newDelete(); + delete.getRow().addString(0, schemaName); + operationApplier.applyOperationAsync(delete); + } + catch (KuduException e) { + throw new TrinoException(GENERIC_INTERNAL_ERROR, e); } } @@ -217,9 +211,7 @@ else if (schemaTableName.getSchemaName().indexOf('.') != -1) { if (DEFAULT_SCHEMA.equals(schemaTableName.getSchemaName())) { return schemaTableName.getTableName(); } - else { - return commonPrefix + schemaTableName.getSchemaName() + "." + schemaTableName.getTableName(); - } + return commonPrefix + schemaTableName.getSchemaName() + "." + schemaTableName.getTableName(); } @Override @@ -256,9 +248,7 @@ public String getPrefixForTablesOfSchema(String schemaName) if (DEFAULT_SCHEMA.equals(schemaName)) { return ""; } - else { - return commonPrefix + schemaName + "."; - } + return commonPrefix + schemaName + "."; } @Override diff --git a/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileRecordCursor.java b/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileRecordCursor.java index 49195ce9b73b..6c22c1597ba6 100644 --- a/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileRecordCursor.java +++ b/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileRecordCursor.java @@ -198,10 +198,8 @@ public long getLong(int field) if (getType(field).equals(createTimestampWithTimeZoneType(3))) { return parseTimestamp(getFieldValue(field)); } - else { - checkFieldType(field, BIGINT, INTEGER); - return Long.parseLong(getFieldValue(field)); - } + checkFieldType(field, BIGINT, INTEGER); + return Long.parseLong(getFieldValue(field)); } @Override diff --git a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSource.java b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSource.java index 30d0d16e5788..19040251cda4 100644 --- a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSource.java +++ b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSource.java @@ -313,7 +313,7 @@ else if (isMapType(type)) { output.closeEntry(); return; } - else if (value instanceof Map) { + if (value instanceof Map) { BlockBuilder builder = output.beginBlockEntry(); Map document = (Map) value; for (Map.Entry entry : document.entrySet()) { @@ -341,7 +341,7 @@ else if (isRowType(type)) { output.closeEntry(); return; } - else if (value instanceof DBRef) { + if (value instanceof DBRef) { DBRef dbRefValue = (DBRef) value; BlockBuilder builder = output.beginBlockEntry(); @@ -353,7 +353,7 @@ else if (value instanceof DBRef) { output.closeEntry(); return; } - else if (value instanceof List) { + if (value instanceof List) { List listValue = (List) value; BlockBuilder builder = output.beginBlockEntry(); for (int index = 0; index < type.getTypeParameters().size(); index++) { diff --git a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSession.java b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSession.java index 122460f54298..f43530a1a14c 100644 --- a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSession.java +++ b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSession.java @@ -557,17 +557,15 @@ private Document getTableMetadata(String schemaName, String tableName) if (!collectionExists(db, tableName)) { throw new TableNotFoundException(new SchemaTableName(schemaName, tableName), format("Table '%s.%s' not found", schemaName, tableName), null); } - else { - Document metadata = new Document(TABLE_NAME_KEY, tableName); - metadata.append(FIELDS_KEY, guessTableFields(schemaName, tableName)); - if (!indexExists(schema)) { - schema.createIndex(new Document(TABLE_NAME_KEY, 1), new IndexOptions().unique(true)); - } + Document metadata = new Document(TABLE_NAME_KEY, tableName); + metadata.append(FIELDS_KEY, guessTableFields(schemaName, tableName)); + if (!indexExists(schema)) { + schema.createIndex(new Document(TABLE_NAME_KEY, 1), new IndexOptions().unique(true)); + } - schema.insertOne(metadata); + schema.insertOne(metadata); - return metadata; - } + return metadata; } return doc; diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSegmentPageSource.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSegmentPageSource.java index 7e35f909bc9e..18e7e472f4d9 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSegmentPageSource.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSegmentPageSource.java @@ -266,9 +266,7 @@ private double getDouble(int rowIndex, int columnIndex) if (dataType.equals(ColumnDataType.FLOAT)) { return currentDataTable.getDataTable().getFloat(rowIndex, columnIndex); } - else { - return currentDataTable.getDataTable().getDouble(rowIndex, columnIndex); - } + return currentDataTable.getDataTable().getDouble(rowIndex, columnIndex); } private Block getArrayBlock(int rowIndex, int columnIndex) @@ -327,10 +325,10 @@ private Slice getSlice(int rowIndex, int columnIndex) String field = currentDataTable.getDataTable().getString(rowIndex, columnIndex); return getUtf8Slice(field); } - else if (trinoType instanceof VarbinaryType) { + if (trinoType instanceof VarbinaryType) { return Slices.wrappedBuffer(toBytes(currentDataTable.getDataTable().getString(rowIndex, columnIndex))); } - else if (trinoType.getTypeSignature().getBase() == StandardTypes.JSON) { + if (trinoType.getTypeSignature().getBase() == StandardTypes.JSON) { String field = currentDataTable.getDataTable().getString(rowIndex, columnIndex); return jsonParse(getUtf8Slice(field)); } diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java index be2fbef644bb..3e5aeb2cb2dd 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java @@ -174,9 +174,7 @@ public ConnectorSplitSource getSplits( } return generateSplitsForSegmentBasedScan(pinotTableHandle, session); } - else { - return generateSplitForBrokerBasedScan(pinotTableHandle); - } + return generateSplitForBrokerBasedScan(pinotTableHandle); } private static boolean isBrokerQuery(ConnectorSession session, PinotTableHandle tableHandle) diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java index ae8a1001ac0d..9f6465dd2254 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/client/PinotClient.java @@ -364,12 +364,10 @@ public List getAllBrokersForTable(String table) if (matcher.matches() && matcher.groupCount() == 2) { return pinotHostMapper.getBrokerHost(matcher.group(1), matcher.group(2)); } - else { - throw new PinotException( - PINOT_UNABLE_TO_FIND_BROKER, - Optional.empty(), - format("Cannot parse %s in the broker instance", brokerToParse)); - } + throw new PinotException( + PINOT_UNABLE_TO_FIND_BROKER, + Optional.empty(), + format("Cannot parse %s in the broker instance", brokerToParse)); }) .collect(Collectors.toCollection(ArrayList::new)); Collections.shuffle(brokers); @@ -390,9 +388,7 @@ public String getBrokerHost(String table) if (throwable instanceof PinotException) { throw (PinotException) throwable; } - else { - throw new PinotException(PINOT_UNABLE_TO_FIND_BROKER, Optional.empty(), "Error when getting brokers for table " + table, throwable); - } + throw new PinotException(PINOT_UNABLE_TO_FIND_BROKER, Optional.empty(), "Error when getting brokers for table " + table, throwable); } } diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/decoders/DecoderFactory.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/decoders/DecoderFactory.java index ffc72dd8d668..da0cbf0bc347 100644 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/decoders/DecoderFactory.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/decoders/DecoderFactory.java @@ -43,33 +43,29 @@ public static Decoder createDecoder(Type type) if (type instanceof DoubleType) { return new DoubleDecoder(); } - else if (type instanceof RealType) { + if (type instanceof RealType) { return new RealDecoder(); } - else if (type instanceof BigintType) { + if (type instanceof BigintType) { return new BigintDecoder(); } - else if (type instanceof IntegerType) { + if (type instanceof IntegerType) { return new IntegerDecoder(); } - else if (type instanceof BooleanType) { + if (type instanceof BooleanType) { return new BooleanDecoder(); } - else { - throw new PinotException(PINOT_UNSUPPORTED_COLUMN_TYPE, Optional.empty(), "type '" + type + "' not supported"); - } + throw new PinotException(PINOT_UNSUPPORTED_COLUMN_TYPE, Optional.empty(), "type '" + type + "' not supported"); } - else if (type instanceof ArrayType) { + if (type instanceof ArrayType) { return new ArrayDecoder(type); } - else if (type instanceof VarbinaryType) { + if (type instanceof VarbinaryType) { return new VarbinaryDecoder(); } - else if (type.getTypeSignature().getBase().equals(JSON)) { + if (type.getTypeSignature().getBase().equals(JSON)) { return new JsonDecoder(); } - else { - return new VarcharDecoder(); - } + return new VarcharDecoder(); } } diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTableBuilder.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTableBuilder.java index 2ea712674e64..d79a778b9b1a 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTableBuilder.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTableBuilder.java @@ -268,9 +268,7 @@ private static OptionalLong getOffset(QueryContext queryContext) if (queryContext.getOffset() > 0) { return OptionalLong.of(queryContext.getOffset()); } - else { - return OptionalLong.empty(); - } + return OptionalLong.empty(); } private static String stripSuffix(String tableName) @@ -279,12 +277,10 @@ private static String stripSuffix(String tableName) if (tableName.toUpperCase(ENGLISH).endsWith(OFFLINE_SUFFIX)) { return tableName.substring(0, tableName.length() - OFFLINE_SUFFIX.length()); } - else if (tableName.toUpperCase(ENGLISH).endsWith(REALTIME_SUFFIX)) { + if (tableName.toUpperCase(ENGLISH).endsWith(REALTIME_SUFFIX)) { return tableName.substring(0, tableName.length() - REALTIME_SUFFIX.length()); } - else { - return tableName; - } + return tableName; } private static Optional getSuffix(String tableName) @@ -293,12 +289,10 @@ private static Optional getSuffix(String tableName) if (tableName.toUpperCase(ENGLISH).endsWith(OFFLINE_SUFFIX)) { return Optional.of(OFFLINE_SUFFIX); } - else if (tableName.toUpperCase(ENGLISH).endsWith(REALTIME_SUFFIX)) { + if (tableName.toUpperCase(ENGLISH).endsWith(REALTIME_SUFFIX)) { return Optional.of(REALTIME_SUFFIX); } - else { - return Optional.empty(); - } + return Optional.empty(); } private static class PinotColumnNameAndTrinoType diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTablePqlExtractor.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTablePqlExtractor.java index 229443ad1f04..40ff0c5dccaf 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTablePqlExtractor.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/DynamicTablePqlExtractor.java @@ -93,15 +93,13 @@ private static Optional getFilter(Optional filter, TupleDomain binaryFunction() if (predicate.getType() == Predicate.Type.IN) { return Optional.of(((InPredicate) predicate).getValues()); } - else if (predicate.getType() == Predicate.Type.NOT_IN) { + if (predicate.getType() == Predicate.Type.NOT_IN) { return Optional.of(((NotInPredicate) predicate).getValues()); } return Optional.empty(); diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotQueryBuilder.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotQueryBuilder.java index 012feaf2f219..a4415db0d10a 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotQueryBuilder.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/query/PinotQueryBuilder.java @@ -120,9 +120,7 @@ public static Optional getFilterClause(TupleDomain tupleDo if (!conjuncts.isEmpty()) { return Optional.of(Joiner.on(" AND ").join(conjuncts)); } - else { - return Optional.empty(); - } + return Optional.empty(); } private static String toPredicate(PinotColumnHandle pinotColumnHandle, Domain domain) @@ -163,10 +161,10 @@ private static Object convertValue(Type type, Object value) if (type instanceof RealType) { return intBitsToFloat(toIntExact((Long) value)); } - else if (type instanceof VarcharType) { + if (type instanceof VarcharType) { return ((Slice) value).toStringUtf8(); } - else if (type instanceof VarbinaryType) { + if (type instanceof VarbinaryType) { return Hex.encodeHexString(((Slice) value).getBytes()); } return value; diff --git a/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestingPinotCluster.java b/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestingPinotCluster.java index a98b87b3cd72..410924fd1e19 100644 --- a/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestingPinotCluster.java +++ b/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestingPinotCluster.java @@ -271,9 +271,7 @@ public void publishOfflineSegment(String tableName, Path segmentPath) if (statusCode >= 500) { return false; } - else { - throw e; - } + throw e; } }); } diff --git a/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/TypeUtils.java b/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/TypeUtils.java index 10e6059f9cb5..6020a4e38732 100644 --- a/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/TypeUtils.java +++ b/plugin/trino-postgresql/src/main/java/io/trino/plugin/postgresql/TypeUtils.java @@ -208,13 +208,11 @@ private static Object trinoNativeToJdbcObject(ConnectorSession session, Type tri long millisUtc = unpackMillisUtc((long) trinoNative); return new Timestamp(millisUtc); } - else { - LongTimestampWithTimeZone value = (LongTimestampWithTimeZone) trinoNative; - long epochSeconds = floorDiv(value.getEpochMillis(), MILLISECONDS_PER_SECOND); - long nanosOfSecond = floorMod(value.getEpochMillis(), MILLISECONDS_PER_SECOND) * NANOSECONDS_PER_MILLISECOND - + value.getPicosOfMilli() / PICOSECONDS_PER_NANOSECOND; - return OffsetDateTime.ofInstant(Instant.ofEpochSecond(epochSeconds, nanosOfSecond), UTC_KEY.getZoneId()); - } + LongTimestampWithTimeZone value = (LongTimestampWithTimeZone) trinoNative; + long epochSeconds = floorDiv(value.getEpochMillis(), MILLISECONDS_PER_SECOND); + long nanosOfSecond = floorMod(value.getEpochMillis(), MILLISECONDS_PER_SECOND) * NANOSECONDS_PER_MILLISECOND + + value.getPicosOfMilli() / PICOSECONDS_PER_NANOSECOND; + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(epochSeconds, nanosOfSecond), UTC_KEY.getZoneId()); } if (trinoType instanceof VarcharType || trinoType instanceof CharType) { diff --git a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlTypeMapping.java b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlTypeMapping.java index d3bdc6be9bc0..90c19b65b2c9 100644 --- a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlTypeMapping.java +++ b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlTypeMapping.java @@ -1813,9 +1813,7 @@ public static DataType timestampWithTimeZoneDataType(int precisio if (insertWithTrino) { return trinoTimestampWithTimeZoneDataType(precision); } - else { - return postgreSqlTimestampWithTimeZoneDataType(precision); - } + return postgreSqlTimestampWithTimeZoneDataType(precision); } public static DataType trinoTimestampWithTimeZoneDataType(int precision) @@ -1848,9 +1846,7 @@ public static DataType> arrayOfTimestampWithTimeZoneDataType if (insertWithTrino) { return arrayDataType(trinoTimestampWithTimeZoneDataType(precision)); } - else { - return arrayDataType(postgreSqlTimestampWithTimeZoneDataType(precision), format("timestamptz(%d)[]", precision)); - } + return arrayDataType(postgreSqlTimestampWithTimeZoneDataType(precision), format("timestamptz(%d)[]", precision)); } private Session sessionWithArrayAsArray() diff --git a/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusRecordCursor.java b/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusRecordCursor.java index 874142bd92b4..f596f991502a 100644 --- a/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusRecordCursor.java +++ b/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusRecordCursor.java @@ -143,9 +143,7 @@ public long getLong(int field) int offsetMinutes = dateTime.atZone(ZoneId.systemDefault()).getOffset().getTotalSeconds() / 60; return packDateTimeWithZone(dateTime.toEpochMilli(), offsetMinutes); } - else { - throw new TrinoException(NOT_SUPPORTED, "Unsupported type " + getType(field)); - } + throw new TrinoException(NOT_SUPPORTED, "Unsupported type " + getType(field)); } @Override @@ -264,17 +262,15 @@ private static Object readObject(Type type, Block block, int position) Type elementType = ((ArrayType) type).getElementType(); return getArrayFromBlock(elementType, block.getObject(position, Block.class)); } - else if (type instanceof MapType) { + if (type instanceof MapType) { return getMapFromBlock(type, block.getObject(position, Block.class)); } - else { - if (type.getJavaType() == Slice.class) { - Slice slice = (Slice) requireNonNull(TypeUtils.readNativeValue(type, block, position)); - return (type instanceof VarcharType) ? slice.toStringUtf8() : slice.getBytes(); - } - - return TypeUtils.readNativeValue(type, block, position); + if (type.getJavaType() == Slice.class) { + Slice slice = (Slice) requireNonNull(TypeUtils.readNativeValue(type, block, position)); + return (type instanceof VarcharType) ? slice.toStringUtf8() : slice.getBytes(); } + + return TypeUtils.readNativeValue(type, block, position); } private static List getArrayFromBlock(Type elementType, Block block) diff --git a/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/storage/Row.java b/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/storage/Row.java index a264fed2dfc1..5077b5d4bc1e 100644 --- a/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/storage/Row.java +++ b/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/storage/Row.java @@ -118,27 +118,25 @@ private static Object getNativeContainerValue(Type type, Block block, int positi if (block.isNull(position)) { return null; } - else if (type.getJavaType() == boolean.class) { + if (type.getJavaType() == boolean.class) { return type.getBoolean(block, position); } - else if (type.getJavaType() == long.class) { + if (type.getJavaType() == long.class) { return type.getLong(block, position); } - else if (type.getJavaType() == double.class) { + if (type.getJavaType() == double.class) { return type.getDouble(block, position); } - else if (type.getJavaType() == Slice.class) { + if (type.getJavaType() == Slice.class) { return type.getSlice(block, position); } - else if (type.getJavaType() == Block.class) { + if (type.getJavaType() == Block.class) { return type.getObject(block, position); } - else if (type.getJavaType() == Int128.class) { + if (type.getJavaType() == Int128.class) { return type.getObject(block, position); } - else { - throw new AssertionError("Unimplemented type: " + type); - } + throw new AssertionError("Unimplemented type: " + type); } private static Object nativeContainerToOrcValue(Type type, Object nativeValue) diff --git a/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisRecordCursor.java b/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisRecordCursor.java index c32b03fcb4e3..b9cc3a1d6517 100644 --- a/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisRecordCursor.java +++ b/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisRecordCursor.java @@ -379,19 +379,17 @@ private void setPushdownKeys() log.debug("Set pushdown keys %s with single value", keys.toString()); return; } - else { - ValueSet valueSet = domain.getValues(); - if (valueSet instanceof SortedRangeSet) { - Ranges ranges = ((SortedRangeSet) valueSet).getRanges(); - List rangeList = ranges.getOrderedRanges(); - if (rangeList.stream().allMatch(Range::isSingleValue)) { - keys = rangeList.stream() - .map(range -> ((Slice) range.getSingleValue()).toStringUtf8()) - .filter(str -> keyStringPrefix.isEmpty() || str.contains(keyStringPrefix)) - .collect(toList()); - log.debug("Set pushdown keys %s with sorted range values", keys.toString()); - return; - } + ValueSet valueSet = domain.getValues(); + if (valueSet instanceof SortedRangeSet) { + Ranges ranges = ((SortedRangeSet) valueSet).getRanges(); + List rangeList = ranges.getOrderedRanges(); + if (rangeList.stream().allMatch(Range::isSingleValue)) { + keys = rangeList.stream() + .map(range -> ((Slice) range.getSingleValue()).toStringUtf8()) + .filter(str -> keyStringPrefix.isEmpty() || str.contains(keyStringPrefix)) + .collect(toList()); + log.debug("Set pushdown keys %s with sorted range values", keys.toString()); + return; } } } diff --git a/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/db/FlywayMigration.java b/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/db/FlywayMigration.java index 7e1da2367835..b96cd938de5d 100644 --- a/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/db/FlywayMigration.java +++ b/plugin/trino-resource-group-managers/src/main/java/io/trino/plugin/resourcegroups/db/FlywayMigration.java @@ -32,10 +32,10 @@ private static String getLocation(String configDbUrl) if (configDbUrl.startsWith("jdbc:postgresql")) { return "/db/migration/postgresql"; } - else if (configDbUrl.startsWith("jdbc:oracle")) { + if (configDbUrl.startsWith("jdbc:oracle")) { return "/db/migration/oracle"; } - else if (configDbUrl.startsWith("jdbc:mysql")) { + if (configDbUrl.startsWith("jdbc:mysql")) { return "/db/migration/mysql"; } // validation is not performed in DbResourceGroupConfig because DB backed diff --git a/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/TrinoThriftBlock.java b/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/TrinoThriftBlock.java index d1e794479d9a..7279ca56741c 100644 --- a/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/TrinoThriftBlock.java +++ b/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/TrinoThriftBlock.java @@ -300,9 +300,7 @@ public static TrinoThriftBlock fromBlock(Block block, Type type) if (BigintType.BIGINT.equals(elementType)) { return TrinoThriftBigintArray.fromBlock(block); } - else { - throw new IllegalArgumentException("Unsupported array block type: " + type); - } + throw new IllegalArgumentException("Unsupported array block type: " + type); } if (type.getBaseName().equals(JSON)) { return TrinoThriftJson.fromBlock(block, type); diff --git a/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/valuesets/TrinoThriftValueSet.java b/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/valuesets/TrinoThriftValueSet.java index 9ad736cfd565..8741510796b8 100644 --- a/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/valuesets/TrinoThriftValueSet.java +++ b/plugin/trino-thrift-api/src/main/java/io/trino/plugin/thrift/api/valuesets/TrinoThriftValueSet.java @@ -109,21 +109,19 @@ public static TrinoThriftValueSet fromValueSet(ValueSet valueSet) null, null); } - else if (valueSet.getClass() == EquatableValueSet.class) { + if (valueSet.getClass() == EquatableValueSet.class) { return new TrinoThriftValueSet( null, fromEquatableValueSet((EquatableValueSet) valueSet), null); } - else if (valueSet.getClass() == SortedRangeSet.class) { + if (valueSet.getClass() == SortedRangeSet.class) { return new TrinoThriftValueSet( null, null, fromSortedRangeSet((SortedRangeSet) valueSet)); } - else { - throw new IllegalArgumentException("Unknown implementation of a value set: " + valueSet.getClass()); - } + throw new IllegalArgumentException("Unknown implementation of a value set: " + valueSet.getClass()); } private static boolean isExactlyOneNonNull(Object a, Object b, Object c) diff --git a/plugin/trino-thrift-testing-server/src/main/java/io/trino/plugin/thrift/server/ThriftTpchService.java b/plugin/trino-thrift-testing-server/src/main/java/io/trino/plugin/thrift/server/ThriftTpchService.java index 108434d00f30..b73b6ba0b1fa 100644 --- a/plugin/trino-thrift-testing-server/src/main/java/io/trino/plugin/thrift/server/ThriftTpchService.java +++ b/plugin/trino-thrift-testing-server/src/main/java/io/trino/plugin/thrift/server/ThriftTpchService.java @@ -310,12 +310,10 @@ private static List getSchemaNames(String schemaNameOrNull) if (schemaNameOrNull == null) { return SCHEMAS; } - else if (SCHEMAS.contains(schemaNameOrNull)) { + if (SCHEMAS.contains(schemaNameOrNull)) { return ImmutableList.of(schemaNameOrNull); } - else { - return ImmutableList.of(); - } + return ImmutableList.of(); } private static String getTypeString(TpchColumn column) diff --git a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftIndexPageSource.java b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftIndexPageSource.java index 2978bb66a7c6..36ead2d164ee 100644 --- a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftIndexPageSource.java +++ b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftIndexPageSource.java @@ -262,13 +262,11 @@ private boolean loadAllSplits() statusFuture = toCompletableFuture(nonCancellationPropagating(splitFuture)); return false; } - else { - // no more splits - splitFuture = null; - statusFuture = null; - haveSplits = true; - return true; - } + // no more splits + splitFuture = null; + statusFuture = null; + haveSplits = true; + return true; } private void updateSignalAndStatusFutures() diff --git a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java index abf7f9da1f87..56f96a5e9cd5 100644 --- a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java +++ b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftMetadata.java @@ -161,9 +161,7 @@ public Optional resolveIndex(ConnectorSession session, C if (tableMetadata.containsIndexableColumns(indexableColumns)) { return Optional.of(new ConnectorResolvedIndex(new ThriftIndexHandle(tableMetadata.getSchemaTableName(), tupleDomain, session), tupleDomain)); } - else { - return Optional.empty(); - } + return Optional.empty(); } @Override diff --git a/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/EstimateAssertion.java b/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/EstimateAssertion.java index 1672b72da23d..d907b4a9a035 100644 --- a/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/EstimateAssertion.java +++ b/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/EstimateAssertion.java @@ -72,8 +72,6 @@ private double toDouble(Object object) if (object instanceof Number) { return ((Number) object).doubleValue(); } - else { - throw new UnsupportedOperationException(format("Can't compare with tolerance objects of class %s. Use assertEquals.", object.getClass())); - } + throw new UnsupportedOperationException(format("Can't compare with tolerance objects of class %s. Use assertEquals.", object.getClass())); } } diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchMetadata.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchMetadata.java index 3b3555a012b5..822eea5c2cbb 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchMetadata.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchMetadata.java @@ -288,21 +288,19 @@ private Map, List> getColumnValuesRestrictions(TpchTable> columns = ImmutableSet.copyOf(tpchTable.getColumns()); return asMap(columns, key -> emptyList()); } - else { - Map domains = constraintSummary.getDomains().orElseThrow(); - Optional orderStatusDomain = Optional.ofNullable(domains.get(toColumnHandle(OrderColumn.ORDER_STATUS))); - Optional, List>> allowedColumnValues = orderStatusDomain.map(domain -> { - List allowedValues = ORDER_STATUS_VALUES.stream() - .filter(domain::includesNullableValue) - .collect(toList()); - return avoidTrivialOrderStatusRestriction(allowedValues); - }); - return allowedColumnValues.orElse(emptyMap()); - } + Map domains = constraintSummary.getDomains().orElseThrow(); + Optional orderStatusDomain = Optional.ofNullable(domains.get(toColumnHandle(OrderColumn.ORDER_STATUS))); + Optional, List>> allowedColumnValues = orderStatusDomain.map(domain -> { + List allowedValues = ORDER_STATUS_VALUES.stream() + .filter(domain::includesNullableValue) + .collect(toList()); + return avoidTrivialOrderStatusRestriction(allowedValues); + }); + return allowedColumnValues.orElse(emptyMap()); } private static Map, List> avoidTrivialOrderStatusRestriction(List allowedValues) @@ -310,9 +308,7 @@ private static Map, List> avoidTrivialOrderStatusRestricti if (allowedValues.containsAll(ORDER_STATUS_VALUES)) { return emptyMap(); } - else { - return ImmutableMap.of(OrderColumn.ORDER_STATUS, allowedValues); - } + return ImmutableMap.of(OrderColumn.ORDER_STATUS, allowedValues); } private TableStatistics toTableStatistics(TableStatisticsData tableStatisticsData, TpchTableHandle tpchTableHandle, Map columnHandles) diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchRecordSet.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchRecordSet.java index bb431c75588f..87143ee7b802 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchRecordSet.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchRecordSet.java @@ -253,15 +253,13 @@ private Object getTrinoObject(TpchColumn column, Type type) if (type.getJavaType() == long.class) { return getLong(column); } - else if (type.getJavaType() == double.class) { + if (type.getJavaType() == double.class) { return getDouble(column); } - else if (type.getJavaType() == Slice.class) { + if (type.getJavaType() == Slice.class) { return getSlice(column); } - else { - throw new TrinoException(NOT_SUPPORTED, format("Unsupported column type %s", type.getDisplayName())); - } + throw new TrinoException(NOT_SUPPORTED, format("Unsupported column type %s", type.getDisplayName())); } private TpchColumn getTpchColumn(int field) diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/statistics/StatisticsEstimator.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/statistics/StatisticsEstimator.java index 922f24cf715f..53c9e519f042 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/statistics/StatisticsEstimator.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/statistics/StatisticsEstimator.java @@ -43,25 +43,23 @@ public Optional estimateStats(TpchTable tpchTable, Map partitionColumn = getOnlyElement(columnValuesRestrictions.keySet()); - List partitionValues = columnValuesRestrictions.get(partitionColumn); - TableStatisticsData result = zeroStatistics(tpchTable); - for (Object partitionValue : partitionValues) { - Slice value = checkType(partitionValue, Slice.class, "Only string (Slice) partition values supported for now"); - Optional tableStatisticsData = tableStatisticsDataRepository - .load(schemaName, tpchTable, Optional.of(partitionColumn), Optional.of(value.toStringUtf8())); - if (tableStatisticsData.isEmpty()) { - return Optional.empty(); - } - result = addPartitionStats(result, tableStatisticsData.get(), partitionColumn); + checkArgument(columnValuesRestrictions.size() <= 1, "Can only estimate stats when at most one column has value restrictions"); + TpchColumn partitionColumn = getOnlyElement(columnValuesRestrictions.keySet()); + List partitionValues = columnValuesRestrictions.get(partitionColumn); + TableStatisticsData result = zeroStatistics(tpchTable); + for (Object partitionValue : partitionValues) { + Slice value = checkType(partitionValue, Slice.class, "Only string (Slice) partition values supported for now"); + Optional tableStatisticsData = tableStatisticsDataRepository + .load(schemaName, tpchTable, Optional.of(partitionColumn), Optional.of(value.toStringUtf8())); + if (tableStatisticsData.isEmpty()) { + return Optional.empty(); } - return Optional.of(result); + result = addPartitionStats(result, tableStatisticsData.get(), partitionColumn); } + return Optional.of(result); } private TableStatisticsData addPartitionStats(TableStatisticsData left, TableStatisticsData right, TpchColumn partitionColumn) diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/util/Optionals.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/util/Optionals.java index 5efae1f73a43..f9b0a3a166b5 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/util/Optionals.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/util/Optionals.java @@ -32,11 +32,9 @@ public static Optional combine(Optional left, Optional right, Binar if (left.isPresent() && right.isPresent()) { return Optional.of(combiner.apply(left.get(), right.get())); } - else if (left.isPresent()) { + if (left.isPresent()) { return left; } - else { - return right; - } + return right; } } diff --git a/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/EstimateAssertion.java b/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/EstimateAssertion.java index ae350f0ae644..c532ecadfdde 100644 --- a/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/EstimateAssertion.java +++ b/plugin/trino-tpch/src/test/java/io/trino/plugin/tpch/EstimateAssertion.java @@ -78,8 +78,6 @@ private double toDouble(Object object) if (object instanceof Number) { return ((Number) object).doubleValue(); } - else { - throw new UnsupportedOperationException(format("Can't compare with tolerance objects of class %s. Use assertEquals.", object.getClass())); - } + throw new UnsupportedOperationException(format("Can't compare with tolerance objects of class %s. Use assertEquals.", object.getClass())); } } diff --git a/service/trino-verifier/src/main/java/io/trino/verifier/QueryRewriter.java b/service/trino-verifier/src/main/java/io/trino/verifier/QueryRewriter.java index 83394c637ae4..55320c845dcb 100644 --- a/service/trino-verifier/src/main/java/io/trino/verifier/QueryRewriter.java +++ b/service/trino-verifier/src/main/java/io/trino/verifier/QueryRewriter.java @@ -110,7 +110,7 @@ public Query shadowQuery(Query query) if (statement instanceof CreateTableAsSelect) { return rewriteCreateTableAsSelect(connection, query, (CreateTableAsSelect) statement); } - else if (statement instanceof Insert) { + if (statement instanceof Insert) { return rewriteInsertQuery(connection, query, (Insert) statement); } } diff --git a/service/trino-verifier/src/main/java/io/trino/verifier/Validator.java b/service/trino-verifier/src/main/java/io/trino/verifier/Validator.java index 0f9160ad0ed8..9fc68896cc1e 100644 --- a/service/trino-verifier/src/main/java/io/trino/verifier/Validator.java +++ b/service/trino-verifier/src/main/java/io/trino/verifier/Validator.java @@ -321,7 +321,7 @@ private static QueryResult setup(Query query, List preQueryResults, if (queryResult.getState() == State.TIMEOUT) { return queryResult; } - else if (queryResult.getState() != State.SUCCESS) { + if (queryResult.getState() != State.SUCCESS) { return new QueryResult(State.FAILED_TO_SETUP, queryResult.getException(), queryResult.getWallTime(), queryResult.getCpuTime(), queryResult.getQueryId(), ImmutableList.of(), ImmutableList.of()); } } @@ -812,10 +812,8 @@ private static boolean isClose(double a, double b, double epsilon) if (a == 0 || b == 0 || diff < Float.MIN_NORMAL) { return diff < (epsilon * Float.MIN_NORMAL); } - else { - // use relative error - return diff / Math.min((absA + absB), Float.MAX_VALUE) < epsilon; - } + // use relative error + return diff / Math.min((absA + absB), Float.MAX_VALUE) < epsilon; } @VisibleForTesting @@ -861,9 +859,7 @@ public String toString() if (changed == Changed.ADDED) { return "+ " + row; } - else { - return "- " + row; - } + return "- " + row; } @Override diff --git a/service/trino-verifier/src/main/java/io/trino/verifier/Verifier.java b/service/trino-verifier/src/main/java/io/trino/verifier/Verifier.java index 00acc695d19e..8aac11541d3f 100644 --- a/service/trino-verifier/src/main/java/io/trino/verifier/Verifier.java +++ b/service/trino-verifier/src/main/java/io/trino/verifier/Verifier.java @@ -220,9 +220,7 @@ private boolean isCheckCorrectness(QueryPair query) // If so disable correctness checking return false; } - else { - return config.isCheckCorrectnessEnabled(); - } + return config.isCheckCorrectnessEnabled(); } private VerifierQueryEvent buildEvent(Validator validator) diff --git a/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/OptionsPrinter.java b/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/OptionsPrinter.java index 0d361d373cc4..cad061766b2b 100644 --- a/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/OptionsPrinter.java +++ b/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/OptionsPrinter.java @@ -84,7 +84,7 @@ private static String formatOption(Object value, Option annotation) if ((boolean) value) { return annotation.names()[0].replaceFirst("--no-", "--"); } - else if (annotation.negatable()) { + if (annotation.negatable()) { return annotation.names()[0]; } @@ -103,9 +103,7 @@ else if (annotation.negatable()) { if (((Optional) value).isPresent()) { return formatOption(((Optional) value).get(), annotation); } - else { - return null; - } + return null; } if (value instanceof Map) { diff --git a/testing/trino-product-tests/src/main/java/io/trino/tests/product/ImmutableLdapObjectDefinitions.java b/testing/trino-product-tests/src/main/java/io/trino/tests/product/ImmutableLdapObjectDefinitions.java index b218ae52d943..a44e4083ab82 100644 --- a/testing/trino-product-tests/src/main/java/io/trino/tests/product/ImmutableLdapObjectDefinitions.java +++ b/testing/trino-product-tests/src/main/java/io/trino/tests/product/ImmutableLdapObjectDefinitions.java @@ -78,10 +78,8 @@ public static LdapObjectDefinition buildLdapGroupObject(String groupName, String if (childGroupNames.isPresent()) { return buildLdapGroupObject(groupName, AMERICA_DISTINGUISHED_NAME, userName, ASIA_DISTINGUISHED_NAME, childGroupNames, Optional.of(AMERICA_DISTINGUISHED_NAME)); } - else { - return buildLdapGroupObject(groupName, AMERICA_DISTINGUISHED_NAME, userName, ASIA_DISTINGUISHED_NAME, - Optional.empty(), Optional.empty()); - } + return buildLdapGroupObject(groupName, AMERICA_DISTINGUISHED_NAME, userName, ASIA_DISTINGUISHED_NAME, + Optional.empty(), Optional.empty()); } public static LdapObjectDefinition buildLdapGroupObject(String groupName, String groupOrganizationName, @@ -97,15 +95,13 @@ public static LdapObjectDefinition buildLdapGroupObject(String groupName, String .setObjectClasses(Arrays.asList("groupOfNames")) .build(); } - else { - return LdapObjectDefinition.builder(groupName) - .setDistinguishedName(format("cn=%s,%s", groupName, groupOrganizationName)) - .setAttributes(ImmutableMap.of( - "cn", groupName, - "member", format("uid=%s,%s", userName, userOrganizationName))) - .setObjectClasses(Arrays.asList("groupOfNames")) - .build(); - } + return LdapObjectDefinition.builder(groupName) + .setDistinguishedName(format("cn=%s,%s", groupName, groupOrganizationName)) + .setAttributes(ImmutableMap.of( + "cn", groupName, + "member", format("uid=%s,%s", userName, userOrganizationName))) + .setObjectClasses(Arrays.asList("groupOfNames")) + .build(); } public static LdapObjectDefinition buildLdapUserObject(String userName, Optional> groupNames, String password) @@ -114,10 +110,8 @@ public static LdapObjectDefinition buildLdapUserObject(String userName, Optional return buildLdapUserObject(userName, ASIA_DISTINGUISHED_NAME, groupNames, Optional.of(AMERICA_DISTINGUISHED_NAME), password); } - else { - return buildLdapUserObject(userName, ASIA_DISTINGUISHED_NAME, - Optional.empty(), Optional.empty(), password); - } + return buildLdapUserObject(userName, ASIA_DISTINGUISHED_NAME, + Optional.empty(), Optional.empty(), password); } public static LdapObjectDefinition buildLdapUserObject(String userName, String userOrganizationName, @@ -134,16 +128,14 @@ public static LdapObjectDefinition buildLdapUserObject(String userName, String u .setModificationAttributes(getAttributes(groupNames.get(), groupOrganizationName.get(), MEMBER_OF)) .build(); } - else { - return LdapObjectDefinition.builder(userName) - .setDistinguishedName(format("uid=%s,%s", userName, userOrganizationName)) - .setAttributes(ImmutableMap.of( - "cn", userName, - "sn", userName, - "userPassword", password)) - .setObjectClasses(Arrays.asList("person", "inetOrgPerson")) - .build(); - } + return LdapObjectDefinition.builder(userName) + .setDistinguishedName(format("uid=%s,%s", userName, userOrganizationName)) + .setAttributes(ImmutableMap.of( + "cn", userName, + "sn", userName, + "userPassword", password)) + .setObjectClasses(Arrays.asList("person", "inetOrgPerson")) + .build(); } private static ImmutableMap> getAttributes(List groupNames, String groupOrganizationName, String relation) diff --git a/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestAllDatatypesFromHiveConnector.java b/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestAllDatatypesFromHiveConnector.java index 90c73e52d1d2..2bf4374d4abc 100644 --- a/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestAllDatatypesFromHiveConnector.java +++ b/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestAllDatatypesFromHiveConnector.java @@ -410,9 +410,7 @@ private static TableInstance mutableTableInstanceOf(TableDefinition tableDefi if (tableDefinition.getDatabase().isPresent()) { return mutableTableInstanceOf(tableDefinition, tableDefinition.getDatabase().get()); } - else { - return mutableTableInstanceOf(tableHandleInSchema(tableDefinition)); - } + return mutableTableInstanceOf(tableHandleInSchema(tableDefinition)); } private static TableInstance mutableTableInstanceOf(TableDefinition tableDefinition, String database) diff --git a/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestHiveCoercion.java b/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestHiveCoercion.java index 7f8a67bb1cd4..265b5d862b75 100644 --- a/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestHiveCoercion.java +++ b/testing/trino-product-tests/src/main/java/io/trino/tests/product/hive/TestHiveCoercion.java @@ -719,9 +719,7 @@ private static TableInstance mutableTableInstanceOf(TableDefinition tableDefi if (tableDefinition.getDatabase().isPresent()) { return mutableTableInstanceOf(tableDefinition, tableDefinition.getDatabase().get()); } - else { - return mutableTableInstanceOf(tableHandleInSchema(tableDefinition)); - } + return mutableTableInstanceOf(tableHandleInSchema(tableDefinition)); } private static TableInstance mutableTableInstanceOf(TableDefinition tableDefinition, String database) diff --git a/testing/trino-testing/src/main/java/io/trino/testing/StructuralTestUtil.java b/testing/trino-testing/src/main/java/io/trino/testing/StructuralTestUtil.java index d2ae72fb7d23..62d41149759b 100644 --- a/testing/trino-testing/src/main/java/io/trino/testing/StructuralTestUtil.java +++ b/testing/trino-testing/src/main/java/io/trino/testing/StructuralTestUtil.java @@ -132,10 +132,8 @@ public static Block decimalArrayBlockOf(DecimalType type, BigDecimal decimal) long longDecimal = decimal.unscaledValue().longValue(); return arrayBlockOf(type, longDecimal); } - else { - Int128 sliceDecimal = Int128.valueOf(decimal.unscaledValue()); - return arrayBlockOf(type, sliceDecimal); - } + Int128 sliceDecimal = Int128.valueOf(decimal.unscaledValue()); + return arrayBlockOf(type, sliceDecimal); } public static Block decimalMapBlockOf(DecimalType type, BigDecimal decimal) @@ -144,10 +142,8 @@ public static Block decimalMapBlockOf(DecimalType type, BigDecimal decimal) long longDecimal = decimal.unscaledValue().longValue(); return mapBlockOf(type, type, longDecimal, longDecimal); } - else { - Int128 sliceDecimal = Int128.valueOf(decimal.unscaledValue()); - return mapBlockOf(type, type, sliceDecimal, sliceDecimal); - } + Int128 sliceDecimal = Int128.valueOf(decimal.unscaledValue()); + return mapBlockOf(type, type, sliceDecimal, sliceDecimal); } public static MapType mapType(Type keyType, Type valueType) diff --git a/testing/trino-testing/src/main/java/io/trino/testing/tpch/AppendingRecordSet.java b/testing/trino-testing/src/main/java/io/trino/testing/tpch/AppendingRecordSet.java index 4526c244a64e..dce32f5bba8a 100644 --- a/testing/trino-testing/src/main/java/io/trino/testing/tpch/AppendingRecordSet.java +++ b/testing/trino-testing/src/main/java/io/trino/testing/tpch/AppendingRecordSet.java @@ -100,9 +100,7 @@ public Type getType(int field) if (field < delegateFieldCount) { return delegate.getType(field); } - else { - return appendedTypes.get(field - delegateFieldCount); - } + return appendedTypes.get(field - delegateFieldCount); } @Override @@ -118,9 +116,7 @@ public boolean getBoolean(int field) if (field < delegateFieldCount) { return delegate.getBoolean(field); } - else { - return (Boolean) appendedValues.get(field - delegateFieldCount); - } + return (Boolean) appendedValues.get(field - delegateFieldCount); } @Override @@ -130,9 +126,7 @@ public long getLong(int field) if (field < delegateFieldCount) { return delegate.getLong(field); } - else { - return (Long) appendedValues.get(field - delegateFieldCount); - } + return (Long) appendedValues.get(field - delegateFieldCount); } @Override @@ -142,9 +136,7 @@ public double getDouble(int field) if (field < delegateFieldCount) { return delegate.getDouble(field); } - else { - return (Double) appendedValues.get(field - delegateFieldCount); - } + return (Double) appendedValues.get(field - delegateFieldCount); } @Override @@ -154,9 +146,7 @@ public Slice getSlice(int field) if (field < delegateFieldCount) { return delegate.getSlice(field); } - else { - return (Slice) appendedValues.get(field - delegateFieldCount); - } + return (Slice) appendedValues.get(field - delegateFieldCount); } @Override @@ -172,9 +162,7 @@ public boolean isNull(int field) if (field < delegateFieldCount) { return delegate.isNull(field); } - else { - return appendedValues.get(field - delegateFieldCount) == null; - } + return appendedValues.get(field - delegateFieldCount) == null; } @Override