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

hui pushed a commit to branch lmh/fixSonar
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit fa03b7dc40bf88bac4d52e06d256ca277ecb8e1a
Author: Minghui Liu <[email protected]>
AuthorDate: Tue Jun 20 11:16:07 2023 +0800

    fix sonar (expression)
---
 .../iotdb/db/mpp/plan/expression/Expression.java   |  3 +-
 .../db/mpp/plan/expression/ExpressionFactory.java  |  4 ++
 .../db/mpp/plan/expression/ExpressionType.java     |  8 +--
 .../plan/expression/multi/FunctionExpression.java  |  6 +-
 .../BuiltInScalarFunctionHelperFactory.java        |  5 ++
 .../multi/builtin/helper/CastFunctionHelper.java   | 22 +++---
 .../BindTypeForTimeSeriesOperandVisitor.java       |  3 +-
 .../visitor/ColumnTransformerVisitor.java          |  9 ++-
 .../visitor/CompleteMeasurementSchemaVisitor.java  | 17 ++---
 .../visitor/IntermediateLayerVisitor.java          |  3 +-
 .../visitor/TransformToViewExpressionVisitor.java  | 81 +++++++++-------------
 .../cartesian/BindSchemaForExpressionVisitor.java  | 19 +++--
 12 files changed, 88 insertions(+), 92 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/Expression.java 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/Expression.java
index 1369e16fcd9..431c412e914 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/Expression.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/Expression.java
@@ -65,6 +65,7 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.NoSuchElementException;
 import java.util.Objects;
 
 /** A skeleton class for expression */
@@ -402,7 +403,7 @@ public abstract class Expression extends StatementNode {
     @Override
     public Expression next() {
       if (!hasNext()) {
-        return null;
+        throw new NoSuchElementException();
       }
       Expression current = queue.pop();
       if (current != null) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionFactory.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionFactory.java
index dfd2f054445..30474bf5d9d 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionFactory.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionFactory.java
@@ -41,6 +41,10 @@ import java.util.LinkedHashMap;
 
 public class ExpressionFactory {
 
+  private ExpressionFactory() {
+    // forbidden construction
+  }
+
   public static PartialPath path(String pathStr) throws IllegalPathException {
     return new PartialPath(pathStr);
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionType.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionType.java
index c49a674fff7..1d37bab2ea9 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionType.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionType.java
@@ -62,16 +62,16 @@ public enum ExpressionType {
   WHEN_THEN((short) 22, (short) 1000), // priority not sure
   ;
 
-  private final short expressionType;
+  private final short type;
   private final short priority;
 
-  ExpressionType(short expressionType, short priority) {
-    this.expressionType = expressionType;
+  ExpressionType(short type, short priority) {
+    this.type = type;
     this.priority = priority;
   }
 
   public short getExpressionTypeInShortEnum() {
-    return expressionType;
+    return type;
   }
 
   public short getPriority() {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/FunctionExpression.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/FunctionExpression.java
index daa8aad6b9c..75c5cbc104c 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/FunctionExpression.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/FunctionExpression.java
@@ -100,10 +100,10 @@ public class FunctionExpression extends Expression {
   }
 
   private void initializeFunctionType() {
-    final String functionName = this.functionName.toLowerCase();
-    if 
(BuiltinAggregationFunction.getNativeFunctionNames().contains(functionName)) {
+    final String lowerCaseFunctionName = this.functionName.toLowerCase();
+    if 
(BuiltinAggregationFunction.getNativeFunctionNames().contains(lowerCaseFunctionName))
 {
       functionType = FunctionType.AGGREGATION_FUNCTION;
-    } else if 
(BuiltinScalarFunction.getNativeFunctionNames().contains(functionName)) {
+    } else if 
(BuiltinScalarFunction.getNativeFunctionNames().contains(lowerCaseFunctionName))
 {
       functionType = FunctionType.BUILT_IN_SCALAR_FUNCTION;
     } else {
       functionType = FunctionType.UDF;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/BuiltInScalarFunctionHelperFactory.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/BuiltInScalarFunctionHelperFactory.java
index 4726c88a2c3..acef8984307 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/BuiltInScalarFunctionHelperFactory.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/BuiltInScalarFunctionHelperFactory.java
@@ -26,6 +26,11 @@ import 
org.apache.iotdb.db.mpp.plan.expression.multi.builtin.helper.RoundFunctio
 import 
org.apache.iotdb.db.mpp.plan.expression.multi.builtin.helper.SubStringFunctionHelper;
 
 public class BuiltInScalarFunctionHelperFactory {
+
+  private BuiltInScalarFunctionHelperFactory() {
+    // forbidden instantiation
+  }
+
   public static BuiltInScalarFunctionHelper createHelper(String functionName) {
     functionName = functionName.toUpperCase();
     switch (functionName) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/helper/CastFunctionHelper.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/helper/CastFunctionHelper.java
index ff6a5e85db0..316fbc8e2ad 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/helper/CastFunctionHelper.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/builtin/helper/CastFunctionHelper.java
@@ -37,7 +37,9 @@ import static 
org.apache.iotdb.db.constant.SqlConstant.CAST_TYPE;
 public class CastFunctionHelper implements BuiltInScalarFunctionHelper {
   @Override
   public void checkBuiltInScalarFunctionInputDataType(TSDataType tsDataType)
-      throws SemanticException {}
+      throws SemanticException {
+    // needn't check
+  }
 
   @Override
   public TSDataType getBuiltInScalarFunctionReturnType(FunctionExpression 
functionExpression) {
@@ -73,7 +75,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
 
   public static int castLongToInt(long value) {
     if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("long value %d is out of range of integer value.", 
value));
     }
     return (int) value;
@@ -81,7 +83,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
 
   public static int castFloatToInt(float value) {
     if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("Float value %f is out of range of integer value.", 
value));
     }
     return Math.round(value);
@@ -89,7 +91,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
 
   public static long castFloatToLong(float value) {
     if (value > Long.MAX_VALUE || value < Long.MIN_VALUE) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("Float value %f is out of range of long value.", 
value));
     }
     return Math.round((double) value);
@@ -97,7 +99,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
 
   public static int castDoubleToInt(double value) {
     if (value > Integer.MAX_VALUE || value < Integer.MIN_VALUE) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("Double value %f is out of range of integer value.", 
value));
     }
     return Math.round((float) value);
@@ -105,7 +107,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
 
   public static long castDoubleToLong(double value) {
     if (value > Long.MAX_VALUE || value < Long.MIN_VALUE) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("Double value %f is out of range of long value.", 
value));
     }
     return Math.round(value);
@@ -113,7 +115,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
 
   public static float castDoubleToFloat(double value) {
     if (value > Float.MAX_VALUE || value < -Float.MAX_VALUE) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("Double value %f is out of range of float value.", 
value));
     }
     return (float) value;
@@ -122,7 +124,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
   public static float castTextToFloat(String value) {
     float f = Float.parseFloat(value);
     if (f == Float.POSITIVE_INFINITY || f == Float.NEGATIVE_INFINITY) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("Text value %s is out of range of float value.", 
value));
     }
     return f;
@@ -131,7 +133,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
   public static Double castTextToDouble(String value) {
     double d = Double.parseDouble(value);
     if (d == Double.POSITIVE_INFINITY || d == Double.NEGATIVE_INFINITY) {
-      throw new RuntimeException(
+      throw new SemanticException(
           String.format("Text value %s is out of range of double value.", 
value));
     }
     return d;
@@ -144,7 +146,7 @@ public class CastFunctionHelper implements 
BuiltInScalarFunctionHelper {
     } else if (lowerCase.equals("false")) {
       return false;
     } else {
-      throw new RuntimeException(String.format("Invalid text input for boolean 
type: %s", value));
+      throw new SemanticException(String.format("Invalid text input for 
boolean type: %s", value));
     }
   }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java
index 2b7d7c8f099..8f3e8bbdb41 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/BindTypeForTimeSeriesOperandVisitor.java
@@ -58,7 +58,8 @@ public class BindTypeForTimeSeriesOperandVisitor extends 
ReconstructVisitor<List
           return reconstructTimeSeriesOperand(
               predicate,
               new MeasurementPath(columnHeader.getColumnName(), 
columnHeader.getColumnType()));
-        } catch (IllegalPathException ignored) {
+        } catch (IllegalPathException e) {
+          throw new SemanticException(e);
         }
       }
     }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ColumnTransformerVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ColumnTransformerVisitor.java
index 61406fb57dc..ec8b1b4ee27 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ColumnTransformerVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ColumnTransformerVisitor.java
@@ -84,6 +84,8 @@ public class ColumnTransformerVisitor
     extends ExpressionVisitor<
         ColumnTransformer, 
ColumnTransformerVisitor.ColumnTransformerVisitorContext> {
 
+  private static final String UNSUPPORTED_EXPRESSION_TYPE = "Unsupported 
expression type: ";
+
   @Override
   public ColumnTransformer visitExpression(
       Expression expression, ColumnTransformerVisitorContext context) {
@@ -436,7 +438,7 @@ public class ColumnTransformerVisitor
             returnType, childColumnTransformer, 
regularExpression.getPattern());
       default:
         throw new UnsupportedOperationException(
-            "Unsupported Expression Type: " + expression.getExpressionType());
+            UNSUPPORTED_EXPRESSION_TYPE + expression.getExpressionType());
     }
   }
 
@@ -487,7 +489,7 @@ public class ColumnTransformerVisitor
             returnType, leftColumnTransformer, rightColumnTransformer);
       default:
         throw new UnsupportedOperationException(
-            "Unsupported Expression Type: " + expression.getExpressionType());
+            UNSUPPORTED_EXPRESSION_TYPE + expression.getExpressionType());
     }
   }
 
@@ -507,7 +509,7 @@ public class ColumnTransformerVisitor
           betweenExpression.isNotBetween());
     } else {
       throw new UnsupportedOperationException(
-          "Unsupported Expression Type: " + expression.getExpressionType());
+          UNSUPPORTED_EXPRESSION_TYPE + expression.getExpressionType());
     }
   }
 
@@ -537,6 +539,7 @@ public class ColumnTransformerVisitor
 
     int originSize;
 
+    @SuppressWarnings("squid:S107")
     public ColumnTransformerVisitorContext(
         UDTFContext udtfContext,
         Map<NodeRef<Expression>, TSDataType> expressionTypes,
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java
index d7bf53d9827..7712d37fbaf 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/CompleteMeasurementSchemaVisitor.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.db.mpp.plan.expression.visitor;
 import org.apache.iotdb.commons.path.MeasurementPath;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.metadata.view.BrokenViewException;
+import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.common.schematree.ISchemaTree;
 import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.expression.binary.BinaryExpression;
@@ -90,17 +91,13 @@ public class CompleteMeasurementSchemaVisitor extends 
ExpressionVisitor<Expressi
       TimeSeriesOperand timeSeriesOperand, ISchemaTree schemaTree) {
     PartialPath path = timeSeriesOperand.getPath();
     try {
-      try {
-        path.getMeasurementSchema();
-      } catch (Exception notAMeasurementPath) {
-        List<MeasurementPath> actualPaths = 
schemaTree.searchMeasurementPaths(path).left;
-        if (actualPaths.size() != 1) {
-          throw new BrokenViewException(path.getFullPath(), actualPaths);
-        }
-        return new TimeSeriesOperand(actualPaths.get(0));
+      path.getMeasurementSchema();
+    } catch (Exception notAMeasurementPath) {
+      List<MeasurementPath> actualPaths = 
schemaTree.searchMeasurementPaths(path).left;
+      if (actualPaths.size() != 1) {
+        throw new SemanticException(new 
BrokenViewException(path.getFullPath(), actualPaths));
       }
-    } catch (Exception e) {
-      throw new RuntimeException(e);
+      return new TimeSeriesOperand(actualPaths.get(0));
     }
     return timeSeriesOperand;
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/IntermediateLayerVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/IntermediateLayerVisitor.java
index 753589884af..432cb85d1d1 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/IntermediateLayerVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/IntermediateLayerVisitor.java
@@ -426,8 +426,7 @@ public class IntermediateLayerVisitor
   }
 
   private IntermediateLayer constructUdfInputIntermediateLayer(
-      FunctionExpression functionExpression, IntermediateLayerVisitorContext 
context)
-      throws QueryProcessException, IOException {
+      FunctionExpression functionExpression, IntermediateLayerVisitorContext 
context) {
     List<IntermediateLayer> intermediateLayers = new ArrayList<>();
     for (Expression expression : functionExpression.getExpressions()) {
       intermediateLayers.add(this.process(expression, context));
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/TransformToViewExpressionVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/TransformToViewExpressionVisitor.java
index 5c4ec716075..b74a625bb12 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/TransformToViewExpressionVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/TransformToViewExpressionVisitor.java
@@ -204,52 +204,47 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   public ViewExpression visitArithmeticBinaryExpression(
       ArithmeticBinaryExpression arithmeticBinaryExpression, Void context) {
     if (arithmeticBinaryExpression instanceof AdditionExpression) {
-      return this.visitAdditionExpression((AdditionExpression) 
arithmeticBinaryExpression, context);
+      return this.visitAdditionExpression((AdditionExpression) 
arithmeticBinaryExpression);
     } else if (arithmeticBinaryExpression instanceof DivisionExpression) {
-      return this.visitDivisionExpression((DivisionExpression) 
arithmeticBinaryExpression, context);
+      return this.visitDivisionExpression((DivisionExpression) 
arithmeticBinaryExpression);
     } else if (arithmeticBinaryExpression instanceof ModuloExpression) {
-      return this.visitModuloExpression((ModuloExpression) 
arithmeticBinaryExpression, context);
+      return this.visitModuloExpression((ModuloExpression) 
arithmeticBinaryExpression);
     } else if (arithmeticBinaryExpression instanceof MultiplicationExpression) 
{
       return this.visitMultiplicationExpression(
-          (MultiplicationExpression) arithmeticBinaryExpression, context);
+          (MultiplicationExpression) arithmeticBinaryExpression);
     } else if (arithmeticBinaryExpression instanceof SubtractionExpression) {
-      return this.visitSubtractionExpression(
-          (SubtractionExpression) arithmeticBinaryExpression, context);
+      return this.visitSubtractionExpression((SubtractionExpression) 
arithmeticBinaryExpression);
     }
-    throw new RuntimeException(
-        new NotSupportedException(
-            "unsupported expression type:" + 
arithmeticBinaryExpression.getExpressionType()));
+    throw new UnsupportedOperationException(
+        "unsupported expression type:" + 
arithmeticBinaryExpression.getExpressionType());
   }
 
-  public ViewExpression visitAdditionExpression(
-      AdditionExpression additionExpression, Void context) {
+  public ViewExpression visitAdditionExpression(AdditionExpression 
additionExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(additionExpression);
     return new AdditionViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitDivisionExpression(
-      DivisionExpression divisionExpression, Void context) {
+  public ViewExpression visitDivisionExpression(DivisionExpression 
divisionExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(divisionExpression);
     return new DivisionViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitModuloExpression(ModuloExpression 
moduloExpression, Void context) {
+  public ViewExpression visitModuloExpression(ModuloExpression 
moduloExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(moduloExpression);
     return new ModuloViewExpression(pair.left, pair.right);
   }
 
   public ViewExpression visitMultiplicationExpression(
-      MultiplicationExpression multiplicationExpression, Void context) {
+      MultiplicationExpression multiplicationExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(multiplicationExpression);
     return new MultiplicationViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitSubtractionExpression(
-      SubtractionExpression subtractionExpression, Void context) {
+  public ViewExpression visitSubtractionExpression(SubtractionExpression 
subtractionExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(subtractionExpression);
     return new SubtractionViewExpression(pair.left, pair.right);
@@ -261,61 +256,53 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   public ViewExpression visitCompareBinaryExpression(
       CompareBinaryExpression compareBinaryExpression, Void context) {
     if (compareBinaryExpression instanceof EqualToExpression) {
-      return this.visitEqualToExpression((EqualToExpression) 
compareBinaryExpression, context);
+      return this.visitEqualToExpression((EqualToExpression) 
compareBinaryExpression);
     } else if (compareBinaryExpression instanceof GreaterEqualExpression) {
-      return this.visitGreaterEqualExpression(
-          (GreaterEqualExpression) compareBinaryExpression, context);
+      return this.visitGreaterEqualExpression((GreaterEqualExpression) 
compareBinaryExpression);
     } else if (compareBinaryExpression instanceof GreaterThanExpression) {
-      return this.visitGreaterThanExpression(
-          (GreaterThanExpression) compareBinaryExpression, context);
+      return this.visitGreaterThanExpression((GreaterThanExpression) 
compareBinaryExpression);
     } else if (compareBinaryExpression instanceof LessEqualExpression) {
-      return this.visitLessEqualExpression((LessEqualExpression) 
compareBinaryExpression, context);
+      return this.visitLessEqualExpression((LessEqualExpression) 
compareBinaryExpression);
     } else if (compareBinaryExpression instanceof LessThanExpression) {
-      return this.visitLessThanExpression((LessThanExpression) 
compareBinaryExpression, context);
+      return this.visitLessThanExpression((LessThanExpression) 
compareBinaryExpression);
     } else if (compareBinaryExpression instanceof NonEqualExpression) {
-      return this.visitNonEqualExpression((NonEqualExpression) 
compareBinaryExpression, context);
+      return this.visitNonEqualExpression((NonEqualExpression) 
compareBinaryExpression);
     }
-    throw new RuntimeException(
-        new NotSupportedException(
-            "unsupported expression type:" + 
compareBinaryExpression.getExpressionType()));
+    throw new UnsupportedOperationException(
+        "unsupported expression type:" + 
compareBinaryExpression.getExpressionType());
   }
 
-  public ViewExpression visitEqualToExpression(EqualToExpression 
equalToExpression, Void context) {
+  public ViewExpression visitEqualToExpression(EqualToExpression 
equalToExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(equalToExpression);
     return new EqualToViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitGreaterEqualExpression(
-      GreaterEqualExpression greaterEqualExpression, Void context) {
+  public ViewExpression visitGreaterEqualExpression(GreaterEqualExpression 
greaterEqualExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(greaterEqualExpression);
     return new GreaterEqualViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitGreaterThanExpression(
-      GreaterThanExpression greaterThanExpression, Void context) {
+  public ViewExpression visitGreaterThanExpression(GreaterThanExpression 
greaterThanExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(greaterThanExpression);
     return new GreaterThanViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitLessEqualExpression(
-      LessEqualExpression lessEqualExpression, Void context) {
+  public ViewExpression visitLessEqualExpression(LessEqualExpression 
lessEqualExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(lessEqualExpression);
     return new LessEqualViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitLessThanExpression(
-      LessThanExpression lessThanExpression, Void context) {
+  public ViewExpression visitLessThanExpression(LessThanExpression 
lessThanExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(lessThanExpression);
     return new LessThanViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitNonEqualExpression(
-      NonEqualExpression nonEqualExpression, Void context) {
+  public ViewExpression visitNonEqualExpression(NonEqualExpression 
nonEqualExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(nonEqualExpression);
     return new NonEqualViewExpression(pair.left, pair.right);
@@ -327,23 +314,21 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   public ViewExpression visitLogicBinaryExpression(
       LogicBinaryExpression logicBinaryExpression, Void context) {
     if (logicBinaryExpression instanceof LogicAndExpression) {
-      return this.visitLogicAndExpression((LogicAndExpression) 
logicBinaryExpression, context);
+      return this.visitLogicAndExpression((LogicAndExpression) 
logicBinaryExpression);
     } else if (logicBinaryExpression instanceof LogicOrExpression) {
-      return this.visitLogicOrExpression((LogicOrExpression) 
logicBinaryExpression, context);
+      return this.visitLogicOrExpression((LogicOrExpression) 
logicBinaryExpression);
     }
-    throw new RuntimeException(
-        new NotSupportedException(
-            "unsupported expression type:" + 
logicBinaryExpression.getExpressionType()));
+    throw new UnsupportedOperationException(
+        "unsupported expression type:" + 
logicBinaryExpression.getExpressionType());
   }
 
-  public ViewExpression visitLogicAndExpression(
-      LogicAndExpression logicAndExpression, Void context) {
+  public ViewExpression visitLogicAndExpression(LogicAndExpression 
logicAndExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(logicAndExpression);
     return new LogicAndViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitLogicOrExpression(LogicOrExpression 
logicOrExpression, Void context) {
+  public ViewExpression visitLogicOrExpression(LogicOrExpression 
logicOrExpression) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(logicOrExpression);
     return new LogicOrViewExpression(pair.left, pair.right);
@@ -355,7 +340,7 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   // region Ternary Expressions
   @Override
   public ViewExpression visitTernaryExpression(TernaryExpression 
ternaryExpression, Void context) {
-    throw new RuntimeException(new NotSupportedException("Can not construct 
abstract class."));
+    throw new NotSupportedException("Can not construct abstract class.");
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java
index f6331c98f2e..e253946d6ab 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/cartesian/BindSchemaForExpressionVisitor.java
@@ -122,16 +122,15 @@ public class BindSchemaForExpressionVisitor extends 
CartesianProductVisitor<ISch
   public static Expression transformViewPath(
       MeasurementPath measurementPath, ISchemaTree schemaTree) {
     IMeasurementSchema measurementSchema = 
measurementPath.getMeasurementSchema();
-    if (measurementSchema.isLogicalView()) {
-      ViewExpression viewExpression = ((LogicalViewSchema) 
measurementSchema).getExpression();
-      // complete measurementPaths in expressions.
-      Expression expression = new 
TransformToExpressionVisitor().process(viewExpression, null);
-      expression = new CompleteMeasurementSchemaVisitor().process(expression, 
schemaTree);
-      return expression;
-    } else {
-      throw new RuntimeException(
-          new UnsupportedOperationException(
-              "Can not construct expression using non view path in 
transformViewPath!"));
+    if (!measurementSchema.isLogicalView()) {
+      throw new IllegalArgumentException(
+          "Can not construct expression using non view path in 
transformViewPath!");
     }
+
+    ViewExpression viewExpression = ((LogicalViewSchema) 
measurementSchema).getExpression();
+    // complete measurementPaths in expressions.
+    Expression expression = new 
TransformToExpressionVisitor().process(viewExpression, null);
+    expression = new CompleteMeasurementSchemaVisitor().process(expression, 
schemaTree);
+    return expression;
   }
 }

Reply via email to