[jira] [Created] (IGNITE-9606) JDBC getPrimaryKeys() returns wrong value for COLUMN_NAME

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-9606) JDBC getPrimaryKeys() returns wrong value for COLUMN_NAME

Anton Vinogradov (Jira)
Pat Patterson created IGNITE-9606:
-------------------------------------

             Summary: JDBC getPrimaryKeys() returns wrong value for COLUMN_NAME
                 Key: IGNITE-9606
                 URL: https://issues.apache.org/jira/browse/IGNITE-9606
             Project: Ignite
          Issue Type: Bug
          Components: jdbc
    Affects Versions: 2.6
            Reporter: Pat Patterson


JDBC {{getPrimaryKeys()}} method returns {{_KEY}} as column name rather than actual column name. This breaks apps that expect a valid column name as the primary key.

Trivially reproducible:

{noformat}
  public static void main(String[] args) throws Exception {
    // Register JDBC driver.
    Class.forName("org.apache.ignite.IgniteJdbcThinDriver");

    // Open JDBC connection.
    try (Connection conn = DriverManager.getConnection("jdbc:ignite:thin://127.0.0.1/")) {
      // Create database tables.
      try (Statement stmt = conn.createStatement()) {
        stmt.executeUpdate("CREATE TABLE TESTER (" + " ID LONG PRIMARY KEY, NAME VARCHAR) " + " WITH \"template=replicated\"");
      }

      // Get database metadata
      DatabaseMetaData md = conn.getMetaData();

      // Get primary keys
      ResultSet rs = md.getPrimaryKeys(conn.getCatalog(), "", "TESTER");

      //
      while (rs.next()) {
        // Column 4 is COLUMN_NAME
        System.out.println("Primary key column is " + rs.getString(4));
      }
    }
  }
{noformat}

Expected output is:

{noformat}
Primary key column is ID
{noformat}

Actual output is:

{noformat}
Primary key column is _KEY
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)