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 = {

Reply via email to