diff options
Diffstat (limited to 'sqlglot/dialects/mysql.py')
-rw-r--r-- | sqlglot/dialects/mysql.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sqlglot/dialects/mysql.py b/sqlglot/dialects/mysql.py index 6327796..46e3f19 100644 --- a/sqlglot/dialects/mysql.py +++ b/sqlglot/dialects/mysql.py @@ -119,7 +119,7 @@ class MySQL(Dialect): QUOTES = ["'", '"'] COMMENTS = ["--", "#", ("/*", "*/")] IDENTIFIERS = ["`"] - STRING_ESCAPES = ["'", "\\"] + STRING_ESCAPES = ["'", '"', "\\"] BIT_STRINGS = [("b'", "'"), ("B'", "'"), ("0b", "")] HEX_STRINGS = [("x'", "'"), ("X'", "'"), ("0x", "")] @@ -132,6 +132,8 @@ class MySQL(Dialect): "LONGBLOB": TokenType.LONGBLOB, "LONGTEXT": TokenType.LONGTEXT, "MEDIUMBLOB": TokenType.MEDIUMBLOB, + "TINYBLOB": TokenType.TINYBLOB, + "TINYTEXT": TokenType.TINYTEXT, "MEDIUMTEXT": TokenType.MEDIUMTEXT, "MEDIUMINT": TokenType.MEDIUMINT, "MEMBER OF": TokenType.MEMBER_OF, @@ -356,6 +358,15 @@ class MySQL(Dialect): LOG_DEFAULTS_TO_LN = True + def _parse_primary_key_part(self) -> t.Optional[exp.Expression]: + this = self._parse_id_var() + if not self._match(TokenType.L_PAREN): + return this + + expression = self._parse_number() + self._match_r_paren() + return self.expression(exp.ColumnPrefix, this=this, expression=expression) + def _parse_index_constraint( self, kind: t.Optional[str] = None ) -> exp.IndexColumnConstraint: @@ -577,8 +588,10 @@ class MySQL(Dialect): TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMTEXT) TYPE_MAPPING.pop(exp.DataType.Type.LONGTEXT) + TYPE_MAPPING.pop(exp.DataType.Type.TINYTEXT) TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMBLOB) TYPE_MAPPING.pop(exp.DataType.Type.LONGBLOB) + TYPE_MAPPING.pop(exp.DataType.Type.TINYBLOB) PROPERTIES_LOCATION = { **generator.Generator.PROPERTIES_LOCATION, |