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

Yuming Wang updated SPARK-28620:
--------------------------------
    Description: 
{code:sql}
  test("SPARK-28620") {
    withJdbcStatement {
      statement =>
        val rs = statement.executeQuery(
          "SELECT CAST('1.2345678901234e+20' AS FLOAT), CAST('4.56' AS FLOAT)")
        rs.next()
        assert(rs.getObject(1).isInstanceOf[java.lang.Double])
        assert(rs.getObject(2).isInstanceOf[java.lang.Double])
    }
  }
{code}

This inconsistent with spark-shell and spark-sql:

{code:sql}
0: jdbc:hive2://localhost:10000> SELECT CAST('1.2345678901234e+20' AS FLOAT), 
CAST('4.56' AS FLOAT);
+-------------------------------------+----------------------+
| CAST(1.2345678901234e+20 AS FLOAT)  | CAST(4.56 AS FLOAT)  |
+-------------------------------------+----------------------+
| 1.2345679000000001E20               | 4.56                 |
+-------------------------------------+----------------------+
1 row selected (0.268 seconds)
{code}

{code:sql}
spark-sql> SELECT CAST('1.2345678901234e+20' AS FLOAT), CAST('4.56' AS FLOAT);
1.2345679E20    4.56

scala> spark.sql("SELECT CAST('1.2345678901234e+20' AS FLOAT), CAST('4.56' AS 
FLOAT)").show
+----------------------------------+-------------------+
|CAST(1.2345678901234e+20 AS FLOAT)|CAST(4.56 AS FLOAT)|
+----------------------------------+-------------------+
|                      1.2345679E20|               4.56|
+----------------------------------+-------------------+
{code}


  was:
{code:sql}
SELECT CAST('1.2345678901234e+20' as float), CAST('4.56' AS FLOAT)
{code}


> Double type returned for float type in Beeline/JDBC
> ---------------------------------------------------
>
>                 Key: SPARK-28620
>                 URL: https://issues.apache.org/jira/browse/SPARK-28620
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 3.0.0
>            Reporter: Yuming Wang
>            Priority: Major
>
> {code:sql}
>   test("SPARK-28620") {
>     withJdbcStatement {
>       statement =>
>         val rs = statement.executeQuery(
>           "SELECT CAST('1.2345678901234e+20' AS FLOAT), CAST('4.56' AS 
> FLOAT)")
>         rs.next()
>         assert(rs.getObject(1).isInstanceOf[java.lang.Double])
>         assert(rs.getObject(2).isInstanceOf[java.lang.Double])
>     }
>   }
> {code}
> This inconsistent with spark-shell and spark-sql:
> {code:sql}
> 0: jdbc:hive2://localhost:10000> SELECT CAST('1.2345678901234e+20' AS FLOAT), 
> CAST('4.56' AS FLOAT);
> +-------------------------------------+----------------------+
> | CAST(1.2345678901234e+20 AS FLOAT)  | CAST(4.56 AS FLOAT)  |
> +-------------------------------------+----------------------+
> | 1.2345679000000001E20               | 4.56                 |
> +-------------------------------------+----------------------+
> 1 row selected (0.268 seconds)
> {code}
> {code:sql}
> spark-sql> SELECT CAST('1.2345678901234e+20' AS FLOAT), CAST('4.56' AS FLOAT);
> 1.2345679E20  4.56
> scala> spark.sql("SELECT CAST('1.2345678901234e+20' AS FLOAT), CAST('4.56' AS 
> FLOAT)").show
> +----------------------------------+-------------------+
> |CAST(1.2345678901234e+20 AS FLOAT)|CAST(4.56 AS FLOAT)|
> +----------------------------------+-------------------+
> |                      1.2345679E20|               4.56|
> +----------------------------------+-------------------+
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to