[
https://issues.apache.org/jira/browse/IGNITE-9606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16645121#comment-16645121
]
ASF GitHub Bot commented on IGNITE-9606:
----------------------------------------
GitHub user pavel-kuznetsov opened a pull request:
https://github.com/apache/ignite/pull/4948
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-simple
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/4948.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 #4948
----
commit 5d144b2f57933b96dc4ccb68be119f7c205bb6f7
Author: Pavel Kuznetsov <palmihal@...>
Date: 2018-10-02T14:43:31Z
ignite-9606: Added test that reproduces the bug.
commit ee16f57dffe52fccaa6f2bba4e4546a343ca1581
Author: Pavel Kuznetsov <palmihal@...>
Date: 2018-10-10T14:54:49Z
ignite-9606: updated test.
commit 34d70e7135e4a1548dc6a388b68148f29039cb57
Author: Pavel Kuznetsov <palmihal@...>
Date: 2018-10-10T14:56:27Z
ignite-9606: fixed column name.
Column name now looks in the keyFieldName before returning "_KEY".
----
> 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)