(
self, taf, compound_index=None, asfrom=False, **kw
)
| 2807 | return "".join(self.process(part, **kw) for part in tstring.parts) |
| 2808 | |
| 2809 | def visit_textual_select( |
| 2810 | self, taf, compound_index=None, asfrom=False, **kw |
| 2811 | ): |
| 2812 | if self._collect_params: |
| 2813 | self._add_to_params(taf) |
| 2814 | toplevel = not self.stack |
| 2815 | entry = self._default_stack_entry if toplevel else self.stack[-1] |
| 2816 | |
| 2817 | new_entry: _CompilerStackEntry = { |
| 2818 | "correlate_froms": set(), |
| 2819 | "asfrom_froms": set(), |
| 2820 | "selectable": taf, |
| 2821 | } |
| 2822 | self.stack.append(new_entry) |
| 2823 | |
| 2824 | if taf._independent_ctes: |
| 2825 | self._dispatch_independent_ctes(taf, kw) |
| 2826 | |
| 2827 | populate_result_map = ( |
| 2828 | toplevel |
| 2829 | or ( |
| 2830 | compound_index == 0 |
| 2831 | and entry.get("need_result_map_for_compound", False) |
| 2832 | ) |
| 2833 | or entry.get("need_result_map_for_nested", False) |
| 2834 | ) |
| 2835 | |
| 2836 | if populate_result_map: |
| 2837 | self._ordered_columns = self._textual_ordered_columns = ( |
| 2838 | taf.positional |
| 2839 | ) |
| 2840 | |
| 2841 | # enable looser result column matching when the SQL text links to |
| 2842 | # Column objects by name only |
| 2843 | self._loose_column_name_matching = not taf.positional and bool( |
| 2844 | taf.column_args |
| 2845 | ) |
| 2846 | |
| 2847 | for c in taf.column_args: |
| 2848 | self.process( |
| 2849 | c, |
| 2850 | within_columns_clause=True, |
| 2851 | add_to_result_map=self._add_to_result_map, |
| 2852 | ) |
| 2853 | |
| 2854 | text = self.process(taf.element, **kw) |
| 2855 | if self.ctes: |
| 2856 | nesting_level = len(self.stack) if not toplevel else None |
| 2857 | text = self._render_cte_clause(nesting_level=nesting_level) + text |
| 2858 | |
| 2859 | self.stack.pop(-1) |
| 2860 | |
| 2861 | return text |
| 2862 | |
| 2863 | def visit_null(self, expr: Null, **kw: Any) -> str: |
| 2864 | return "NULL" |
nothing calls this directly
no test coverage detected