Jason Darrell Lowe created ORC-1482:
---------------------------------------

             Summary: 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


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