MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _anonymous_fromclause

Method _anonymous_fromclause

lib/sqlalchemy/sql/selectable.py:1658–1697  ·  view source on GitHub ↗
(
        self, name: Optional[str] = None, flat: bool = False
    )

Source from the content-addressed store, hash-verified

1656
1657 @util.preload_module("sqlalchemy.sql.util")
1658 def _anonymous_fromclause(
1659 self, name: Optional[str] = None, flat: bool = False
1660 ) -> TODO_Any:
1661 sqlutil = util.preloaded.sql_util
1662 if flat:
1663 if isinstance(self.left, (FromGrouping, Join)):
1664 left_name = name # will recurse
1665 else:
1666 if name and isinstance(self.left, NamedFromClause):
1667 left_name = f"{name}_{self.left.name}"
1668 else:
1669 left_name = name
1670 if isinstance(self.right, (FromGrouping, Join)):
1671 right_name = name # will recurse
1672 else:
1673 if name and isinstance(self.right, NamedFromClause):
1674 right_name = f"{name}_{self.right.name}"
1675 else:
1676 right_name = name
1677 left_a, right_a = (
1678 self.left._anonymous_fromclause(name=left_name, flat=flat),
1679 self.right._anonymous_fromclause(name=right_name, flat=flat),
1680 )
1681 adapter = sqlutil.ClauseAdapter(left_a).chain(
1682 sqlutil.ClauseAdapter(right_a)
1683 )
1684
1685 return left_a.join(
1686 right_a,
1687 adapter.traverse(self.onclause),
1688 isouter=self.isouter,
1689 full=self.full,
1690 )
1691 else:
1692 return (
1693 self.select()
1694 .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
1695 .correlate(None)
1696 .alias(name)
1697 )
1698
1699 @util.ro_non_memoized_property
1700 def _hide_froms(self) -> Iterable[FromClause]:

Callers 15

_anonymous_fromclauseMethod · 0.45
_post_coercionMethod · 0.45
_criterion_existsMethod · 0.45
_optimized_compareMethod · 0.45
_create_joinsMethod · 0.45
join_targetsMethod · 0.45
__init__Method · 0.45
_merge_withMethod · 0.45
_generate_row_adapterMethod · 0.45
_legacy_from_selfMethod · 0.45

Calls 7

selectMethod · 0.95
chainMethod · 0.45
joinMethod · 0.45
traverseMethod · 0.45
aliasMethod · 0.45
correlateMethod · 0.45
set_label_styleMethod · 0.45