External database access unification (jdbc/odbc bridges)#3210
External database access unification (jdbc/odbc bridges)#3210alexey-milovidov merged 11 commits intoClickHouse:masterfrom alex-krash:jdbc-bridge
Conversation
|
Currently, new implementation of ODBC, via unified bridge interface is registered via "idbc" name, in order to being able to perform comparison between them. |
Ok.
Yes. There is no reason, why it is not implemented.
You can replace old ODBC to your implementation as soon as integration test passes. |
|
Looks like I've finished with this PR.
|
| std::string identifier = ""; | ||
|
|
||
| SQLSMALLINT t; | ||
| SQLRETURN r = POCO_SQL_ODBC_CLASS::SQLGetInfo(hdbc, SQL_IDENTIFIER_QUOTE_CHAR, NULL, 0, &t); |
There was a problem hiding this comment.
Actually we know that the size of SQL_IDENTIFIER_QUOTE_CHAR is one or zero bytes. So maybe here we can allocate buffer (identifier) and request ODBC only once?
There was a problem hiding this comment.
I propose to keep it consistent with bloody ODBC-interface, and not make too tricky and fragile.
|
Style Erros: Build logs: |
|
Build still fails with errors: https://pastebin.com/EeVHeViY |
|
@alesapin , sorry, my bad. |
|
Ok, thank you. Now travis build fails (you can see error in "Details" link) and two ODBC integration tests fail. |
|
Got it, thanks! Will spend more time on trying to launch integrations. |
|
Maybe it's possible to recognize error from stack trace: Intergration tests instruction https://github.com/yandex/ClickHouse/blob/master/dbms/tests/integration/README.md |
We want to add the support for Nullable types in ODBC and MySQL storages. The logic will be, for
For
|
|
As I understand, it is disabled right now. Things to do:
|
|
We should think how to make this feature available for users with absolute minimum installation steps.
|
|
@alexey-milovidov , I've wrapped JDBC bridge into .deb package. Application consists of single jar with all the dependencies, and requires JDK to start this jar. |
This is implemented in #3362
This is to do. |
I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
The purpose of this PR is to implement connect to external databases via odbc/jdbc bridges, spawned as separate daemons.
I am working in parallel on JDBC-bridge here - https://github.com/alex-krash/clickhouse-jdbc-bridge
The final result of this PR would be like:
While working on this PR, I've figured out following problems, which I would like to solve as well:
Example of jdbc interaction with MySQL:
From clickhouse-client: