MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / ClauseAdapter

Class ClauseAdapter

lib/sqlalchemy/sql/util.py:1035–1212  ·  view source on GitHub ↗

Clones and modifies clauses based on column correspondence. E.g.:: table1 = Table( "sometable", metadata, Column("col1", Integer), Column("col2", Integer), ) table2 = Table( "someothertable", metadata, Colu

Source from the content-addressed store, hash-verified

1033
1034
1035class ClauseAdapter(visitors.ReplacingExternalTraversal):
1036 """Clones and modifies clauses based on column correspondence.
1037
1038 E.g.::
1039
1040 table1 = Table(
1041 "sometable",
1042 metadata,
1043 Column("col1", Integer),
1044 Column("col2", Integer),
1045 )
1046 table2 = Table(
1047 "someothertable",
1048 metadata,
1049 Column("col1", Integer),
1050 Column("col2", Integer),
1051 )
1052
1053 condition = table1.c.col1 == table2.c.col1
1054
1055 make an alias of table1::
1056
1057 s = table1.alias("foo")
1058
1059 calling ``ClauseAdapter(s).traverse(condition)`` converts
1060 condition to read::
1061
1062 s.c.col1 == table2.c.col1
1063
1064 """
1065
1066 __slots__ = (
1067 "__traverse_options__",
1068 "selectable",
1069 "include_fn",
1070 "exclude_fn",
1071 "equivalents",
1072 "adapt_on_names",
1073 "adapt_from_selectables",
1074 )
1075
1076 def __init__(
1077 self,
1078 selectable: Selectable,
1079 equivalents: Optional[_EquivalentColumnMap] = None,
1080 include_fn: Optional[Callable[[ClauseElement], bool]] = None,
1081 exclude_fn: Optional[Callable[[ClauseElement], bool]] = None,
1082 adapt_on_names: bool = False,
1083 anonymize_labels: bool = False,
1084 adapt_from_selectables: Optional[AbstractSet[FromClause]] = None,
1085 ):
1086 self.__traverse_options__ = {
1087 "stop_on": [selectable],
1088 "anonymize_labels": anonymize_labels,
1089 }
1090 self.selectable = selectable
1091 self.include_fn = include_fn
1092 self.exclude_fn = exclude_fn

Callers 4

splice_joinsFunction · 0.85
_optimized_compareMethod · 0.85
join_targetsMethod · 0.85

Calls

no outgoing calls

Tested by 1