mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
fix(db_engine_specs): mysql longtext type should not be numeric (#10661)
This commit is contained in:
@@ -20,6 +20,7 @@ from sqlalchemy.dialects import mysql
|
||||
from sqlalchemy.dialects.mysql import DATE, NVARCHAR, TEXT, VARCHAR
|
||||
|
||||
from superset.db_engine_specs.mysql import MySQLEngineSpec
|
||||
from superset.utils.core import DbColumnType
|
||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||
|
||||
|
||||
@@ -62,3 +63,41 @@ class TestMySQLEngineSpecsDbEngineSpec(TestDbEngineSpec):
|
||||
original, mysql.dialect()
|
||||
)
|
||||
self.assertEqual(actual, expected)
|
||||
|
||||
def test_is_db_column_type_match(self):
|
||||
type_expectations = (
|
||||
# Numeric
|
||||
("TINYINT", DbColumnType.NUMERIC),
|
||||
("SMALLINT", DbColumnType.NUMERIC),
|
||||
("MEDIUMINT", DbColumnType.NUMERIC),
|
||||
("INT", DbColumnType.NUMERIC),
|
||||
("BIGINT", DbColumnType.NUMERIC),
|
||||
("DECIMAL", DbColumnType.NUMERIC),
|
||||
("FLOAT", DbColumnType.NUMERIC),
|
||||
("DOUBLE", DbColumnType.NUMERIC),
|
||||
("BIT", DbColumnType.NUMERIC),
|
||||
# String
|
||||
("CHAR", DbColumnType.STRING),
|
||||
("VARCHAR", DbColumnType.STRING),
|
||||
("TINYTEXT", DbColumnType.STRING),
|
||||
("MEDIUMTEXT", DbColumnType.STRING),
|
||||
("LONGTEXT", DbColumnType.STRING),
|
||||
# Temporal
|
||||
("DATE", DbColumnType.TEMPORAL),
|
||||
("DATETIME", DbColumnType.TEMPORAL),
|
||||
("TIMESTAMP", DbColumnType.TEMPORAL),
|
||||
("TIME", DbColumnType.TEMPORAL),
|
||||
)
|
||||
|
||||
for type_expectation in type_expectations:
|
||||
type_str = type_expectation[0]
|
||||
col_type = type_expectation[1]
|
||||
assert MySQLEngineSpec.is_db_column_type_match(
|
||||
type_str, DbColumnType.NUMERIC
|
||||
) is (col_type == DbColumnType.NUMERIC)
|
||||
assert MySQLEngineSpec.is_db_column_type_match(
|
||||
type_str, DbColumnType.STRING
|
||||
) is (col_type == DbColumnType.STRING)
|
||||
assert MySQLEngineSpec.is_db_column_type_match(
|
||||
type_str, DbColumnType.TEMPORAL
|
||||
) is (col_type == DbColumnType.TEMPORAL)
|
||||
|
||||
Reference in New Issue
Block a user