'Initialize execution context for a DDLElement construct.'

@classmethod
def _init_ddl(cls, dialect, connection, dbapi_connection, compiled_ddl):

    self = cls.__new__(cls)
    self.dialect = dialect
    self.root_connection = connection
    self._dbapi_connection = dbapi_connection
    self.engine = connection.engine
    self.compiled = compiled = compiled_ddl
    self.isddl = True
    self.execution_options = compiled.statement._execution_options
    if connection._execution_options:
        self.execution_options = dict(self.execution_options)
        self.execution_options.update(connection._execution_options)
    if (not dialect.supports_unicode_statements):
        self.unicode_statement = util.text_type(compiled)
        self.statement = dialect._encoder(self.unicode_statement)[0]
    else:
        self.statement = self.unicode_statement = util.text_type(compiled)
    self.cursor = self.create_cursor()
    self.compiled_parameters = []
    if dialect.positional:
        self.parameters = [dialect.execute_sequence_format()]
    else:
        self.parameters = [{}]
    return self
