[ 
https://issues.apache.org/jira/browse/IGNITE-9606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16636935#comment-16636935
 ] 

ASF GitHub Bot commented on IGNITE-9606:
----------------------------------------

GitHub user pavel-kuznetsov opened a pull request:

    https://github.com/apache/ignite/pull/4906

    IGNITE-9606: JDBC getPrimaryKeys() returns wrong value for COLUMN_NAME

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gridgain/apache-ignite ignite-9606

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/4906.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #4906
    
----
commit 5d144b2f57933b96dc4ccb68be119f7c205bb6f7
Author: Pavel Kuznetsov <palmihal@...>
Date:   2018-10-02T14:43:31Z

    ignite-9606: Added test that reproduces the bug.

commit 0bf7d1c8265e681cdc5ea8b7d27c013844724be6
Author: Pavel Kuznetsov <palmihal@...>
Date:   2018-10-03T13:02:42Z

    ignite-9606: fixed COLUMN_NAME metadata result.
    
    Earlier, if key was of SQL type (so not wrapped), corresponding property 
thought that it is not a key. This behaviour affected what COLUMN_NAME JDBC 
metadata would contain.

----


> 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
>            Assignee: Pavel Kuznetsov
>            Priority: Major
>             Fix For: 2.8
>
>
> 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)

Reply via email to