(
self, element, within_columns_clause=False, **kwargs
)
| 2460 | return "(" + grouping.element._compiler_dispatch(self, **kwargs) + ")" |
| 2461 | |
| 2462 | def visit_label_reference( |
| 2463 | self, element, within_columns_clause=False, **kwargs |
| 2464 | ): |
| 2465 | if self.stack and self.dialect.supports_simple_order_by_label: |
| 2466 | try: |
| 2467 | compile_state = cast( |
| 2468 | "Union[SelectState, CompoundSelectState]", |
| 2469 | self.stack[-1]["compile_state"], |
| 2470 | ) |
| 2471 | except KeyError as ke: |
| 2472 | raise exc.CompileError( |
| 2473 | "Can't resolve label reference for ORDER BY / " |
| 2474 | "GROUP BY / DISTINCT etc." |
| 2475 | ) from ke |
| 2476 | |
| 2477 | ( |
| 2478 | with_cols, |
| 2479 | only_froms, |
| 2480 | only_cols, |
| 2481 | ) = compile_state._label_resolve_dict |
| 2482 | if within_columns_clause: |
| 2483 | resolve_dict = only_froms |
| 2484 | else: |
| 2485 | resolve_dict = only_cols |
| 2486 | |
| 2487 | # this can be None in the case that a _label_reference() |
| 2488 | # were subject to a replacement operation, in which case |
| 2489 | # the replacement of the Label element may have changed |
| 2490 | # to something else like a ColumnClause expression. |
| 2491 | order_by_elem = element.element._order_by_label_element |
| 2492 | |
| 2493 | if ( |
| 2494 | order_by_elem is not None |
| 2495 | and order_by_elem.name in resolve_dict |
| 2496 | and order_by_elem.shares_lineage( |
| 2497 | resolve_dict[order_by_elem.name] |
| 2498 | ) |
| 2499 | ): |
| 2500 | kwargs["render_label_as_label"] = ( |
| 2501 | element.element._order_by_label_element |
| 2502 | ) |
| 2503 | return self.process( |
| 2504 | element.element, |
| 2505 | within_columns_clause=within_columns_clause, |
| 2506 | **kwargs, |
| 2507 | ) |
| 2508 | |
| 2509 | def visit_textual_label_reference( |
| 2510 | self, element, within_columns_clause=False, **kwargs |
nothing calls this directly
no test coverage detected