presto-main/src/main/java/io/prestosql/execution/DataDefinitionExecution.java/DataDefinitionExecution/DataDefinitionExecutionFactory
class DataDefinitionExecution:        @Inject
        public DataDefinitionExecutionFactory(
                TransactionManager transactionManager,
                Metadata metadata,
                AccessControl accessControl,
                Map<Class<? extends Statement>, DataDefinitionTask<?>> tasks)
        {
            this.transactionManager = requireNonNull(transactionManager, "transactionManager is null");
            this.metadata = requireNonNull(metadata, "metadata is null");
            this.accessControl = requireNonNull(accessControl, "accessControl is null");
            this.tasks = requireNonNull(tasks, "tasks is null");
        }