protected ConnectionInfo obtainConnectionInfoNatively()

in old/dekaf-cassandra/src/main/java/org/jetbrains/dekaf/jdbc/CassandraIntermediateFacade.java [57:88]


  protected ConnectionInfo obtainConnectionInfoNatively() {
    String[] env;
    String rdbmsName, driverVersionStr, schemaName;

    final JdbcIntermediateSession session = openSession();
    try {
      env = session.queryOneRow(CONNECTION_INFO_QUERY, 1, String.class);
      Connection connection = session.getConnection();
      DatabaseMetaData md = connection.getMetaData();
      rdbmsName = md.getDatabaseProductName();
      schemaName = connection.getCatalog();
      if (rdbmsName == null) rdbmsName = connection.getClass().getName();
      driverVersionStr = md.getDriverVersion();
    }
    catch (SQLException sqle) {
      throw getExceptionRecognizer().recognizeException(sqle, "getting versions using JDBC metadata");
    }
    finally {
      session.close();
    }

    Version driverVersion = extractVersion(driverVersionStr, SIMPLE_VERSION_PATTERN, 1);

    if (env != null) {
      assert env.length == 1;
      Version serverVersion = extractVersion(env[0], SIMPLE_VERSION_PATTERN, 1);
      return new ConnectionInfo(rdbmsName, null, schemaName, null, serverVersion, driverVersion);
    }
    else {
      return new ConnectionInfo(rdbmsName, null, schemaName, null, Version.ZERO, driverVersion);
    }
  }