Generate a new `QueryContext` appropriate to be used in subqueries of `self`.
(&self, scope: Scope, relation_type: SqlRelationType)
| 6596 | /// Generate a new `QueryContext` appropriate to be used in subqueries of |
| 6597 | /// `self`. |
| 6598 | fn derived_context(&self, scope: Scope, relation_type: SqlRelationType) -> QueryContext<'a> { |
| 6599 | let ctes = self.ctes.clone(); |
| 6600 | let outer_scopes = iter::once(scope).chain(self.outer_scopes.clone()).collect(); |
| 6601 | let outer_relation_types = iter::once(relation_type) |
| 6602 | .chain(self.outer_relation_types.clone()) |
| 6603 | .collect(); |
| 6604 | // These shenanigans are simpler than adding `&mut NameManager` arguments everywhere. |
| 6605 | let name_manager = Rc::clone(&self.name_manager); |
| 6606 | |
| 6607 | QueryContext { |
| 6608 | scx: self.scx, |
| 6609 | lifetime: self.lifetime, |
| 6610 | outer_scopes, |
| 6611 | outer_relation_types, |
| 6612 | ctes, |
| 6613 | name_manager, |
| 6614 | recursion_guard: self.recursion_guard.clone(), |
| 6615 | } |
| 6616 | } |
| 6617 | |
| 6618 | /// Derives a `QueryContext` for a scope that contains no columns. |
| 6619 | fn empty_derived_context(&self) -> QueryContext<'a> { |
no test coverage detected