https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html
> MySQL permits you to create a column of type CHAR(0). This is useful primarily when you must be compliant with old applications that depend on the existence of a column but that do not actually use its value. CHAR(0) is also quite nice when you need a column that can take only two values: A column that is defined as CHAR(0) NULL occupies only one bit and can take only the values NULL and (the empty string).
)
def visit_CHAR(self, type_, **kw):
- if type_.length:
+ if type_.length is not None:
return self._extend_string(
type_, {}, "CHAR(%(length)s)" % {"length": type_.length}
)