class documentation

class DDLElement(roles.DDLRole, Executable, _DDLCompiles):

Known subclasses: sqlalchemy.sql.ddl.DDL, sqlalchemy.sql.ddl._CreateDropBase

View In Hierarchy

Base class for DDL expression constructs.

This class is the base for the general purpose .DDL class, as well as the various create/drop clause constructs such as .CreateTable, .DropTable, .AddConstraint, etc.

.DDLElement integrates closely with SQLAlchemy events, introduced in :ref:`event_toplevel`. An instance of one is itself an event receiving callable:

event.listen(
    users,
    'after_create',
    AddConstraint(constraint).execute_if(dialect='postgresql')
)
Method __call__ Execute the DDL as a ddl_listener.
Method ​_execute​_on​_connection Undocumented
Method ​_generate Undocumented
Method ​_set​_bind Undocumented
Method ​_should​_execute Undocumented
Method against Return a copy of this _schema.DDLElement which will include the given target.
Method bind Returns the _engine.Engine or _engine.Connection to which this .Executable is bound, or None if none found.
Method execute Execute this DDL immediately.
Method execute​_if Return a callable that will execute this _ddl.DDLElement conditionally within an event handler.
Class Variable ​_execution​_options Undocumented
Class Variable on Undocumented
Instance Variable ​_bind Undocumented
Instance Variable callable​_ Undocumented
Instance Variable dialect Undocumented
Instance Variable state Undocumented
Instance Variable target Undocumented

Inherited from StatementRole (via DDLRole):

Class Variable ​_propagate​_attrs Undocumented
Class Variable ​_role​_name Undocumented

Inherited from SQLRole (via DDLRole, StatementRole):

Class Variable allows​_lambda Undocumented
Class Variable uses​_inspection Undocumented

Inherited from Executable:

Method ​_add​_context​_option Add a context option to this statement.
Method ​_set​_compile​_options Assign the compile options to a new value.
Method ​_update​_compile​_options update the _compile_options with new keys.
Method execution​_options Set non-SQL options for the statement which take effect during execution.
Method get​_execution​_options Get the non-SQL options which will take effect during execution.
Method options Apply options to this statement.
Method scalar Compile and execute this .Executable, returning the result's scalar representation.
Class Variable ​_executable​_traverse​_internals Undocumented
Class Variable ​_with​_context​_options Undocumented
Class Variable ​_with​_options Undocumented
Class Variable is​_delete Undocumented
Class Variable is​_dml Undocumented
Class Variable is​_insert Undocumented
Class Variable is​_select Undocumented
Class Variable is​_text Undocumented
Class Variable is​_update Undocumented
Class Variable supports​_execution Undocumented
Instance Variable ​_compile​_options Undocumented
Property ​_effective​_plugin​_target Undocumented

Inherited from StatementRole (via Executable):

Class Variable ​_propagate​_attrs Undocumented
Class Variable ​_role​_name Undocumented

Inherited from SQLRole (via Executable, StatementRole):

Class Variable allows​_lambda Undocumented
Class Variable uses​_inspection Undocumented

Inherited from _DDLCompiles:

Method ​_compile​_w​_cache Undocumented
Method ​_compiler Return a compiler appropriate for this ClauseElement, given a Dialect.
Class Variable ​_hierarchy​_supports​_caching disable cache warnings for all _DDLCompiles subclasses.

Inherited from ClauseElement (via _DDLCompiles):

Method compare Compare this _expression.ClauseElement to the given _expression.ClauseElement.
Method compile Compile this SQL expression.
Method params Return a copy with _expression.bindparam elements replaced.
Method self​_group Apply a 'grouping' to this _expression.ClauseElement.
Method unique​_params Return a copy with _expression.bindparam elements replaced.
Method __bool__ Undocumented
Method __getstate__ Undocumented
Method __invert__ Undocumented
Method __repr__ Undocumented
Method __str__ Undocumented
Method ​_clone Create a shallow copy of this ClauseElement.
Method ​_cloned​_set Return the set consisting all cloned ancestors of this ClauseElement.
Method ​_negate Undocumented
Method ​_negate​_in​_binary a hook to allow the right side of a binary expression to respond to a negation of the binary expression.
Method ​_replace​_params Undocumented
Method ​_set​_propagate​_attrs Undocumented
Method ​_ungroup Return this _expression.ClauseElement without any groupings.
Method ​_with​_binary​_element​_type in the context of binary expression, convert the type of this object to the one given.
Class Variable __visit​_name__ Undocumented
Class Variable ​_cache​_key​_traversal Undocumented
Class Variable ​_from​_objects Undocumented
Class Variable ​_is​_bind​_parameter Undocumented
Class Variable ​_is​_clause​_list Undocumented
Class Variable ​_is​_clone​_of Undocumented
Class Variable ​_is​_from​_clause Undocumented
Class Variable ​_is​_from​_container Undocumented
Class Variable ​_is​_immutable Undocumented
Class Variable ​_is​_lambda​_element Undocumented
Class Variable ​_is​_returns​_rows Undocumented
Class Variable ​_is​_select​_container Undocumented
Class Variable ​_is​_select​_statement Undocumented
Class Variable ​_is​_singleton​_constant Undocumented
Class Variable ​_is​_text​_clause Undocumented
Class Variable ​_is​_textual Undocumented
Class Variable ​_order​_by​_label​_element Undocumented
Class Variable description Undocumented
Class Variable is​_clause​_element Undocumented
Class Variable is​_selectable Undocumented
Class Variable stringify​_dialect Undocumented
Class Variable supports​_execution Undocumented
Instance Variable ​_propagate​_attrs like annotations, however these propagate outwards liberally as SQL constructs are built, and are set up at construction time.
Property ​_constructor return the 'constructor' for this ClauseElement.
Property entity​_namespace Undocumented

Inherited from SQLRole (via _DDLCompiles, ClauseElement):

Class Variable allows​_lambda Undocumented
Class Variable uses​_inspection Undocumented

Inherited from SupportsWrappingAnnotations (via _DDLCompiles, ClauseElement):

Method ​_annotate return a copy of this ClauseElement with annotations updated by the given dictionary.
Method ​_deannotate return a copy of this _expression.ClauseElement with annotations removed.
Method ​_with​_annotations return a copy of this ClauseElement with annotations replaced by the given dictionary.

Inherited from SupportsAnnotations (via _DDLCompiles, ClauseElement, SupportsWrappingAnnotations):

Property ​_annotations​_cache​_key Undocumented

Inherited from MemoizedHasCacheKey (via _DDLCompiles, ClauseElement):

Method ​_generate​_cache​_key return a cache key.

Inherited from HasCacheKey (via _DDLCompiles, ClauseElement, MemoizedHasCacheKey):

Class Variable inherit​_cache Indicate if this .HasCacheKey instance should make use of the cache key generation scheme used by its immediate superclass.
Class Method ​_generate​_cache​_attrs generate cache key dispatcher for a new class.
Class Method ​_generate​_cache​_key​_for​_object Undocumented
Method ​_gen​_cache​_key return an optional cache key.
Class Variable __slots__ Undocumented
Class Variable ​_is​_has​_cache​_key Undocumented

Inherited from HasCopyInternals (via _DDLCompiles, ClauseElement):

Method ​_copy​_internals Reassign internal elements to be clones of themselves.

Inherited from Traversible (via _DDLCompiles, ClauseElement):

Method get​_children Return immediate child .visitors.Traversible elements of this .visitors.Traversible.
Method __class​_getitem__ Undocumented
def __call__(self, target, bind, **kw):
Execute the DDL as a ddl_listener.
def _execute_on_connection(self, connection, multiparams, params, execution_options):
def _generate(self):
def _set_bind(self, bind):

Undocumented

def _should_execute(self, target, bind, **kw):

Undocumented

@_generative
def against(self, target):

Return a copy of this _schema.DDLElement which will include the given target.

This essentially applies the given item to the .target attribute of the returned _schema.DDLElement object. This target is then usable by event handlers and compilation routines in order to provide services such as tokenization of a DDL string in terms of a particular _schema.Table.

When a _schema.DDLElement object is established as an event handler for the _events.DDLEvents.before_create or _events.DDLEvents.after_create events, and the event then occurs for a given target such as a _schema.Constraint or _schema.Table, that target is established with a copy of the _schema.DDLElement object using this method, which then proceeds to the _schema.DDLElement.execute method in order to invoke the actual DDL instruction.

See Also

_schema.DDL - uses tokenization against the "target" when processing the DDL string.

Parameters
targeta _schema.SchemaItem that will be the subject of a DDL operation.
Returns
a copy of this _schema.DDLElement with the .target attribute assigned to the given _schema.SchemaItem.
def bind(self):

Returns the _engine.Engine or _engine.Connection to which this .Executable is bound, or None if none found.

This is a traversal which checks locally, then checks among the "from" clauses of associated objects until a bound engine or connection is found.

@util.deprecated_20(':meth:`.DDLElement.execute`', alternative='All statement execution in SQLAlchemy 2.0 is performed by the :meth:`_engine.Connection.execute` method of :class:`_engine.Connection`, or in the ORM by the :meth:`.Session.execute` method of :class:`.Session`.')
def execute(self, bind=None, target=None):

Execute this DDL immediately.

Executes the DDL statement in isolation using the supplied .Connectable or .Connectable assigned to the .bind property, if not supplied. If the DDL has a conditional on criteria, it will be invoked with None as the event.

Parameters
bindOptional, an Engine or Connection. If not supplied, a valid .Connectable must be present in the .bind property.
targetOptional, defaults to None. The target _schema.SchemaItem for the execute call. This is equivalent to passing the _schema.SchemaItem to the .DDLElement.against method and then invoking _schema.DDLElement.execute upon the resulting _schema.DDLElement object. See .DDLElement.against for further detail.
@_generative
def execute_if(self, dialect=None, callable_=None, state=None):

Return a callable that will execute this _ddl.DDLElement conditionally within an event handler.

Used to provide a wrapper for event listening:

event.listen(
            metadata,
            'before_create',
            DDL("my_ddl").execute_if(dialect='postgresql')
        )

See Also

.DDLEvents

:ref:`event_toplevel`

Parameters
dialect

May be a string or tuple of strings. If a string, it will be compared to the name of the executing database dialect:

DDL('something').execute_if(dialect='postgresql')

If a tuple, specifies multiple dialect names:

DDL('something').execute_if(dialect=('postgresql', 'mysql'))
callable​_

A callable, which will be invoked with four positional arguments as well as optional keyword arguments:

If the callable returns a True value, the DDL statement will be executed.

stateany value which will be passed to the callable_ as the state keyword argument.
Unknown Field: ddl
This DDL element.
Unknown Field: target
The _schema.Table or _schema.MetaData object which is the target of this event. May be None if the DDL is executed explicitly.
Unknown Field: bind
The _engine.Connection being used for DDL execution
Unknown Field: tables
Optional keyword argument - a list of Table objects which are to be created/ dropped within a MetaData.create_all() or drop_all() method call.
Unknown Field: state
Optional keyword argument - will be the state argument passed to this function.
Unknown Field: checkfirst
Keyword argument, will be True if the 'checkfirst' flag was set during the call to create(), create_all(), drop(), drop_all().
_execution_options =
on =

Undocumented

_bind =

Undocumented

callable_ =

Undocumented

dialect =

Undocumented

state =

Undocumented

target =

Undocumented