public ConnectionInfo obtainConnectionInfoNatively()

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);
    }
  }