Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(api): make create_table uniform
This commit addresses most outstanding DDL API discrepancy issues including: - `create_table`/`create_view` for pandas, dask and polars - making the various DDL APIs as uniform as possible (see clickhouse for an example of divergence) - deprecation of `load_data` (except on impala, since it's significantly different from the others) - add clickhouse implementations of `create_table`/`create_view`/`create_database` - standardization of APIs for creating tables During the process of getting all of this to work, I uncovered multiple issues with `snowflake-sqlalchemy`'s quoting behavior and had to monkey patch in `normalize_name` to avoid the broken heuristic they are using. Additionally, to avoid having to solve the "which case should I use?" problem in multiple places, I decided to remove our backend-scoped use of `sqlalchemy.MetaData`. Without removing it, we'd have to deal with identifiers' case not matching. It's possible there's a performance hit, but removing this maintenance burden until someone comes along saying it's slow is worth it IMO. BREAKING CHANGE: Snowflake identifiers are now kept **as is** from the database. Many table names and column names may now be in SHOUTING CASE. Adjust code accordingly.
- Loading branch information