-
-
Notifications
You must be signed in to change notification settings - Fork 153
Closed
Description
Describe the bug
Driver fail on Enums with empty string.
File "/root/venv/lib/python3.9/site-packages/clickhouse_sqlalchemy-0.1.6-py3.9.egg/clickhouse_sqlalchemy/drivers/base.py", line 827, in reflecttable
rv = super(ClickHouseDialect, self).reflecttable(
File "/root/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 484, in reflecttable
return insp.reflecttable(
File "/root/venv/lib/python3.9/site-packages/sqlalchemy/engine/reflection.py", line 664, in reflecttable
for col_d in self.get_columns(
File "/root/venv/lib/python3.9/site-packages/sqlalchemy/engine/reflection.py", line 390, in get_columns
col_defs = self.dialect.get_columns(
File "<string>", line 2, in get_columns
File "/root/venv/lib/python3.9/site-packages/sqlalchemy/engine/reflection.py", line 52, in cache
ret = fn(self, con, *args, **kw)
File "/root/venv/lib/python3.9/site-packages/clickhouse_sqlalchemy-0.1.6-py3.9.egg/clickhouse_sqlalchemy/drivers/base.py", line 865, in get_columns
return [self._get_column_info(row.name, row.type) for row in rows]
File "/root/venv/lib/python3.9/site-packages/clickhouse_sqlalchemy-0.1.6-py3.9.egg/clickhouse_sqlalchemy/drivers/base.py", line 865, in <listcomp>
return [self._get_column_info(row.name, row.type) for row in rows]
File "/root/venv/lib/python3.9/site-packages/clickhouse_sqlalchemy-0.1.6-py3.9.egg/clickhouse_sqlalchemy/drivers/base.py", line 868, in _get_column_info
col_type = self._get_column_type(name, format_type)
File "/root/venv/lib/python3.9/site-packages/clickhouse_sqlalchemy-0.1.6-py3.9.egg/clickhouse_sqlalchemy/drivers/base.py", line 911, in _get_column_type
type_enum = enum.Enum('%s_enum' % name, options)
File "/usr/lib/python3.9/enum.py", line 362, in __call__
return cls._create_(
File "/usr/lib/python3.9/enum.py", line 486, in _create_
enum_class = metacls.__new__(metacls, class_name, bases, classdict)
File "/usr/lib/python3.9/enum.py", line 207, in __new__
raise ValueError('Invalid enum member name: {0}'.format(
ValueError: Invalid enum member name:
To Reproduce
Populate clickhouse with https://clickhouse.com/docs/en/getting-started/example-datasets/cell-towers/
CREATE TABLE cell_towers
(
radio Enum8('' = 0, 'CDMA' = 1, 'GSM' = 2, 'LTE' = 3, 'NR' = 4, 'UMTS' = 5),
....
)
Install apache superset and try to "Add dataset"
Expected behavior
Should work with an empty string in Enums.
Versions
clickhouse-sqlalchemy latest from git
Python version 3.9.2
Metadata
Metadata
Assignees
Labels
No labels