This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 57b9194a459 Optimizing the Binary comparison method in 
CompareBinaryColumnTransformer
57b9194a459 is described below

commit 57b9194a4591b9f3a9a4b1ab48e8aab42ceb0dd5
Author: Liao Lanyu <[email protected]>
AuthorDate: Wed Nov 29 02:00:44 2023 +0800

    Optimizing the Binary comparison method in CompareBinaryColumnTransformer
---
 .../fragment/FragmentInstanceContext.java          |  1 +
 .../binary/CompareBinaryColumnTransformer.java     | 33 ++++++++---------
 .../column/ternary/BetweenColumnTransformer.java   | 21 +++--------
 .../binary/CompareEqualToTransformer.java          |  5 +--
 .../binary/CompareGreaterEqualTransformer.java     |  5 +--
 .../binary/CompareGreaterThanTransformer.java      |  5 +--
 .../binary/CompareLessEqualTransformer.java        |  5 +--
 .../binary/CompareLessThanTransformer.java         |  5 +--
 .../binary/CompareNonEqualTransformer.java         |  5 +--
 .../transformer/ternary/BetweenTransformer.java    | 15 ++------
 .../transformation/dag/util/TransformUtils.java    | 41 +++++++---------------
 11 files changed, 40 insertions(+), 101 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
index dcba7d71648..195986aae3f 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
@@ -417,6 +417,7 @@ public class FragmentInstanceContext extends QueryContext {
         allDriversClosed.await();
         break;
       } catch (InterruptedException e) {
+        Thread.currentThread().interrupt();
         LOGGER.warn(
             "Interrupted when await on allDriversClosed, FragmentInstance Id 
is {}", this.getId());
       }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareBinaryColumnTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareBinaryColumnTransformer.java
index 917ff174647..15c481c5cea 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareBinaryColumnTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/binary/CompareBinaryColumnTransformer.java
@@ -21,9 +21,9 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.column.binary;
 
 import 
org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.read.common.block.column.Column;
 import org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder;
+import org.apache.iotdb.tsfile.read.common.block.column.RunLengthEncodedColumn;
 import org.apache.iotdb.tsfile.read.common.type.Type;
 import org.apache.iotdb.tsfile.read.common.type.TypeEnum;
 
@@ -37,33 +37,34 @@ public abstract class CompareBinaryColumnTransformer 
extends BinaryColumnTransfo
   @Override
   protected void doTransform(
       Column leftColumn, Column rightColumn, ColumnBuilder builder, int 
positionCount) {
+    // if either column is all null, append nullCount. For now, a 
RunLengthEncodeColumn with
+    // mayHaveNull == true is all null
+    if ((leftColumn.mayHaveNull() && leftColumn instanceof 
RunLengthEncodedColumn)
+        || (rightColumn.mayHaveNull() && rightColumn instanceof 
RunLengthEncodedColumn)) {
+      builder.appendNull(positionCount);
+      return;
+    }
     for (int i = 0; i < positionCount; i++) {
       if (!leftColumn.isNull(i) && !rightColumn.isNull(i)) {
         boolean flag = false;
         // compare binary type
-        if (leftTransformer.getType().getTypeEnum().equals(TypeEnum.BINARY)) {
+        if (TypeEnum.BINARY.equals(leftTransformer.getType().getTypeEnum())) {
           flag =
               transform(
                   TransformUtils.compare(
-                      leftTransformer
-                          .getType()
-                          .getBinary(leftColumn, i)
-                          .getStringValue(TSFileConfig.STRING_CHARSET),
-                      rightTransformer
-                          .getType()
-                          .getBinary(rightColumn, i)
-                          .getStringValue(TSFileConfig.STRING_CHARSET)));
-        } else if 
(leftTransformer.getType().getTypeEnum().equals(TypeEnum.BOOLEAN)) {
+                      leftTransformer.getType().getBinary(leftColumn, i),
+                      rightTransformer.getType().getBinary(rightColumn, i)));
+        } else if 
(TypeEnum.BOOLEAN.equals(leftTransformer.getType().getTypeEnum())) {
           flag =
               transform(
                   Boolean.compare(
                       leftTransformer.getType().getBoolean(leftColumn, i),
                       rightTransformer.getType().getBoolean(rightColumn, i)));
         } else {
-          double left = leftTransformer.getType().getDouble(leftColumn, i);
-          double right = rightTransformer.getType().getDouble(rightColumn, i);
+          final double left = leftTransformer.getType().getDouble(leftColumn, 
i);
+          final double right = 
rightTransformer.getType().getDouble(rightColumn, i);
           if (!Double.isNaN(left) && !Double.isNaN(right)) {
-            flag = transform(compare(left, right));
+            flag = transform(Double.compare(left, right));
           }
         }
         returnType.writeBoolean(builder, flag);
@@ -83,10 +84,6 @@ public abstract class CompareBinaryColumnTransformer extends 
BinaryColumnTransfo
     throw new UnsupportedOperationException("Unsupported Type");
   }
 
-  protected int compare(double d1, double d2) {
-    return Double.compare(d1, d2);
-  }
-
   /**
    * Transform int value of flag to corresponding boolean value.
    *
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/BetweenColumnTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/BetweenColumnTransformer.java
index 1d240b27766..fc30f03a584 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/BetweenColumnTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/column/ternary/BetweenColumnTransformer.java
@@ -21,7 +21,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.column.ternary;
 
 import 
org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.read.common.block.column.Column;
 import org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilder;
 import org.apache.iotdb.tsfile.read.common.type.BinaryType;
@@ -53,24 +52,12 @@ public class BetweenColumnTransformer extends 
CompareTernaryColumnTransformer {
         if (firstColumnTransformer.getType() instanceof BinaryType) {
           flag =
               ((TransformUtils.compare(
-                              firstColumnTransformer
-                                  .getType()
-                                  .getBinary(firstColumn, i)
-                                  .getStringValue(TSFileConfig.STRING_CHARSET),
-                              secondColumnTransformer
-                                  .getType()
-                                  .getBinary(secondColumn, i)
-                                  .getStringValue(TSFileConfig.STRING_CHARSET))
+                              
firstColumnTransformer.getType().getBinary(firstColumn, i),
+                              
secondColumnTransformer.getType().getBinary(secondColumn, i))
                           >= 0)
                       && (TransformUtils.compare(
-                              firstColumnTransformer
-                                  .getType()
-                                  .getBinary(firstColumn, i)
-                                  .getStringValue(TSFileConfig.STRING_CHARSET),
-                              thirdColumnTransformer
-                                  .getType()
-                                  .getBinary(thirdColumn, i)
-                                  .getStringValue(TSFileConfig.STRING_CHARSET))
+                              
firstColumnTransformer.getType().getBinary(firstColumn, i),
+                              
thirdColumnTransformer.getType().getBinary(thirdColumn, i))
                           <= 0))
                   ^ isNotBetween;
         } else {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java
index 244b83d68b0..cc1914e10b0 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareEqualToTransformer.java
@@ -21,7 +21,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.queryengine.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 
 public class CompareEqualToTransformer extends CompareBinaryTransformer {
 
@@ -42,9 +41,7 @@ public class CompareEqualToTransformer extends 
CompareBinaryTransformer {
   @Override
   protected Evaluator constructTextEvaluator() {
     return () ->
-        TransformUtils.compare(
-                
leftPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET),
-                
rightPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET))
+        TransformUtils.compare(leftPointReader.currentBinary(), 
rightPointReader.currentBinary())
             == 0;
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java
index 1fa8a78f437..223a08132c6 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java
@@ -21,7 +21,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.queryengine.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 
 public class CompareGreaterEqualTransformer extends CompareBinaryTransformer {
 
@@ -42,9 +41,7 @@ public class CompareGreaterEqualTransformer extends 
CompareBinaryTransformer {
   @Override
   protected Evaluator constructTextEvaluator() {
     return () ->
-        TransformUtils.compare(
-                
leftPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET),
-                
rightPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET))
+        TransformUtils.compare(leftPointReader.currentBinary(), 
rightPointReader.currentBinary())
             >= 0;
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java
index 9932a472ea1..3eeadd8dff9 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java
@@ -21,7 +21,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.queryengine.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 
 public class CompareGreaterThanTransformer extends CompareBinaryTransformer {
 
@@ -42,9 +41,7 @@ public class CompareGreaterThanTransformer extends 
CompareBinaryTransformer {
   @Override
   protected Evaluator constructTextEvaluator() {
     return () ->
-        TransformUtils.compare(
-                
leftPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET),
-                
rightPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET))
+        TransformUtils.compare(leftPointReader.currentBinary(), 
rightPointReader.currentBinary())
             > 0;
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java
index 97074a49a17..07b0856b852 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessEqualTransformer.java
@@ -21,7 +21,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.queryengine.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 
 public class CompareLessEqualTransformer extends CompareBinaryTransformer {
 
@@ -42,9 +41,7 @@ public class CompareLessEqualTransformer extends 
CompareBinaryTransformer {
   @Override
   protected Evaluator constructTextEvaluator() {
     return () ->
-        TransformUtils.compare(
-                
leftPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET),
-                
rightPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET))
+        TransformUtils.compare(leftPointReader.currentBinary(), 
rightPointReader.currentBinary())
             <= 0;
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java
index a71b4a932e4..b191d8f23ca 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareLessThanTransformer.java
@@ -21,7 +21,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.queryengine.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 
 public class CompareLessThanTransformer extends CompareBinaryTransformer {
 
@@ -42,9 +41,7 @@ public class CompareLessThanTransformer extends 
CompareBinaryTransformer {
   @Override
   protected Evaluator constructTextEvaluator() {
     return () ->
-        TransformUtils.compare(
-                
leftPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET),
-                
rightPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET))
+        TransformUtils.compare(leftPointReader.currentBinary(), 
rightPointReader.currentBinary())
             < 0;
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java
index 797240d0938..02229b7ed45 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/binary/CompareNonEqualTransformer.java
@@ -21,7 +21,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.queryengine.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 
 public class CompareNonEqualTransformer extends CompareBinaryTransformer {
@@ -44,9 +43,7 @@ public class CompareNonEqualTransformer extends 
CompareBinaryTransformer {
   @Override
   protected Evaluator constructTextEvaluator() {
     return () ->
-        TransformUtils.compare(
-                
leftPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET),
-                
rightPointReader.currentBinary().getStringValue(TSFileConfig.STRING_CHARSET))
+        TransformUtils.compare(leftPointReader.currentBinary(), 
rightPointReader.currentBinary())
             != 0;
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java
index 6941bf24f0b..4329a0b1f9a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/transformer/ternary/BetweenTransformer.java
@@ -23,7 +23,6 @@ package 
org.apache.iotdb.db.queryengine.transformation.dag.transformer.ternary;
 
 import org.apache.iotdb.db.queryengine.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.queryengine.transformation.dag.util.TransformUtils;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 
 public class BetweenTransformer extends CompareTernaryTransformer {
 
@@ -57,20 +56,10 @@ public class BetweenTransformer extends 
CompareTernaryTransformer {
   protected Evaluator constructTextEvaluator() {
     return () ->
         ((TransformUtils.compare(
-                        firstPointReader
-                            .currentBinary()
-                            .getStringValue(TSFileConfig.STRING_CHARSET),
-                        secondPointReader
-                            .currentBinary()
-                            .getStringValue(TSFileConfig.STRING_CHARSET))
+                        firstPointReader.currentBinary(), 
secondPointReader.currentBinary())
                     >= 0)
                 && (TransformUtils.compare(
-                        firstPointReader
-                            .currentBinary()
-                            .getStringValue(TSFileConfig.STRING_CHARSET),
-                        thirdPointReader
-                            .currentBinary()
-                            .getStringValue(TSFileConfig.STRING_CHARSET))
+                        firstPointReader.currentBinary(), 
thirdPointReader.currentBinary())
                     <= 0))
             ^ isNotBetween;
   }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java
index 6eedeb7ec1c..cf6c1f5e064 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/util/TransformUtils.java
@@ -35,8 +35,6 @@ import 
org.apache.iotdb.tsfile.read.common.block.column.IntColumn;
 import org.apache.iotdb.tsfile.read.common.block.column.LongColumn;
 import org.apache.iotdb.tsfile.utils.Binary;
 
-import org.apache.commons.lang3.Validate;
-
 import java.io.IOException;
 import java.util.Objects;
 import java.util.Optional;
@@ -47,28 +45,16 @@ public class TransformUtils {
     throw new IllegalStateException("TransformUtils should not be 
instantiated.");
   }
 
-  public static int compare(CharSequence cs1, CharSequence cs2) {
-    if (Objects.requireNonNull(cs1) == Objects.requireNonNull(cs2)) {
+  public static int compare(Binary first, Binary second) {
+    if (Objects.requireNonNull(first) == Objects.requireNonNull(second)) {
       return 0;
     }
 
-    if (cs1.getClass() == cs2.getClass() && cs1 instanceof Comparable) {
-      return ((Comparable<Object>) cs1).compareTo(cs2);
-    }
-
-    for (int i = 0, len = Math.min(cs1.length(), cs2.length()); i < len; i++) {
-      char a = cs1.charAt(i);
-      char b = cs2.charAt(i);
-      if (a != b) {
-        return a - b;
-      }
-    }
-
-    return cs1.length() - cs2.length();
+    return first.compareTo(second);
   }
 
   public static Column transformConstantOperandToColumn(ConstantOperand 
constantOperand) {
-    Validate.notNull(constantOperand);
+    Objects.requireNonNull(constantOperand);
 
     try {
       Object value =
@@ -80,21 +66,17 @@ public class TransformUtils {
 
       switch (constantOperand.getDataType()) {
         case INT32:
-          return new IntColumn(1, Optional.of(new boolean[] {false}), new 
int[] {(int) value});
+          return new IntColumn(1, Optional.empty(), new int[] {(int) value});
         case INT64:
-          return new LongColumn(1, Optional.of(new boolean[] {false}), new 
long[] {(long) value});
+          return new LongColumn(1, Optional.empty(), new long[] {(long) 
value});
         case FLOAT:
-          return new FloatColumn(
-              1, Optional.of(new boolean[] {false}), new float[] {(float) 
value});
+          return new FloatColumn(1, Optional.empty(), new float[] {(float) 
value});
         case DOUBLE:
-          return new DoubleColumn(
-              1, Optional.of(new boolean[] {false}), new double[] {(double) 
value});
+          return new DoubleColumn(1, Optional.empty(), new double[] {(double) 
value});
         case TEXT:
-          return new BinaryColumn(
-              1, Optional.of(new boolean[] {false}), new Binary[] {(Binary) 
value});
+          return new BinaryColumn(1, Optional.empty(), new Binary[] {(Binary) 
value});
         case BOOLEAN:
-          return new BooleanColumn(
-              1, Optional.of(new boolean[] {false}), new boolean[] {(boolean) 
value});
+          return new BooleanColumn(1, Optional.empty(), new boolean[] 
{(boolean) value});
         default:
           throw new UnSupportedDataTypeException(
               "Unsupported type: " + constantOperand.getDataType());
@@ -173,7 +155,8 @@ public class TransformUtils {
         }
         break;
       default:
-        throw new RuntimeException("The data type of the state window strategy 
is not valid.");
+        throw new UnsupportedOperationException(
+            "The data type of the state window strategy is not valid.");
     }
     return res;
   }

Reply via email to