[ 
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)

Reply via email to