in old/dekaf-clickhouse/src/main/java/org/jetbrains/dekaf/jdbc/CHouseIntermediateFacade.java [45:81]
public ConnectionInfo obtainConnectionInfoNatively() {
String[] env;
String rdbmsName, driverVersionStr;
final JdbcIntermediateSession session = openSession();
try {
// retrieving all except driver version
env = session.queryOneRow(CONNECTION_INFO_QUERY, 2, String.class);
// getting the driver version
try {
DatabaseMetaData md = session.getConnection().getMetaData();
rdbmsName = md.getDatabaseProductName();
if (rdbmsName == null) rdbmsName = session.getConnection().getClass().getName();
driverVersionStr = md.getDriverVersion();
}
catch (SQLException sqle) {
throw getExceptionRecognizer().recognizeException(sqle, "getting versions using JDBC metadata");
}
}
finally {
session.close();
}
Version driverVersion =
extractVersion(driverVersionStr, CHOUSE_VERSION_PATTERN, 1);
if (env != null) {
assert env.length == 2;
String serverVersionStr = env[1];
Version serverVersion = extractVersion(serverVersionStr, CHOUSE_VERSION_PATTERN, 1);
return new ConnectionInfo(rdbmsName, null, env[0], null, serverVersion, driverVersion);
}
else {
return new ConnectionInfo(rdbmsName, null, null, null, Version.ZERO, driverVersion);
}
}