(
self, element, asfrom=False, from_linter=None, visiting_cte=None, **kw
)
| 4595 | return f"VALUES {tuples}" |
| 4596 | |
| 4597 | def visit_values( |
| 4598 | self, element, asfrom=False, from_linter=None, visiting_cte=None, **kw |
| 4599 | ): |
| 4600 | |
| 4601 | if element._independent_ctes: |
| 4602 | self._dispatch_independent_ctes(element, kw) |
| 4603 | |
| 4604 | v = self._render_values(element, **kw) |
| 4605 | |
| 4606 | if element._unnamed: |
| 4607 | name = None |
| 4608 | elif isinstance(element.name, elements._truncated_label): |
| 4609 | name = self._truncated_identifier("values", element.name) |
| 4610 | else: |
| 4611 | name = element.name |
| 4612 | |
| 4613 | if element._is_lateral: |
| 4614 | lateral = "LATERAL " |
| 4615 | else: |
| 4616 | lateral = "" |
| 4617 | |
| 4618 | if asfrom: |
| 4619 | if from_linter: |
| 4620 | from_linter.froms[element._de_clone()] = ( |
| 4621 | name if name is not None else "(unnamed VALUES element)" |
| 4622 | ) |
| 4623 | |
| 4624 | if visiting_cte is not None and visiting_cte.element is element: |
| 4625 | if element._is_lateral: |
| 4626 | raise exc.CompileError( |
| 4627 | "Can't use a LATERAL VALUES expression inside of a CTE" |
| 4628 | ) |
| 4629 | elif name: |
| 4630 | kw["include_table"] = False |
| 4631 | v = "%s(%s)%s (%s)" % ( |
| 4632 | lateral, |
| 4633 | v, |
| 4634 | self.get_render_as_alias_suffix(self.preparer.quote(name)), |
| 4635 | ( |
| 4636 | ", ".join( |
| 4637 | c._compiler_dispatch(self, **kw) |
| 4638 | for c in element.columns |
| 4639 | ) |
| 4640 | ), |
| 4641 | ) |
| 4642 | else: |
| 4643 | v = "%s(%s)" % (lateral, v) |
| 4644 | return v |
| 4645 | |
| 4646 | def visit_scalar_values(self, element, **kw): |
| 4647 | return f"({self._render_values(element, **kw)})" |
nothing calls this directly
no test coverage detected