class Join(roles.DMLTableRole, FromClause): (source)
Known subclasses: sqlalchemy.orm.util._ORMJoin
Represent a ``JOIN`` construct between two :class:`_expression.FromClause` elements. The public constructor function for :class:`_expression.Join` is the module-level :func:`_expression.join()` function, as well as the :meth:`_expression.FromClause.join` method of any :class:`_expression.FromClause` (e.g. such as :class:`_schema.Table`). .. seealso:: :func:`_expression.join` :meth:`_expression.FromClause.join`
Method | __init__ |
Construct a new :class:`_expression.Join`. |
Method | is |
Return ``True`` if this :class:`_expression.FromClause` is 'derived' from the given ``FromClause``. |
Method | select |
Create a :class:`_expression.Select` from this :class:`_expression.Join`. |
Method | self |
Apply a 'grouping' to this :class:`_expression.ClauseElement`. |
Class Variable | __visit |
Undocumented |
Instance Variable | full |
Undocumented |
Instance Variable | isouter |
Undocumented |
Instance Variable | left |
Undocumented |
Instance Variable | onclause |
Undocumented |
Instance Variable | right |
Undocumented |
Property | description |
A brief description of this :class:`_expression.FromClause`. |
Class Method | _can |
Undocumented |
Class Method | _join |
Create a join condition between two tables or selectables. |
Class Method | _joincond |
Undocumented |
Class Method | _joincond |
Undocumented |
Method | _anonymous |
Undocumented |
Method | _copy |
Reassign internal elements to be clones of themselves. |
Method | _match |
Undocumented |
Method | _populate |
Called on subclasses to establish the .c collection. |
Method | _refresh |
Given a column added to the .c collection of an underlying selectable, produce the local version of that column, assuming this selectable ultimately should proxy this column. |
Class Variable | _is |
Undocumented |
Class Variable | _traverse |
Undocumented |
Property | _from |
Undocumented |
Property | _hide |
Undocumented |
Inherited from DMLTableRole
:
Class Variable | __slots__ |
Undocumented |
Class Variable | _role |
Undocumented |
Inherited from FromClause
(via DMLTableRole
):
Method | alias |
Return an alias of this :class:`_expression.FromClause`. |
Method | join |
Return a :class:`_expression.Join` from this :class:`_expression.FromClause` to another :class:`FromClause`. |
Method | outerjoin |
Return a :class:`_expression.Join` from this :class:`_expression.FromClause` to another :class:`FromClause`, with the "isouter" flag set to True. |
Method | tablesample |
Return a TABLESAMPLE alias of this :class:`_expression.FromClause`. |
Class Variable | is |
Undocumented |
Class Variable | named |
Undocumented |
Class Variable | schema |
Define the 'schema' attribute for this :class:`_expression.FromClause`. |
Instance Variable | foreign |
Return the collection of :class:`_schema.ForeignKey` marker objects which this FromClause references. |
Instance Variable | primary |
Return the iterable collection of :class:`_schema.Column` objects which comprise the primary key of this :class:`_selectable.FromClause`. |
Property | c |
A synonym for :attr:`.FromClause.columns` |
Property | columns |
A named-based collection of :class:`_expression.ColumnElement` objects maintained by this :class:`_expression.FromClause`. |
Property | entity |
Return a namespace used for name-based access in SQL expressions. |
Property | exported |
A :class:`_expression.ColumnCollection` that represents the "exported" columns of this :class:`_expression.Selectable`. |
Method | _generate |
Populate columns into an :class:`.AliasedReturnsRows` object. |
Method | _init |
Undocumented |
Method | _is |
Return ``True`` if this :class:`_expression.FromClause` and the other represent the same lexical identity. |
Method | _reset |
Reset the attributes linked to the ``FromClause.c`` attribute. |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _use |
Undocumented |
Instance Variable | _columns |
Undocumented |
Property | _cols |
Undocumented |
Property | _select |
Undocumented |
Inherited from FromClauseRole
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
):
Class Variable | _is |
Undocumented |
Inherited from AllowsLambdaRole
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
):
Class Variable | allows |
Undocumented |
Inherited from UsesInspection
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
):
Class Variable | uses |
Undocumented |
Class Variable | _post |
Undocumented |
Inherited from Selectable
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
):
Method | corresponding |
Given a :class:`_expression.ColumnElement`, return the exported :class:`_expression.ColumnElement` object from the :attr:`_expression.Selectable.exported_columns` collection of this :class:`_expression... |
Method | lateral |
Return a LATERAL alias of this :class:`_expression.Selectable`. |
Method | replace |
Replace all occurrences of :class:`_expression.FromClause` 'old' with the given :class:`_expression.Alias` object, returning a copy of this :class:`_expression.FromClause`. |
Inherited from ReturnsRows
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
):
Property | selectable |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Property | _all |
A sequence of column expression objects that represents the "selected" columns of this :class:`_expression.ReturnsRows`. |
Inherited from DQLDMLClauseElement
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
):
Method | compile |
Compile this SQL expression. |
Method | _compiler |
Return a compiler appropriate for this ClauseElement, given a Dialect. |
Inherited from ClauseElement
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
):
Method | __bool__ |
Undocumented |
Method | __getstate__ |
Undocumented |
Method | __invert__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | compare |
Compare this :class:`_expression.ClauseElement` to the given :class:`_expression.ClauseElement`. |
Method | get |
Return immediate child :class:`.visitors.HasTraverseInternals` elements of this :class:`.visitors.HasTraverseInternals`. |
Method | params |
Return a copy with :func:`_expression.bindparam` elements replaced. |
Method | unique |
Return a copy with :func:`_expression.bindparam` elements replaced. |
Class Variable | is |
Undocumented |
Class Variable | is |
Undocumented |
Class Variable | negation |
Undocumented |
Method | _clone |
Create a shallow copy of this ClauseElement. |
Method | _cloned |
Return the set consisting all cloned ancestors of this ClauseElement. |
Method | _compile |
Undocumented |
Method | _execute |
Undocumented |
Method | _execute |
an additional hook for subclasses to provide a different implementation for connection.scalar() vs. connection.execute(). |
Method | _negate |
Undocumented |
Method | _negate |
a hook to allow the right side of a binary expression to respond to a negation of the binary expression. |
Method | _replace |
Undocumented |
Method | _set |
Undocumented |
Method | _ungroup |
Return this :class:`_expression.ClauseElement` without any groupings. |
Method | _with |
in the context of binary expression, convert the type of this object to the one given. |
Class Variable | _cache |
Undocumented |
Class Variable | _gen |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Instance Variable | _propagate |
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 | _order |
Undocumented |
Inherited from SupportsWrappingAnnotations
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
):
Method | _annotate |
return a copy of this ClauseElement with annotations updated by the given dictionary. |
Method | _deannotate |
return a copy of this :class:`_expression.ClauseElement` with annotations removed. |
Method | _with |
return a copy of this ClauseElement with annotations replaced by the given dictionary. |
Inherited from SupportsAnnotations
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
):
Class Variable | proxy |
Undocumented |
Method | _gen |
Undocumented |
Property | _annotations |
Undocumented |
Inherited from MemoizedHasCacheKey
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
):
Method | _generate |
return a cache key. |
Inherited from HasCacheKey
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
):
Class Variable | inherit |
Indicate if this :class:`.HasCacheKey` instance should make use of the cache key generation scheme used by its immediate superclass. |
Class Method | _generate |
generate cache key dispatcher for a new class. |
Class Method | _generate |
Undocumented |
Method | _gen |
return an optional cache key. |
Class Variable | _generated |
Undocumented |
Class Variable | _hierarchy |
private attribute which may be set to False to prevent the inherit_cache warning from being emitted for a hierarchy of subclasses. |
Class Variable | _is |
Undocumented |
Inherited from CompilerElement
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
, HasCacheKey
, HasCopyInternals
, ExternallyTraversible
, HasTraverseInternals
):
Method | __str__ |
Undocumented |
Class Variable | stringify |
Undocumented |
Class Variable | supports |
Undocumented |
Inherited from Visitable
(via DMLTableRole
, FromClause
, AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
, HasCacheKey
, HasCopyInternals
, ExternallyTraversible
, HasTraverseInternals
, CompilerElement
):
Method | __class |
Undocumented |
Method | __init |
Undocumented |
Class Method | _generate |
Undocumented |
Method | _compiler |
Undocumented |
Class Variable | _original |
Undocumented |
_FromClauseArgument
, right: _FromClauseArgument
, onclause: Optional[ _OnClauseArgument]
= None, isouter: bool
= False, full: bool
= False):
(source)
¶
sqlalchemy.orm.util._ORMJoin
Construct a new :class:`_expression.Join`. The usual entrypoint here is the :func:`_expression.join` function or the :meth:`_expression.FromClause.join` method of any :class:`_expression.FromClause` object.
Return ``True`` if this :class:`_expression.FromClause` is 'derived' from the given ``FromClause``. An example would be an Alias of a Table is derived from that Table.
Create a :class:`_expression.Select` from this :class:`_expression.Join`. E.g.:: stmt = table_a.join(table_b, table_a.c.id == table_b.c.a_id) stmt = stmt.select() The above will produce a SQL string resembling:: SELECT table_a.id, table_a.col, table_b.id, table_b.a_id FROM table_a JOIN table_b ON table_a.id = table_b.a_id
Apply a 'grouping' to this :class:`_expression.ClauseElement`. This method is overridden by subclasses to return a "grouping" construct, i.e. parenthesis. In particular it's used by "binary" expressions to provide a grouping around themselves when placed into a larger expression, as well as by :func:`_expression.select` constructs when placed into the FROM clause of another :func:`_expression.select`. (Note that subqueries should be normally created using the :meth:`_expression.Select.alias` method, as many platforms require nested SELECT statements to be named). As expressions are composed together, the application of :meth:`self_group` is automatic - end-user code should never need to use this method directly. Note that SQLAlchemy's clause constructs take operator precedence into account - so parenthesis might not be needed, for example, in an expression like ``x OR (y AND z)`` - AND takes precedence over OR. The base :meth:`self_group` method of :class:`_expression.ClauseElement` just returns self.
A brief description of this :class:`_expression.FromClause`. Used primarily for error message formatting.
def _can_join(cls, left:
FromClause
, right: FromClause
, *, consider_as_foreign_keys: Optional[ AbstractSet[ ColumnClause[ Any]]]
= None) -> bool
:
(source)
¶
Undocumented
def _join_condition(cls, a:
FromClause
, b: FromClause
, *, a_subset: Optional[ FromClause]
= None, consider_as_foreign_keys: Optional[ AbstractSet[ ColumnClause[ Any]]]
= None) -> ColumnElement[ bool]
:
(source)
¶
Create a join condition between two tables or selectables. See sqlalchemy.sql.util.join_condition() for full docs.
@util.preload_module(
def _joincond_scan_left_right(cls, a:
FromClause
, a_subset: Optional[ FromClause]
, b: FromClause
, consider_as_foreign_keys: Optional[ AbstractSet[ ColumnClause[ Any]]]
) -> collections.defaultdict[ Optional[ ForeignKeyConstraint], List[ Tuple[ ColumnClause[ Any], ColumnClause[ Any]]]]
:
(source)
¶
Undocumented
def _joincond_trim_constraints(cls, a:
FromClause
, b: FromClause
, constraints: Dict[ Any, Any]
, consider_as_foreign_keys: Optional[ Any]
):
(source)
¶
Undocumented
def _anonymous_fromclause(self, name:
Optional[ str]
= None, flat: bool
= False) -> TODO_Any
:
(source)
¶
Undocumented
Reassign internal elements to be clones of themselves. Called during a copy-and-traverse operation on newly shallow-copied elements to create a deep copy. The given clone function should be used, which may be applying additional transformations to the element (i.e. replacement traversal, cloned traversal, annotations).
Called on subclasses to establish the .c collection. Each implementation has a different way of establishing this collection.
Given a column added to the .c collection of an underlying selectable, produce the local version of that column, assuming this selectable ultimately should proxy this column. this is used to "ping" a derived selectable to add a new column to its .c. collection when a Column has been added to one of the Table objects it ultimately derives from. If the given selectable hasn't populated its .c. collection yet, it should at least pass on the message to the contained selectables, but it will return None. This method is currently used by Declarative to allow Table columns to be added to a partially constructed inheritance mapping that may have already produced joins. The method isn't public right now, as the full span of implications and/or caveats aren't yet clear. It's also possible that this functionality could be invoked by default via an event, which would require that selectables maintain a weak referencing collection of all derivations.