| 3465 | self.mapper = self.query._entity_from_pre_ent_zero() |
| 3466 | |
| 3467 | def _validate_query_state(self) -> None: |
| 3468 | for attr, methname, notset, op in ( |
| 3469 | ("_limit_clause", "limit()", None, operator.is_), |
| 3470 | ("_offset_clause", "offset()", None, operator.is_), |
| 3471 | ("_order_by_clauses", "order_by()", (), operator.eq), |
| 3472 | ("_group_by_clauses", "group_by()", (), operator.eq), |
| 3473 | ("_distinct", "distinct()", False, operator.is_), |
| 3474 | ( |
| 3475 | "_from_obj", |
| 3476 | "join(), outerjoin(), select_from(), or from_self()", |
| 3477 | (), |
| 3478 | operator.eq, |
| 3479 | ), |
| 3480 | ( |
| 3481 | "_setup_joins", |
| 3482 | "join(), outerjoin(), select_from(), or from_self()", |
| 3483 | (), |
| 3484 | operator.eq, |
| 3485 | ), |
| 3486 | ): |
| 3487 | if not op(getattr(self.query, attr), notset): |
| 3488 | raise sa_exc.InvalidRequestError( |
| 3489 | "Can't call Query.update() or Query.delete() " |
| 3490 | "when %s has been called" % (methname,) |
| 3491 | ) |
| 3492 | |
| 3493 | @property |
| 3494 | def session(self) -> Session: |