TypeError when using Enum columns with the Databricks dialect (all 2.0.x releases)
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 70/100
Línea de trabajo
Comienza con DatabricksStringType y sigue la ruta de SQLAlchemy's Enum.adapt() descrita en el issue. Ejecuta la reproducción proporcionada de DeclarativeBase con un motor de Databricks y verifica después que la creación de los metadatos con la columna Enum finaliza sin el _enums TypeError.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
Any SQLAlchemy operation that involves an Enum-typed column with the Databricks dialect raises:
TypeError: String.__init__() got an unexpected keyword argument '_enums'
Steps to reproduce
from sqlalchemy import create_engine, Column, Enum
from sqlalchemy.orm import DeclarativeBase
class Base(DeclarativeBase):
pass
class MyTable(Base):
__tablename__ = "my_table"
status = Column(Enum("A", "B", "C"), nullable=False)
engine = create_engine("databricks://...")
Base.metadata.create_all(engine)
Root cause
databricks-sqlalchemy registers DatabricksStringType as the colspec for sqlalchemy.String in the Databricks dialect. When SQLAlchemy adapts an Enum column (via Enum.adapt()), it internally passes _enums as a keyword argument to the target type's constructor. DatabricksStringType.__init__() does not accept **kwargs or _enums, causing the crash.
Environment
Affected versions: 2.0.1 – 2.0.9
SQLAlchemy: 2.0.x
Related issues
- #32 - No JSON colspec, CompileError at DDL compile time
- #37 - No INTERVAL colspec, Silent missing feature
- This issue - Enum colspec exists but target class rejects _enums kwarg
- Lenguaje dominante
- Python
- Estrellas
- 24
- Forks
- 20
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de databricks/databricks-sqlalchemy
-
get_columns() missing @reflection.cache causes a warehouse round-trip on every reflection callPosiblemente ocupada @TangoEnSkai la tomó hace 48 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
get_foreign_keys() missing @reflection.cache causes excessive DESCRIBE TABLE EXTENDED queriesPosiblemente ocupada @TangoEnSkai la tomó hace 48 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 64/100
databricks/databricks-sqlalchemy#77 · 2 comentarios ·
-
Unable to insert Python lists into ARRAY<STRING> columns using pandas to_sqlPosiblemente ocupada @aminghadersohi la tomó hace 14 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
databricks/databricks-sqlalchemy#73 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Todos los issues de databricks/databricks-sqlalchemy
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
awslabs/visual-asset-management-system#414 ·
Los mantenedores suelen responder en 1 día
-
bug v1 v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
modelcontextprotocol/python-sdk#3670 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
aicell-lab/bioengine#232 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
modelscope/evalscope#1836 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100