Skip to content

Commit

Permalink
Cleanup code in RenameColumnTask
Browse files Browse the repository at this point in the history
  • Loading branch information
electrum committed Sep 12, 2017
1 parent 91e83e0 commit f9cbeaf
Showing 1 changed file with 7 additions and 9 deletions.
Expand Up @@ -27,7 +27,6 @@


import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;


import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName;
import static com.facebook.presto.sql.analyzer.SemanticErrorCode.COLUMN_ALREADY_EXISTS; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.COLUMN_ALREADY_EXISTS;
Expand All @@ -51,30 +50,29 @@ public ListenableFuture<?> execute(RenameColumn statement, TransactionManager tr
{ {
Session session = stateMachine.getSession(); Session session = stateMachine.getSession();
QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getTable()); QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getTable());
Optional<TableHandle> tableHandle = metadata.getTableHandle(session, tableName); TableHandle tableHandle = metadata.getTableHandle(session, tableName)
.orElseThrow(() -> new SemanticException(MISSING_TABLE, statement, "Table '%s' does not exist", tableName));


String source = statement.getSource().getValue().toLowerCase(ENGLISH); String source = statement.getSource().getValue().toLowerCase(ENGLISH);
String target = statement.getTarget().getValue().toLowerCase(ENGLISH); String target = statement.getTarget().getValue().toLowerCase(ENGLISH);


if (!tableHandle.isPresent()) {
throw new SemanticException(MISSING_TABLE, statement, "Table '%s' does not exist", tableName);
}
accessControl.checkCanRenameColumn(session.getRequiredTransactionId(), session.getIdentity(), tableName); accessControl.checkCanRenameColumn(session.getRequiredTransactionId(), session.getIdentity(), tableName);


Map<String, ColumnHandle> columnHandles = metadata.getColumnHandles(session, tableHandle.get()); Map<String, ColumnHandle> columnHandles = metadata.getColumnHandles(session, tableHandle);
if (!columnHandles.containsKey(source)) { ColumnHandle columnHandle = columnHandles.get(source);
if (columnHandle == null) {
throw new SemanticException(MISSING_COLUMN, statement, "Column '%s' does not exist", source); throw new SemanticException(MISSING_COLUMN, statement, "Column '%s' does not exist", source);
} }


if (columnHandles.containsKey(target)) { if (columnHandles.containsKey(target)) {
throw new SemanticException(COLUMN_ALREADY_EXISTS, statement, "Column '%s' already exists", target); throw new SemanticException(COLUMN_ALREADY_EXISTS, statement, "Column '%s' already exists", target);
} }


if (metadata.getColumnMetadata(session, tableHandle.get(), columnHandles.get(source)).isHidden()) { if (metadata.getColumnMetadata(session, tableHandle, columnHandle).isHidden()) {
throw new SemanticException(NOT_SUPPORTED, statement, "Cannot rename hidden column"); throw new SemanticException(NOT_SUPPORTED, statement, "Cannot rename hidden column");
} }


metadata.renameColumn(session, tableHandle.get(), columnHandles.get(source), target); metadata.renameColumn(session, tableHandle, columnHandle, target);


return immediateFuture(null); return immediateFuture(null);
} }
Expand Down

0 comments on commit f9cbeaf

Please sign in to comment.