[
https://issues.apache.org/jira/browse/FLINK-27629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jingsong Lee closed FLINK-27629.
--------------------------------
Fix Version/s: table-store-0.2.0
Assignee: Caizhi Weng
Resolution: Fixed
master: c88da6c39877f30bb4a7b4dc1ca5710f93a188eb
> Table Store throws NullPointerException when pushing down NotEqual predicate
> to a column consisting of nulls
> ------------------------------------------------------------------------------------------------------------
>
> Key: FLINK-27629
> URL: https://issues.apache.org/jira/browse/FLINK-27629
> Project: Flink
> Issue Type: Bug
> Components: Table Store
> Affects Versions: table-store-0.2.0
> Reporter: Caizhi Weng
> Assignee: Caizhi Weng
> Priority: Major
> Labels: pull-request-available
> Fix For: table-store-0.2.0
>
>
> Run the following Flink SQL to reproduce this issue.
> {code}
> Flink SQL> create table S ( a double ) with ( 'path' = '/tmp/store' );
> [INFO] Execute statement succeed.
> Flink SQL> insert into S values (cast(null as double)), (cast(null as
> double));
> [INFO] Submitting SQL update statement to the cluster...
> [INFO] SQL update statement has been successfully submitted to the cluster:
> Job ID: edb2ce383c00b2f635759dee70add73d
> Flink SQL> select * from S where a <> 1;
> [ERROR] Could not execute SQL statement. Reason:
> java.util.concurrent.ExecutionException: java.lang.NullPointerException
> {code}
> The exception stack is
> {code}
> Caused by: java.lang.NullPointerException
> at java.lang.Double.compareTo(Double.java:978) ~[?:1.8.0_151]
> at java.lang.Double.compareTo(Double.java:49) ~[?:1.8.0_151]
> at
> org.apache.flink.table.store.file.predicate.Literal.compareValueTo(Literal.java:60)
> ~[flink-table-store-dist-0.2-SNAPSHOT.jar:0.2-SNAPSHOT]
> at
> org.apache.flink.table.store.file.predicate.NotEqual.test(NotEqual.java:50)
> ~[flink-table-store-dist-0.2-SNAPSHOT.jar:0.2-SNAPSHOT]
> at
> org.apache.flink.table.store.file.operation.FileStoreScanImpl.filterManifestEntry(FileStoreScanImpl.java:287)
> ~[flink-table-store-dist-0.2-SNAPSHOT.jar:0.2-SNAPSHOT]
> at
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
> ~[?:1.8.0_151]
> at
> java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
> ~[?:1.8.0_151]
> at
> java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
> ~[?:1.8.0_151]
> at
> java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
> ~[?:1.8.0_151]
> at
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
> ~[?:1.8.0_151]
> at
> java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
> ~[?:1.8.0_151]
> at
> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> ~[?:1.8.0_151]
> at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> ~[?:1.8.0_151]
> at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747)
> ~[?:1.8.0_151]
> at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721)
> ~[?:1.8.0_151]
> at java.util.stream.AbstractTask.compute(AbstractTask.java:316)
> ~[?:1.8.0_151]
> at
> java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
> ~[?:1.8.0_151]
> at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> ~[?:1.8.0_151]
> at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
> ~[?:1.8.0_151]
> at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
> ~[?:1.8.0_151]
> at
> java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:714)
> ~[?:1.8.0_151]
> at
> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
> ~[?:1.8.0_151]
> at
> java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> ~[?:1.8.0_151]
> at
> org.apache.flink.table.store.file.operation.FileStoreScanImpl.lambda$plan$3(FileStoreScanImpl.java:221)
> ~[flink-table-store-dist-0.2-SNAPSHOT.jar:0.2-SNAPSHOT]
> at
> java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
> ~[?:1.8.0_151]
> at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> ~[?:1.8.0_151]
> at
> java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
> ~[?:1.8.0_151]
> at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
> ~[?:1.8.0_151]
> at
> java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
> ~[?:1.8.0_151]
> {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)