[ https://issues.apache.org/jira/browse/FLINK-13690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
molsion updated FLINK-13690: ---------------------------- Description: JDBCUtils.getFieldFromResultSet(int index, int type, ResultSet set) this method have a bug, ResultSet.wasNull() reports whether the last column read had a value of SQL NULL, {color:#ff0000}NOT the current column {color} *{color:#333333}bug scene:{color}* {color:#333333}1. I want to join a dimension table, column is {color} {code:java} Id (INT), ProjectType(INT), Desp(VARCHAR),Name(VARCHAR) {code} 2. select from database table is {code:java} {"Id": 10, "ProjectType":100,"Desp":NULL,"Name":"ProjectName"} {code} 3. org.apache.flink.api.java.io.jdbc.JDBCLookupFunction#convertToRowFromResultSet return the row is {code:java} {"Id": 10, "ProjectType":100,"Desp":NULL,"Name":NULL}{code} beause JDBCUtils.getFieldFromResultSet(int index, int type, ResultSet set) when index = 3, ResultSet.wasNull is true, then value of column Name is null this operator will influence next opertator , then i can not get the column Name. *Bug Fix:* org.apache.flink.api.java.io.jdbc.JDBCUtils#getFieldFromResultSet can fix NULL judge to fix this bug was: JDBCUtils.getFieldFromResultSet(int index, int type, ResultSet set) this method have a bug, ResultSet.wasNull() reports whether the last column read had a value of SQL NULL, {color:#FF0000}NOT the current column {color} *{color:#333333}bug scene:{color}* {color:#333333}1. I want to join a dimension table, column is {color} {code:java} Id (INT), ProjectType(INT), Desp(VARCHAR),Name(VARCHAR) {code} 2. select from database table is {code:java} {"Id": 10, "ProjectType":100,"Desp":NULL,"Name":"ProjectName"} {code} 3. org.apache.flink.api.java.io.jdbc.JDBCLookupFunction#convertToRowFromResultSet return the row is {code:java} {"Id": 10, "ProjectType":100,"Desp":NULL,"Name":NULL}{code} beause JDBCUtils.getFieldFromResultSet(int index, int type, ResultSet set) when index = 3, ResultSet.wasNull is true, then value of column Name is null this operator will influence next opertator , then i can not get the column Name. *Bug Fix:* org.apache.flink.api.java.io.jdbc.JDBCUtils#getFieldFromResultSet can fix NULL judge to fix this bug > Connectors/JDBC LookupFunction getFieldFromResultSet BUG > -------------------------------------------------------- > > Key: FLINK-13690 > URL: https://issues.apache.org/jira/browse/FLINK-13690 > Project: Flink > Issue Type: Bug > Components: Connectors / JDBC > Affects Versions: 1.9.0 > Reporter: molsion > Assignee: molsion > Priority: Major > Labels: pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > JDBCUtils.getFieldFromResultSet(int index, int type, ResultSet set) > this method have a bug, ResultSet.wasNull() reports whether the last column > read had a value of SQL NULL, {color:#ff0000}NOT the current column {color} > > *{color:#333333}bug scene:{color}* > {color:#333333}1. I want to join a dimension table, column is {color} > {code:java} > Id (INT), ProjectType(INT), Desp(VARCHAR),Name(VARCHAR) > {code} > > 2. select from database table is > {code:java} > {"Id": 10, "ProjectType":100,"Desp":NULL,"Name":"ProjectName"} > {code} > > 3. > org.apache.flink.api.java.io.jdbc.JDBCLookupFunction#convertToRowFromResultSet > return the row is > {code:java} > {"Id": 10, "ProjectType":100,"Desp":NULL,"Name":NULL}{code} > beause JDBCUtils.getFieldFromResultSet(int index, int type, ResultSet set) > when index = 3, ResultSet.wasNull is true, then value of column Name is null > > this operator will influence next opertator , then i can not get the column > Name. > > *Bug Fix:* > org.apache.flink.api.java.io.jdbc.JDBCUtils#getFieldFromResultSet can fix > NULL judge to fix this bug > -- This message was sent by Atlassian JIRA (v7.6.14#76016)