(self, parent, strategy_key)
| 2996 | return user_input |
| 2997 | |
| 2998 | def __init__(self, parent, strategy_key): |
| 2999 | super().__init__(parent, strategy_key) |
| 3000 | self.join_depth = self.parent_property.join_depth |
| 3001 | is_m2o = self.parent_property.direction is interfaces.MANYTOONE |
| 3002 | is_m2m = self.parent_property.direction is interfaces.MANYTOMANY |
| 3003 | |
| 3004 | if self.parent_property.omit_join is not None: |
| 3005 | self.omit_join = self.parent_property.omit_join |
| 3006 | else: |
| 3007 | lazyloader = self.parent_property._get_strategy( |
| 3008 | (("lazy", "select"),) |
| 3009 | ) |
| 3010 | if is_m2o: |
| 3011 | self.omit_join = lazyloader.use_get |
| 3012 | elif is_m2m and not self.parent_property._is_self_referential: |
| 3013 | join_cond = self.parent_property._join_condition |
| 3014 | self.omit_join = join_cond.secondary_covers_parent_primary_key |
| 3015 | else: |
| 3016 | self.omit_join = self.parent._get_clause[0].compare( |
| 3017 | lazyloader._rev_lazywhere, |
| 3018 | use_proxies=True, |
| 3019 | compare_keys=False, |
| 3020 | equivalents=self.parent._equivalent_columns, |
| 3021 | ) |
| 3022 | |
| 3023 | if self.omit_join: |
| 3024 | if is_m2o: |
| 3025 | self._query_info = self._init_for_omit_join_m2o() |
| 3026 | self._fallback_query_info = self._init_for_join() |
| 3027 | else: |
| 3028 | self._query_info = self._init_for_omit_join() |
| 3029 | else: |
| 3030 | self._query_info = self._init_for_join() |
| 3031 | |
| 3032 | def _init_for_omit_join(self): |
| 3033 | pk_to_fk = dict( |
nothing calls this directly
no test coverage detected