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 :c
| 1268 | |
| 1269 | |
| 1270 | class Join(roles.DMLTableRole, FromClause[_KeyColCC_co]): |
| 1271 | """Represent a ``JOIN`` construct between two |
| 1272 | :class:`_expression.FromClause` |
| 1273 | elements. |
| 1274 | |
| 1275 | The public constructor function for :class:`_expression.Join` |
| 1276 | is the module-level |
| 1277 | :func:`_expression.join()` function, as well as the |
| 1278 | :meth:`_expression.FromClause.join` method |
| 1279 | of any :class:`_expression.FromClause` (e.g. such as |
| 1280 | :class:`_schema.Table`). |
| 1281 | |
| 1282 | .. seealso:: |
| 1283 | |
| 1284 | :func:`_expression.join` |
| 1285 | |
| 1286 | :meth:`_expression.FromClause.join` |
| 1287 | |
| 1288 | """ |
| 1289 | |
| 1290 | __visit_name__ = "join" |
| 1291 | |
| 1292 | _traverse_internals: _TraverseInternalsType = [ |
| 1293 | ("left", InternalTraversal.dp_clauseelement), |
| 1294 | ("right", InternalTraversal.dp_clauseelement), |
| 1295 | ("onclause", InternalTraversal.dp_clauseelement), |
| 1296 | ("isouter", InternalTraversal.dp_boolean), |
| 1297 | ("full", InternalTraversal.dp_boolean), |
| 1298 | ] |
| 1299 | |
| 1300 | _is_join = True |
| 1301 | |
| 1302 | left: FromClause |
| 1303 | right: FromClause |
| 1304 | onclause: Optional[ColumnElement[bool]] |
| 1305 | isouter: bool |
| 1306 | full: bool |
| 1307 | |
| 1308 | def __init__( |
| 1309 | self, |
| 1310 | left: _FromClauseArgument, |
| 1311 | right: _FromClauseArgument, |
| 1312 | onclause: Optional[_OnClauseArgument] = None, |
| 1313 | isouter: bool = False, |
| 1314 | full: bool = False, |
| 1315 | ): |
| 1316 | """Construct a new :class:`_expression.Join`. |
| 1317 | |
| 1318 | The usual entrypoint here is the :func:`_expression.join` |
| 1319 | function or the :meth:`_expression.FromClause.join` method of any |
| 1320 | :class:`_expression.FromClause` object. |
| 1321 | |
| 1322 | """ |
| 1323 | |
| 1324 | # when deannotate was removed here, callcounts went up for ORM |
| 1325 | # compilation of eager joins, since there were more comparisons of |
| 1326 | # annotated objects. test_orm.py -> test_fetch_results |
| 1327 | # was therefore changed to show a more real-world use case, where the |
no outgoing calls
no test coverage detected