This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch release-1.10
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-1.10 by this push:
new 47d6781 [FLINK-16771][table-planner-blink] NPE when filtering by
decimal column
47d6781 is described below
commit 47d6781de53a0cc237f457ae4f9c74c25ea590c6
Author: Rui Li <[email protected]>
AuthorDate: Fri Apr 17 12:09:52 2020 +0800
[FLINK-16771][table-planner-blink] NPE when filtering by decimal column
This closes #11736
---
.../org/apache/flink/table/planner/codegen/GenerateUtils.scala | 6 +++++-
.../apache/flink/table/planner/expressions/DecimalTypeTest.scala | 5 +++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git
a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/GenerateUtils.scala
b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/GenerateUtils.scala
index fb32f58..04606bc 100644
---
a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/GenerateUtils.scala
+++
b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/codegen/GenerateUtils.scala
@@ -346,7 +346,11 @@ object GenerateUtils {
ctx.addReusableMember(fieldDecimal)
val value = Decimal.fromBigDecimal(
literalValue.asInstanceOf[JBigDecimal], precision, scale)
- generateNonNullLiteral(literalType, fieldTerm, value)
+ if (value == null) {
+ generateNullLiteral(literalType, ctx.nullCheck)
+ } else {
+ generateNonNullLiteral(literalType, fieldTerm, value)
+ }
case VARCHAR | CHAR =>
val escapedValue =
StringEscapeUtils.ESCAPE_JAVA.translate(literalValue.toString)
diff --git
a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/DecimalTypeTest.scala
b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/DecimalTypeTest.scala
index 84b94b6..6f334f0 100644
---
a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/DecimalTypeTest.scala
+++
b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/expressions/DecimalTypeTest.scala
@@ -1221,6 +1221,11 @@ class DecimalTypeTest extends ExpressionTestBase {
"true")
}
+ @Test
+ def testCompareDecimalColWithNull(): Unit = {
+ testSqlApi("f35>cast(1234567890123.123 as decimal(20,16))", "null")
+ }
+
//
----------------------------------------------------------------------------------------------
override def testData: Row = {