]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fix creating zero length char with MySQL
authorJ. Nick Koston <nick@koston.org>
Fri, 24 Mar 2023 21:54:02 +0000 (11:54 -1000)
committerJ. Nick Koston <nick@koston.org>
Fri, 24 Mar 2023 21:54:02 +0000 (11:54 -1000)
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).

lib/sqlalchemy/dialects/mysql/base.py

index ebef48a7723e185653100b68097d7514cef613bc..46917cfff3cbdc5fe56b4779318a3d4862ca74cc 100644 (file)
@@ -2275,7 +2275,7 @@ class MySQLTypeCompiler(compiler.GenericTypeCompiler):
             )
 
     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}
             )