| 60 | |
| 61 | |
| 62 | class DMLLimitClause(SyntaxExtension, ClauseElement): |
| 63 | stringify_dialect = "mysql" |
| 64 | __visit_name__ = "mysql_dml_limit_clause" |
| 65 | |
| 66 | _traverse_internals: _TraverseInternalsType = [ |
| 67 | ("_limit_clause", InternalTraversal.dp_clauseelement), |
| 68 | ] |
| 69 | |
| 70 | def __init__(self, limit: _LimitOffsetType): |
| 71 | self._limit_clause = coercions.expect( |
| 72 | roles.LimitOffsetRole, limit, name=None, type_=None |
| 73 | ) |
| 74 | |
| 75 | def apply_to_update(self, update_stmt: Update) -> None: |
| 76 | update_stmt.apply_syntax_extension_point( |
| 77 | self.append_replacing_same_type, "post_criteria" |
| 78 | ) |
| 79 | |
| 80 | def apply_to_delete(self, delete_stmt: Delete) -> None: |
| 81 | delete_stmt.apply_syntax_extension_point( |
| 82 | self.append_replacing_same_type, "post_criteria" |
| 83 | ) |
| 84 | |
| 85 | |
| 86 | def insert(table: _DMLTableArgument) -> Insert: |