Comments (7)
There was pull request in 20 version of ClickHouse server that saves type synonyms in table declarations and in data formats. VARCHAR is synonym for String. Earlier server versions have types canonization. So even you specify VARCHAR as source type you will get String as canonized type.
Many 3rd party tools are broken now. ClickHouse developers say that that PR is contentious and can be reverted or can lead to another changes.
I'd prefer to wait for server developers' final decision on types canonization.
from clickhouse-sqlalchemy.
Many 3rd party tools are broken now.
You name it! Thanks so much for the explanation!
If anybody would be able to point me to the pull request as I have hard times finding it this would be awesome! I'd like to understand the behaviour and it's consequences in full.
I can still proactively decide how to roll forward and would like to make sure I take the right decision what to use where (table DDL and creation / driver / tool). Not all are 100% under my control, so this might get a bit tricky. Currently using VARCHAR in the DDL definition using JDBC to create table, sqlalchemy (native) to read (VARCHAR) which only works when calling toString() in the statement itself. Looks quite ugly and I'd like to streamline this mess! Would using String clean this up or will this cause problems when the Pull request is reverted? Unfortunately I cannot wait that much longer and take a decision now.
This is really annoying, especially as this went into the release and there's nothing mentioned in the backwards incompatibilities list (and other fixes needed to go into production):
https://github.com/ClickHouse/ClickHouse/blob/master/CHANGELOG.md
from clickhouse-sqlalchemy.
I've found PR: ClickHouse/ClickHouse#8370
from clickhouse-sqlalchemy.
Thanks very much, this is very useful! Highly appreciate your update. Will close issue here as this is more Clickhouse dependant than a driver issue!
from clickhouse-sqlalchemy.
I don't know on which side this should be fixed, but it seems we can make workaround in driver.
from clickhouse-sqlalchemy.
PR with discussion about canonical types: ClickHouse/ClickHouse#8429 (comment)
from clickhouse-sqlalchemy.
Keep alias type in metadata was reverted. This fix is present in 20.3 version of server.
from clickhouse-sqlalchemy.
Related Issues (20)
- Does `clickhouse-sqlalchemy` 3.0.0 support `sqlalchemy` of the version 1.4.*? HOT 5
- Create a cluster table orm class with engines.Distributed which has a logs attribute, how to use variable to indicate it?
- alembic does not autogenerate engine for clickhouse table HOT 4
- Patreon does not work HOT 1
- Add support for Date32 HOT 2
- Handling Clickhouse Alembic Migrations for Clickhouse cluster HOT 2
- Support/example for creating views HOT 2
- `create_all` for all the `MaterializedView`
- With chdb this clickhouse downsized memory database, can clickhouse-sqlalchemy support it or not?
- Support VariantType
- Table reflection for DateTime64 timezone will be extra quoted
- Alembic_Version Records disappered after clickhouse alembic migration HOT 5
- using http mode, connecting database failed when account password ends with @ HOT 2
- Support nested Map column
- Cannot seem to run ALTER command on replicas of the same shard HOT 2
- Sqlalchemy can't catch asynch's error
- query_id cannot be set with the native TCP connection
- Feature Request: Support clickhouse-connect's NEW AsyncClient wrapper HOT 5
- Nested maps, tuples, enums don't work HOT 2
- Support Lightweight DELETE Statement HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clickhouse-sqlalchemy.