You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Hanwei Jin (JIRA)" <ji...@apache.org> on 2016/02/01 10:06:39 UTC

[jira] [Issue Comment Deleted] (PHOENIX-2454) Upsert with Double.NaN returns NumberFormatException

     [ https://issues.apache.org/jira/browse/PHOENIX-2454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hanwei Jin updated PHOENIX-2454:
--------------------------------
    Comment: was deleted

(was: 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)