[ https://issues.apache.org/jira/browse/SPARK-27768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xiao Li updated SPARK-27768: ---------------------------- Description: When the inputs contain the constant 'infinity', Spark SQL does not generate the expected results. {code:java} SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('1'), (CAST('infinity' AS DOUBLE))) v(x); SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('infinity'), ('1')) v(x); SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('infinity'), ('infinity')) v(x); SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('-infinity'), ('infinity')) v(x);{code} The root cause: Spark SQL does not recognize the special constants in a case insensitive way. In PostgreSQL, they are recognized in a case insensitive way. Link: https://www.postgresql.org/docs/9.3/datatype-numeric.html was: When the inputs contain the constant 'infinity', Spark SQL does not generate the expected results. {code:java} SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('1'), (CAST('infinity' AS DOUBLE))) v(x); SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('infinity'), ('1')) v(x); SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('infinity'), ('infinity')) v(x); SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) FROM (VALUES ('-infinity'), ('infinity')) v(x);{code} > Incorrect statistical aggregate results when the inputs have constants > infinity > -------------------------------------------------------------------------------- > > Key: SPARK-27768 > URL: https://issues.apache.org/jira/browse/SPARK-27768 > Project: Spark > Issue Type: Sub-task > Components: SQL > Affects Versions: 3.0.0 > Reporter: Xiao Li > Priority: Major > > When the inputs contain the constant 'infinity', Spark SQL does not generate > the expected results. > {code:java} > SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) > FROM (VALUES ('1'), (CAST('infinity' AS DOUBLE))) v(x); > SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) > FROM (VALUES ('infinity'), ('1')) v(x); > SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) > FROM (VALUES ('infinity'), ('infinity')) v(x); > SELECT avg(CAST(x AS DOUBLE)), var_pop(CAST(x AS DOUBLE)) > FROM (VALUES ('-infinity'), ('infinity')) v(x);{code} > The root cause: Spark SQL does not recognize the special constants in a case > insensitive way. In PostgreSQL, they are recognized in a case insensitive > way. > Link: https://www.postgresql.org/docs/9.3/datatype-numeric.html > -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org