[ 
https://issues.apache.org/jira/browse/FLINK-8242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16340909#comment-16340909
 ] 

ASF GitHub Bot commented on FLINK-8242:
---------------------------------------

Github user fhueske commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5345#discussion_r164084612
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/util/RexProgramExtractor.scala
 ---
    @@ -214,6 +213,10 @@ class RexNodeToExpressionConverter(
             // convert to BigDecimal
             literal.getValueAs(classOf[java.math.BigDecimal])
     
    +      case _ if literal.getValue.isInstanceOf[NlsString] =>
    --- End diff --
    
    Yes, you are right. This case should not have happened but was reported by 
a user.
    
    Since the Rex translation is only used for predicate push-down, we could 
play safe and drop the catch-all case at the end and write a debug statement 
that includes the value and type of the unsupported literal. Most TableSources 
with predicate push-down support will only support simple predicates anyway.


> ClassCastException in OrcTableSource.toOrcPredicate
> ---------------------------------------------------
>
>                 Key: FLINK-8242
>                 URL: https://issues.apache.org/jira/browse/FLINK-8242
>             Project: Flink
>          Issue Type: Bug
>          Components: Batch Connectors and Input/Output Formats
>    Affects Versions: 1.4.0
>            Reporter: Fabian Hueske
>            Assignee: Fabian Hueske
>            Priority: Critical
>             Fix For: 1.5.0, 1.4.1
>
>
> The {{OrcTableSource}} tries to cast all predicate literals to 
> {{Serializable}} in its {{toOrcPredicate()}} method. This fails with a 
> {{ClassCastException}} if a literal is not serializable.
> Instead of failing, we should ignore the predicate and log a WARN message.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to