ClickHouse / metabase-clickhouse-driver

ClickHouse database driver for the Metabase business intelligence front-end
Apache License 2.0
476 stars 92 forks source link

Fix error uploading offset datetime #263

Closed crisptrutski closed 1 month ago

crisptrutski commented 1 month ago

Closes https://github.com/metabase/metabase/issues/47007

Description

Without this change Metabase will throw the following error when uploading a CSV with a datetime with an offset value:

class java.time.OffsetDateTime` cannot be cast to class `java.lang.String`

This is because we were missing a case in the insert method, and it was falling through the the catch all case. The first fix is to add an explicit case for this type to fix the JDBC integration.

The second fix is to update the config for how we map CSV columns to database types in particular. Since Clickhouse does not preserve the input offset, we made the product choice to keep these values as their raw input string. By returning nil for this type we can trigger this behavior.

Testing

I am not sure how to get this tested (incl the CSV upload path) in CI.

I have tested manually in my local dev environment, and it works.

CLAassistant commented 1 month ago

CLA assistant check
All committers have signed the CLA.