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

Jason Darrell Lowe updated ORC-1482:
------------------------------------
    Attachment: part-00000-45af54ac-9306-447f-8d4f-cc2f1b1cf61f-c000.snappy.orc

> RecordReaderImpl.evaluatePredicateProto assumes floating point stats are 
> always present
> ---------------------------------------------------------------------------------------
>
>                 Key: ORC-1482
>                 URL: https://issues.apache.org/jira/browse/ORC-1482
>             Project: ORC
>          Issue Type: Bug
>    Affects Versions: 1.7.4
>            Reporter: Jason Darrell Lowe
>            Priority: Major
>         Attachments: 
> part-00000-45af54ac-9306-447f-8d4f-cc2f1b1cf61f-c000.snappy.orc
>
>
> ORC-629 added custom handling of predicate pushdown on doubles, but the code 
> that was added blindly assumes that double statistics were present in the 
> file which may not have been the case.  Here's the snippet of code in 
> question:
> {code:java}
>      } else if (category == TypeDescription.Category.DOUBLE ||
>         category == TypeDescription.Category.FLOAT) {
>       DoubleColumnStatistics dstas = (DoubleColumnStatistics) cs;
> {code}
>  
> Elsewhere in the code, there's a type check on the result of statistics 
> deserialization before casting, but here the type checks are missing.  It 
> appears this should be checking for DoubleColumnStatistics before assuming 
> the cast will succeed, and if the expected statistics type is not present 
> then the predicate should not be evaluated on that column.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to