[
https://issues.apache.org/jira/browse/PHOENIX-2454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15125951#comment-15125951
]
Hanwei Jin commented on PHOENIX-2454:
-------------------------------------
Hi, I have done the unit test. But, come to a problem.
If I write Null into the table (Double Type Column) , it would be fine for
writing. However, after the cell is filled, I read the row by HadoopAPI and it
will get 0.0 as default value.
test data: val dataset = Seq((1, 123.0, "String1"), (2, Double.NaN,
"String2"), (3, Float.NaN, "String3"), (4, 456, null))
and here is the sql query result:
id: 1 double value: 123.0 string value: String1
id: 2 double value: 0.0 string value: String2
id: 3 double value: 0.0 string value: String3
id: 4 double value: 456.0 string value: null
Any suggestion? Or It is already the optimal solution?
> Upsert with Double.NaN returns NumberFormatException
> ----------------------------------------------------
>
> Key: PHOENIX-2454
> URL: https://issues.apache.org/jira/browse/PHOENIX-2454
> Project: Phoenix
> Issue Type: Bug
> Reporter: alex kamil
> Priority: Minor
> Labels: newbie
> Fix For: 4.8.0
>
>
> When saving Double.NaN via prepared statement into column of type Double
> getting NumberFormatException (while expected behavior is saving null)
> test case:
> {code}
> import java.sql.*;
> public static void main(String [] args){
> try {
> Connection phoenixConnection =
> DriverManager.getConnection("jdbc:phoenix:localhost");
> String sql = "CREATE TABLE test25 (id BIGINT not null primary key,
> col1 double, col2 double)";
> Statement stmt = phoenixConnection.createStatement();
> stmt.executeUpdate(sql);
> phoenixConnection.commit();
>
> sql = "UPSERT INTO test25 (id, col1,col2) VALUES (?,?,?)";
> PreparedStatement ps = phoenixConnection.prepareStatement(sql);
> ps.setInt(1, 12);
> ps.setDouble(2, 2.5);
> ps.setDouble(3, Double.NaN);
> ps.executeUpdate();
> phoenixConnection.commit();
> phoenixConnection.close();
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)