(
element: ExternallyTraversible, **kw: Any
)
| 1482 | val = on_duplicate_update[column.key] |
| 1483 | |
| 1484 | def replace( |
| 1485 | element: ExternallyTraversible, **kw: Any |
| 1486 | ) -> Optional[ExternallyTraversible]: |
| 1487 | if ( |
| 1488 | isinstance(element, elements.BindParameter) |
| 1489 | and element.type._isnull |
| 1490 | ): |
| 1491 | return element._with_binary_element_type(column.type) |
| 1492 | elif ( |
| 1493 | isinstance(element, elements.ColumnClause) |
| 1494 | and element.table is on_duplicate.inserted_alias |
| 1495 | ): |
| 1496 | if requires_mysql8_alias: |
| 1497 | column_literal_clause = ( |
| 1498 | f"{_on_dup_alias_name}." |
| 1499 | f"{self.preparer.quote(element.name)}" |
| 1500 | ) |
| 1501 | else: |
| 1502 | column_literal_clause = ( |
| 1503 | f"VALUES({self.preparer.quote(element.name)})" |
| 1504 | ) |
| 1505 | return literal_column(column_literal_clause) |
| 1506 | else: |
| 1507 | # element is not replaced |
| 1508 | return None |
| 1509 | |
| 1510 | val = visitors.replacement_traverse(val, {}, replace) |
| 1511 | value_text = self.process(val.self_group(), use_schema=False) |
no test coverage detected