miklosgergely commented on a change in pull request #543: HIVE-21292: Break up DDLTask 1 - extract Database related operations URL: https://github.com/apache/hive/pull/543#discussion_r259392471
########## File path: ql/src/java/org/apache/hadoop/hive/ql/exec/ddl/database/AlterDatabaseDesc.java ########## @@ -16,112 +16,100 @@ * limitations under the License. */ -package org.apache.hadoop.hive.ql.plan; +package org.apache.hadoop.hive.ql.exec.ddl.database; import java.io.Serializable; import java.util.Map; +import org.apache.hadoop.hive.ql.exec.ddl.DDLDesc; +import org.apache.hadoop.hive.ql.exec.ddl.DDLTask2; import org.apache.hadoop.hive.ql.parse.ReplicationSpec; +import org.apache.hadoop.hive.ql.plan.Explain; import org.apache.hadoop.hive.ql.plan.Explain.Level; +import org.apache.hadoop.hive.ql.plan.PrincipalDesc; /** - * AlterDatabaseDesc. - * + * DDL task description for ALTER DATABASE commands. */ @Explain(displayName = "Alter Database", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) public class AlterDatabaseDesc extends DDLDesc implements Serializable { - private static final long serialVersionUID = 1L; - // Only altering the database property and owner is currently supported - public static enum ALTER_DB_TYPES { - ALTER_PROPERTY, ALTER_OWNER, ALTER_LOCATION - }; - - ALTER_DB_TYPES alterType; - String databaseName; - Map<String, String> dbProperties; - PrincipalDesc ownerPrincipal; - ReplicationSpec replicationSpec; - String location; + static { + DDLTask2.registerOperator(AlterDatabaseDesc.class, AlterDatabaseOperation.class); + } /** - * For serialization only. + * Supported type of alter db commands. + * Only altering the database property and owner is currently supported */ - public AlterDatabaseDesc() { - } + public enum AlterDbType { + ALTER_PROPERTY, ALTER_OWNER, ALTER_LOCATION + }; - public AlterDatabaseDesc(String databaseName, Map<String, String> dbProps, Review comment: Basically AlterDatabaseOperation (or in more general every XXXOperation could be a task as well, and every XXXDesc could have their own XXXWork class. But that would mean a lot of repetitive code, so having a common Task, and Work class for them is just reusing the same boilerplate code. Having a separate SA is a good idea, I think when DDLTask is cut to pieces the next step should be a to cut DDLSemanticAnalyzer too! ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services