You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@orc.apache.org by "Zoltán Rátkai (Jira)" <ji...@apache.org> on 2023/04/25 15:59:00 UTC

[jira] [Updated] (ORC-1413) ORC row level filter throws Exception

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

Zoltán Rátkai updated ORC-1413:
-------------------------------
    Description: 
The following throws exception in Hive with ORC 1.8.3. 

CREATE TABLE IF NOT EXISTS mytableorc183(text String) STORED AS orc  TBLPROPERTIES('transactional'='true', 'orc.sarg.to.filter'='true');
insert into mytableorc183 values("test1");
select * from mytableorc183 where text='test1';

select throws this:

 

ERROR : Failed with exception java.io.IOException:java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.LongColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector
java.io.IOException: java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.LongColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector
    at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:624)
    at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:531)
    at org.apache.hadoop.hive.ql.exec.FetchTask.executeInner(FetchTask.java:194)
    at org.apache.hadoop.hive.ql.exec.FetchTask.execute(FetchTask.java:95)
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:212)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:154)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:149)
    at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:185)
    at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:236)
    at org.apache.hive.service.cli.operation.SQLOperation.access$500(SQLOperation.java:90)
    at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:340)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1878)
    at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:360)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.LongColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector
    at org.apache.orc.impl.filter.leaf.StringFilters$StringEquals.allow(StringFilters.java:64)
    at org.apache.orc.impl.filter.LeafFilter.allowWithNegation(LeafFilter.java:80)
    at org.apache.orc.impl.filter.LeafFilter.filter(LeafFilter.java:60)
    at org.apache.orc.impl.filter.BatchFilterFactory$BatchFilterImpl.accept(BatchFilterFactory.java:76)
    at org.apache.orc.impl.filter.BatchFilterFactory$BatchFilterImpl.accept(BatchFilterFactory.java:58)
    at org.apache.orc.impl.reader.tree.StructBatchReader.nextBatch(StructBatchReader.java:88)
    at org.apache.orc.impl.RecordReaderImpl.nextBatch(RecordReaderImpl.java:1426)
    at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.ensureBatch(RecordReaderImpl.java:88)
    at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.hasNext(RecordReaderImpl.java:104)
    at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger$ReaderPairAcid.next(OrcRawRecordMerger.java:292)
    at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger$ReaderPairAcid.<init>(OrcRawRecordMerger.java:260)
    at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger.<init>(OrcRawRecordMerger.java:1119)
    at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getReader(OrcInputFormat.java:2126)
    at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getRecordReader(OrcInputFormat.java:2021)
    at org.apache.hadoop.hive.ql.exec.FetchOperator$FetchInputFormatSplit.getRecordReader(FetchOperator.java:771)
    at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:335)
    at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:562)

  was:
The following throws exception in Hive with ORC 1.8.3. 


CREATE TABLE IF NOT EXISTS mytableorc183(text String) STORED AS orc  TBLPROPERTIES('transactional'='true', 'orc.sarg.to.filter'='true');
insert into mytableorc183 values("test1");
select * from mytableorc183 where text='test1';

select throws this:
java.io.IOException: java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.LongColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector
    at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:624)
    at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:531)
    at org.apache.hadoop.hive.ql.exec.FetchTask.executeInner(FetchTask.java:194)
    at org.apache.hadoop.hive.ql.exec.FetchTask.execute(FetchTask.java:95)
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:212)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:154)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:149)
    at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:185)


> ORC row level filter throws Exception
> -------------------------------------
>
>                 Key: ORC-1413
>                 URL: https://issues.apache.org/jira/browse/ORC-1413
>             Project: ORC
>          Issue Type: Bug
>            Reporter: Zoltán Rátkai
>            Assignee: Zoltán Rátkai
>            Priority: Major
>
> The following throws exception in Hive with ORC 1.8.3. 
> CREATE TABLE IF NOT EXISTS mytableorc183(text String) STORED AS orc  TBLPROPERTIES('transactional'='true', 'orc.sarg.to.filter'='true');
> insert into mytableorc183 values("test1");
> select * from mytableorc183 where text='test1';
> select throws this:
>  
> ERROR : Failed with exception java.io.IOException:java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.LongColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector
> java.io.IOException: java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.LongColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector
>     at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:624)
>     at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:531)
>     at org.apache.hadoop.hive.ql.exec.FetchTask.executeInner(FetchTask.java:194)
>     at org.apache.hadoop.hive.ql.exec.FetchTask.execute(FetchTask.java:95)
>     at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:212)
>     at org.apache.hadoop.hive.ql.Driver.run(Driver.java:154)
>     at org.apache.hadoop.hive.ql.Driver.run(Driver.java:149)
>     at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:185)
>     at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:236)
>     at org.apache.hive.service.cli.operation.SQLOperation.access$500(SQLOperation.java:90)
>     at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:340)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at javax.security.auth.Subject.doAs(Subject.java:422)
>     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1878)
>     at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:360)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.LongColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector
>     at org.apache.orc.impl.filter.leaf.StringFilters$StringEquals.allow(StringFilters.java:64)
>     at org.apache.orc.impl.filter.LeafFilter.allowWithNegation(LeafFilter.java:80)
>     at org.apache.orc.impl.filter.LeafFilter.filter(LeafFilter.java:60)
>     at org.apache.orc.impl.filter.BatchFilterFactory$BatchFilterImpl.accept(BatchFilterFactory.java:76)
>     at org.apache.orc.impl.filter.BatchFilterFactory$BatchFilterImpl.accept(BatchFilterFactory.java:58)
>     at org.apache.orc.impl.reader.tree.StructBatchReader.nextBatch(StructBatchReader.java:88)
>     at org.apache.orc.impl.RecordReaderImpl.nextBatch(RecordReaderImpl.java:1426)
>     at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.ensureBatch(RecordReaderImpl.java:88)
>     at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.hasNext(RecordReaderImpl.java:104)
>     at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger$ReaderPairAcid.next(OrcRawRecordMerger.java:292)
>     at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger$ReaderPairAcid.<init>(OrcRawRecordMerger.java:260)
>     at org.apache.hadoop.hive.ql.io.orc.OrcRawRecordMerger.<init>(OrcRawRecordMerger.java:1119)
>     at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getReader(OrcInputFormat.java:2126)
>     at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getRecordReader(OrcInputFormat.java:2021)
>     at org.apache.hadoop.hive.ql.exec.FetchOperator$FetchInputFormatSplit.getRecordReader(FetchOperator.java:771)
>     at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:335)
>     at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:562)



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