Fix sa.Time() raising Cannot find data type: time on CrateDB#283
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
bgunebakan
left a comment
There was a problem hiding this comment.
Thank you! I've added some comments.
…ndling and round-trip behavior
CrateTypeCompilerhad novisit_time, sosa.Timefell through to SQLAlchemy's generic compiler and emitted SQL-standardTIME. CrateDB has no storable time-of-day type: plainTIMEdoesn't exist, andTIME WITH TIME ZONE(TIMETZ) is literal/cast-only ("does not support storage").sa.Date/sa.DateTimeworked only because they already had overrides mapping toTIMESTAMP.Closes #206.
Fix
Storing time-of-day as a
STRINGin ISO 8601 format — the same convention thecratedriver already uses fordatetime.time(see crate/crate-python#696):A
datetime.timenow round-trips intact, including tz-aware values.Tests
tests/create_table_test.py: DDL rendersSTRINGinstead ofTIMEtests/datetime_test.py: live round-trip of adatetime.time