(
self, element, asfrom=False, from_linter=None, visiting_cte=None, **kw
)
| 4415 | return f"VALUES {tuples}" |
| 4416 | |
| 4417 | def visit_values( |
| 4418 | self, element, asfrom=False, from_linter=None, visiting_cte=None, **kw |
| 4419 | ): |
| 4420 | |
| 4421 | if element._independent_ctes: |
| 4422 | self._dispatch_independent_ctes(element, kw) |
| 4423 | |
| 4424 | v = self._render_values(element, **kw) |
| 4425 | |
| 4426 | if element._unnamed: |
| 4427 | name = None |
| 4428 | elif isinstance(element.name, elements._truncated_label): |
| 4429 | name = self._truncated_identifier("values", element.name) |
| 4430 | else: |
| 4431 | name = element.name |
| 4432 | |
| 4433 | if element._is_lateral: |
| 4434 | lateral = "LATERAL " |
| 4435 | else: |
| 4436 | lateral = "" |
| 4437 | |
| 4438 | if asfrom: |
| 4439 | if from_linter: |
| 4440 | from_linter.froms[element._de_clone()] = ( |
| 4441 | name if name is not None else "(unnamed VALUES element)" |
| 4442 | ) |
| 4443 | |
| 4444 | if visiting_cte is not None and visiting_cte.element is element: |
| 4445 | if element._is_lateral: |
| 4446 | raise exc.CompileError( |
| 4447 | "Can't use a LATERAL VALUES expression inside of a CTE" |
| 4448 | ) |
| 4449 | elif name: |
| 4450 | kw["include_table"] = False |
| 4451 | v = "%s(%s)%s (%s)" % ( |
| 4452 | lateral, |
| 4453 | v, |
| 4454 | self.get_render_as_alias_suffix(self.preparer.quote(name)), |
| 4455 | ( |
| 4456 | ", ".join( |
| 4457 | c._compiler_dispatch(self, **kw) |
| 4458 | for c in element.columns |
| 4459 | ) |
| 4460 | ), |
| 4461 | ) |
| 4462 | else: |
| 4463 | v = "%s(%s)" % (lateral, v) |
| 4464 | return v |
| 4465 | |
| 4466 | def visit_scalar_values(self, element, **kw): |
| 4467 | return f"({self._render_values(element, **kw)})" |
nothing calls this directly
no test coverage detected