MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _join_condition

Method _join_condition

lib/sqlalchemy/sql/selectable.py:1457–1499  ·  view source on GitHub ↗

Create a join condition between two tables or selectables. See sqlalchemy.sql.util.join_condition() for full docs.

(
        cls,
        a: FromClause,
        b: FromClause,
        *,
        a_subset: Optional[FromClause] = None,
        consider_as_foreign_keys: Optional[
            AbstractSet[ColumnClause[Any]]
        ] = None,
    )

Source from the content-addressed store, hash-verified

1455
1456 @classmethod
1457 def _join_condition(
1458 cls,
1459 a: FromClause,
1460 b: FromClause,
1461 *,
1462 a_subset: Optional[FromClause] = None,
1463 consider_as_foreign_keys: Optional[
1464 AbstractSet[ColumnClause[Any]]
1465 ] = None,
1466 ) -> ColumnElement[bool]:
1467 """Create a join condition between two tables or selectables.
1468
1469 See sqlalchemy.sql.util.join_condition() for full docs.
1470
1471 """
1472 constraints = cls._joincond_scan_left_right(
1473 a, a_subset, b, consider_as_foreign_keys
1474 )
1475
1476 if len(constraints) > 1:
1477 cls._joincond_trim_constraints(
1478 a, b, constraints, consider_as_foreign_keys
1479 )
1480
1481 if len(constraints) == 0:
1482 if isinstance(b, FromGrouping):
1483 hint = (
1484 " Perhaps you meant to convert the right side to a "
1485 "subquery using alias()?"
1486 )
1487 else:
1488 hint = ""
1489 raise exc.NoForeignKeysError(
1490 "Can't find any foreign key relationships "
1491 "between '%s' and '%s'.%s"
1492 % (a.description, b.description, hint)
1493 )
1494
1495 crit = [(x == y) for x, y in list(constraints.values())[0]]
1496 if len(crit) == 1:
1497 return crit[0]
1498 else:
1499 return and_(*crit)
1500
1501 @classmethod
1502 def _can_join(

Callers 4

_match_primariesMethod · 0.95
_setup_joinsMethod · 0.80
join_conditionFunction · 0.80
_join_left_to_rightMethod · 0.80

Calls 4

and_Function · 0.85
valuesMethod · 0.45

Tested by

no test coverage detected