docker exec -it broken-odbc /usr/fake-bin/clickhouse/usr/bin/clickhouse server
And in a third, 1.1.6 works
$ docker exec -it broken-odbc bash
root@f2dd5e6e2de8:/# curl -sLO https://github.com/ClickHouse/clickhouse-odbc/releases/download/v1.1.6.20200320/clickhouse-odbc-1.1.6-Linux.tar.gz
root@f2dd5e6e2de8:/# tar xf clickhouse-odbc-*-Linux.tar.gz && mv clickhouse-odbc-*-Linux/lib64/* /usr/local/lib64/ && /usr/fake-bin/clickhouse/usr/bin/clickhouse client -q "select count() > 1 as ok from (select * from odbc('DSN={ClickHouse DSN (ANSI)}','system','tables'))" ; /usr/fake-bin/clickhouse/usr/bin/clickhouse client -q "select count() > 1 as ok from (select * from odbc('DSN={ClickHouse DSN (UNICODE)}','system','tables'))"
1
1
And every version after 1.1.7 does not
root@08ad8abeb527:/# curl -sLO https://github.com/ClickHouse/clickhouse-odbc/releases/download/v1.1.7.20200414/clickhouse-odbc-1.1.7-Linux.tar.gz
root@08ad8abeb527:/# tar xf clickhouse-odbc-*-Linux.tar.gz && mv clickhouse-odbc-*-Linux/lib64/* /usr/local/lib64/ && /usr/fake-bin/clickhouse/usr/bin/clickhouse client -q "select count() > 1 as ok from (select * from odbc('DSN={ClickHouse DSN (ANSI)}','system','tables'))" ; /usr/fake-bin/clickhouse/usr/bin/clickhouse client -q "select count() > 1 as ok from (select * from odbc('DSN={ClickHouse DSN (UNICODE)}','system','tables'))"
Received exception from server (version 24.2.1):
Code: 86. DB::Exception: Received from localhost:9000. DB::HTTPException. DB::HTTPException: Received error from remote server /columns_info?use_connection_pooling=1&version=1&connection_string=DSN%3D%7BClickHouse%20DSN%20%28ANSI%29%7D&schema=system&table=tables&external_table_functions_use_nulls=1. HTTP status code: 500 Internal Server Error, body: Error getting columns from ODBC 'std::exception. Code: 1001, type: nanodbc::database_error, e.what() = contrib/nanodbc/nanodbc/nanodbc.cpp:1046: 0100: [unixODBC][Driver Manager]Can't open lib '/usr/local/lib64/libclickhouseodbc.so' : file not found (version 24.2.1.1182)'
. (RECEIVED_ERROR_FROM_REMOTE_IO_SERVER)
(query: select count() > 1 as ok from (select * from odbc('DSN={ClickHouse DSN (ANSI)}','system','tables')))
Received exception from server (version 24.2.1):
Code: 86. DB::Exception: Received from localhost:9000. DB::HTTPException. DB::HTTPException: Received error from remote server /columns_info?use_connection_pooling=1&version=1&connection_string=DSN%3D%7BClickHouse%20DSN%20%28UNICODE%29%7D&schema=system&table=tables&external_table_functions_use_nulls=1. HTTP status code: 500 Internal Server Error, body: Error getting columns from ODBC 'std::exception. Code: 1001, type: nanodbc::database_error, e.what() = contrib/nanodbc/nanodbc/nanodbc.cpp:1046: 0100: [unixODBC][Driver Manager]Can't open lib '/usr/local/lib64/libclickhouseodbcw.so' : file not found (version 24.2.1.1182)'
. (RECEIVED_ERROR_FROM_REMOTE_IO_SERVER)
(query: select count() > 1 as ok from (select * from odbc('DSN={ClickHouse DSN (UNICODE)}','system','tables')))
Be aware, the container must restart between tests.
Here's what I am doing to test it.
In a second terminal
And in a third, 1.1.6 works
And every version after 1.1.7 does not
Be aware, the container must restart between tests.
I suspect the missing library
Looks like it's related to https://github.com/ClickHouse/clickhouse-odbc/issues/428