[GRIFFIN-294] bugfix for completness enumeration wrong sql

if there is only 'hive_none' in enumeration values list, it will generate wrong sql. Update code to fix this bug

Author: Zhao Li <mrlzbebop@gmail.com>
Author: Zhao <LittleZhao@users.noreply.github.com>

Closes #545 from LittleZhao/griffin-294.
diff --git a/measure/src/main/scala/org/apache/griffin/measure/step/builder/dsl/transform/CompletenessExpr2DQSteps.scala b/measure/src/main/scala/org/apache/griffin/measure/step/builder/dsl/transform/CompletenessExpr2DQSteps.scala
index 4d3344e..46def8f 100644
--- a/measure/src/main/scala/org/apache/griffin/measure/step/builder/dsl/transform/CompletenessExpr2DQSteps.scala
+++ b/measure/src/main/scala/org/apache/griffin/measure/step/builder/dsl/transform/CompletenessExpr2DQSteps.scala
@@ -18,6 +18,8 @@
 */
 package org.apache.griffin.measure.step.builder.dsl.transform
 
+import org.apache.commons.lang.StringUtils
+
 import org.apache.griffin.measure.configuration.dqdefinition.{RuleErrorConfParam, RuleParam}
 import org.apache.griffin.measure.configuration.enums._
 import org.apache.griffin.measure.context.DQContext
@@ -200,19 +202,29 @@
       return result
     } else if ("enumeration".equalsIgnoreCase(errorType.get)) {
       val values: Seq[String] = errorConf.getValues
-      // hive_none means None
-      var hasNone: Boolean = false
+      var inResult = ""
+      var nullResult = ""
       if (values.contains("hive_none")) {
-        hasNone = true
+        // hive_none means NULL
+        nullResult = s"(`${columnName}` IS NULL)"
       }
 
       val valueWithQuote: String = values.filter(value => !"hive_none".equals(value))
         .map(value => s"'${value}'").mkString(", ")
 
-      var result = s"(`${columnName}` IN (${valueWithQuote}))"
-      if (hasNone) {
-        result = s"((${result}) OR (`${columnName}` IS NULL))"
+      if (!StringUtils.isEmpty(valueWithQuote)) {
+        inResult = s"(`${columnName}` IN (${valueWithQuote}))"
       }
+
+      var result = ""
+      if (!StringUtils.isEmpty(inResult) && !StringUtils.isEmpty(nullResult)) {
+        result = s"(${inResult} OR ${nullResult})"
+      } else if (!StringUtils.isEmpty(inResult)) {
+        result = inResult
+      } else {
+        result = nullResult
+      }
+
       return result
     }
     throw new IllegalArgumentException("type in error.confs only supports regex and enumeration way")