GitHub user dilipbiswal opened a pull request:
https://github.com/apache/spark/pull/22315
[SPARK-25308][SQL] ArrayContains function may return a error in the code
generation phase.
## What changes were proposed in this pull request?
Invoking ArrayContains function with non nullable array type throws the
following error in the code generation phase. Below is the error snippet.
```SQL
Code generation of array_contains([1,2,3], 1) failed:
java.util.concurrent.ExecutionException:
org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 40,
Column 11: failed to compile: org.codehaus.commons.compiler.CompileException:
File 'generated.java', Line 40, Column 11: Expression "isNull_0" is not an
rvalue
java.util.concurrent.ExecutionException:
org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 40,
Column 11: failed to compile: org.codehaus.commons.compiler.CompileException:
File 'generated.java', Line 40, Column 11: Expression "isNull_0" is not an
rvalue
at
com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:306)
at
com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:293)
at
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
at
com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:135)
at
com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2410)
at
com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2380)
at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
at
org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$.compile(CodeGenerator.scala:1305)
```
## How was this patch tested?
Added test in CollectionExpressionSuite.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/dilipbiswal/spark SPARK-25308
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/spark/pull/22315.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #22315
----
commit 84b135c7176cd1affe3da449ede28adf182ae733
Author: Dilip Biswal <dbiswal@...>
Date: 2018-08-31T02:59:30Z
[SPARK-25308] ArrayContains function may return a error in the code
generation phase.
----
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]