[
https://issues.apache.org/jira/browse/FLINK-29590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
luoyuxia updated FLINK-29590:
-----------------------------
Description:
in FLINK-26474, we try to fold constant, but it brings a issue that the folded
constant like `Double.NAN` and no-primitive type can't be convert into calcite
literal in method `HiveParserRexNodeConverter#convertConstant`.
For example, the following code will throw an exception
"org.apache.hadoop.hive.ql.parse.SemanticException: NaN" in method
`HiveParserRexNodeConverter#convertConstant`
{code:java}
// hive dialect
SELECT asin(2); {code}
To fix it, we need to figure out such case and then not to fold constant .
in FLINK-27017, we use Hive's `GenericUDFOPDivide` to do divide for better
compatibility, but it bring a issue that when use a int/long literal as
divisor, the result type passed and inferred type may not match.
The fix it, we need to make the result type match the inferred type.
was:
in FLINK-26474, we try to fold constant, but it may bring a issue that the
folded constant like `Double.NAN` and no-primitive type can't be convert into
calcite literal in method `HiveParserRexNodeConverter#convertConstant`.
in FLINK-27017, we use Hive's `GenericUDFOPDivide` to do divide for better
compatity.
> Fix literal issue in HiveDialect
> --------------------------------
>
> Key: FLINK-29590
> URL: https://issues.apache.org/jira/browse/FLINK-29590
> Project: Flink
> Issue Type: Bug
> Components: Connectors / Hive
> Affects Versions: 1.16.0
> Reporter: luoyuxia
> Priority: Major
>
> in FLINK-26474, we try to fold constant, but it brings a issue that the
> folded constant like `Double.NAN` and no-primitive type can't be convert
> into calcite literal in method `HiveParserRexNodeConverter#convertConstant`.
> For example, the following code will throw an exception
> "org.apache.hadoop.hive.ql.parse.SemanticException: NaN" in method
> `HiveParserRexNodeConverter#convertConstant`
> {code:java}
> // hive dialect
> SELECT asin(2); {code}
> To fix it, we need to figure out such case and then not to fold constant .
>
> in FLINK-27017, we use Hive's `GenericUDFOPDivide` to do divide for better
> compatibility, but it bring a issue that when use a int/long literal as
> divisor, the result type passed and inferred type may not match.
> The fix it, we need to make the result type match the inferred type.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)