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 7805091af13752bfd2d94a5606476a25dab43ad5
Author: Minghui Liu <[email protected]>
AuthorDate: Tue Jun 20 16:10:37 2023 +0800

    fix sonar (common & execution)
---
 .../org/apache/iotdb/db/mpp/common/QueryId.java    |  10 +-
 .../db/mpp/common/header/ColumnHeaderConstant.java |   4 +
 .../db/mpp/common/header/DatasetHeaderFactory.java |   4 +
 .../mpp/common/schematree/ClusterSchemaTree.java   |  22 ++--
 .../schematree/visitor/SchemaTreeVisitor.java      |   2 +-
 .../visitor/SchemaTreeVisitorFactory.java          |   5 +
 .../db/mpp/plan/execution/ExecutionResult.java     |   4 +-
 .../db/mpp/plan/execution/QueryExecution.java      |  14 ++-
 .../mpp/plan/execution/config/ConfigExecution.java |  12 +-
 .../plan/execution/config/ConfigTaskVisitor.java   |   3 +-
 .../config/executor/ClusterConfigTaskExecutor.java |   8 +-
 .../execution/config/metadata/GetRegionIdTask.java |   2 +-
 .../config/metadata/GetSeriesSlotListTask.java     |   2 +-
 .../config/metadata/ShowClusterDetailsTask.java    |   1 +
 .../execution/config/metadata/ShowClusterTask.java |   2 +-
 .../config/metadata/ShowConfigNodesTask.java       |   9 +-
 .../config/metadata/ShowFunctionsTask.java         |   2 +-
 .../config/metadata/model/ShowModelsTask.java      |   4 +-
 .../config/sys/quota/ShowSpaceQuotaTask.java       |   2 +-
 .../config/sys/quota/ShowThrottleQuotaTask.java    |   6 +-
 .../plan/execution/memory/MemorySourceHandle.java  |  12 +-
 .../plan/expression/binary/BinaryExpression.java   |   1 +
 .../mpp/plan/expression/unary/LikeExpression.java  |  11 +-
 .../plan/expression/visitor/ExpressionVisitor.java |  66 +++++++++++
 .../visitor/IntermediateLayerVisitor.java          |  21 ++--
 .../visitor/TransformToViewExpressionVisitor.java  | 124 +++++++--------------
 .../db/mpp/plan/optimization/PlanOptimizer.java    |   1 +
 27 files changed, 203 insertions(+), 151 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/common/QueryId.java 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/QueryId.java
index 2208e006721..897eb6ea1fe 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/common/QueryId.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/common/QueryId.java
@@ -33,13 +33,15 @@ import static java.util.Objects.requireNonNull;
 
 public class QueryId {
 
-  public static QueryId mockQueryId = QueryId.valueOf("mock_query_id");
+  public static final QueryId mockQueryId = QueryId.valueOf("mock_query_id");
 
   private final String id;
 
   private int nextPlanNodeIndex;
   private int nextPlanFragmentIndex;
 
+  private static final String INVALID_ID_ERROR_MSG = "Invalid id %s";
+
   public static QueryId valueOf(String queryId) {
     // ID is verified in the constructor
     return new QueryId(queryId);
@@ -94,8 +96,8 @@ public class QueryId {
     checkArgument(ids.size() == expectedParts, "Invalid %s %s", name, id);
 
     for (String part : ids) {
-      checkArgument(!part.isEmpty(), "Invalid id %s", id);
-      checkArgument(isValidId(part), "Invalid id %s", id);
+      checkArgument(!part.isEmpty(), INVALID_ID_ERROR_MSG, id);
+      checkArgument(isValidId(part), INVALID_ID_ERROR_MSG, id);
     }
     return ids;
   }
@@ -128,7 +130,7 @@ public class QueryId {
   public static String validateId(String id) {
     requireNonNull(id, "id is null");
     checkArgument(!id.isEmpty(), "id is empty");
-    checkArgument(isValidId(id), "Invalid id %s", id);
+    checkArgument(isValidId(id), INVALID_ID_ERROR_MSG, id);
     return id;
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
index 304222a7407..09661be29cd 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/ColumnHeaderConstant.java
@@ -27,6 +27,10 @@ import java.util.List;
 
 public class ColumnHeaderConstant {
 
+  private ColumnHeaderConstant() {
+    // forbidding instantiation
+  }
+
   // column names for query statement
   public static final String TIME = "Time";
   public static final String ENDTIME = "__endTime";
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java
index 430839e0d6d..a630e6d7ce1 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/header/DatasetHeaderFactory.java
@@ -21,6 +21,10 @@ package org.apache.iotdb.db.mpp.common.header;
 
 public class DatasetHeaderFactory {
 
+  private DatasetHeaderFactory() {
+    // forbidding instantiation
+  }
+
   public static DatasetHeader getCountStorageGroupHeader() {
     return new 
DatasetHeader(ColumnHeaderConstant.countStorageGroupColumnHeaders, true);
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
index 94eb822ba5e..72b187d6f3b 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/ClusterSchemaTree.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.commons.schema.view.LogicalViewSchema;
 import org.apache.iotdb.commons.utils.PathUtils;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
+import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.common.schematree.node.SchemaEntityNode;
 import org.apache.iotdb.db.mpp.common.schematree.node.SchemaInternalNode;
 import org.apache.iotdb.db.mpp.common.schematree.node.SchemaMeasurementNode;
@@ -40,7 +41,6 @@ import 
org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.rmi.UnexpectedException;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Deque;
@@ -184,11 +184,9 @@ public class ClusterSchemaTree implements ISchemaTree {
       if (node == null) {
         indexOfMissingMeasurements.add(index);
       } else {
-        if (firstNonViewMeasurement) {
-          if (!node.getAsMeasurementNode().isLogicalView()) {
-            schemaComputation.computeDevice(cur.getAsEntityNode().isAligned());
-            firstNonViewMeasurement = false;
-          }
+        if (firstNonViewMeasurement && 
!node.getAsMeasurementNode().isLogicalView()) {
+          schemaComputation.computeDevice(cur.getAsEntityNode().isAligned());
+          firstNonViewMeasurement = false;
         }
         schemaComputation.computeMeasurement(index, 
node.getAsMeasurementNode());
       }
@@ -214,16 +212,14 @@ public class ClusterSchemaTree implements ISchemaTree {
       PartialPath fullPath = logicalViewSchema.getSourcePathIfWritable();
       Pair<List<MeasurementPath>, Integer> searchResult = 
this.searchMeasurementPaths(fullPath);
       List<MeasurementPath> measurementPathList = searchResult.left;
-      if (measurementPathList.size() <= 0) {
-        throw new RuntimeException(
+      if (measurementPathList.isEmpty()) {
+        throw new SemanticException(
             new PathNotExistException(
                 String.format(
                     "The source path of view [%s] does not exist.", 
fullPath.getFullPath())));
       } else if (measurementPathList.size() > 1) {
-        throw new RuntimeException(
-            new UnexpectedException(
-                String.format(
-                    "The source paths of view [%s] are multiple.", 
fullPath.getFullPath())));
+        throw new SemanticException(
+            String.format("The source paths of view [%s] are multiple.", 
fullPath.getFullPath()));
       } else {
         Integer realIndex = 
schemaComputation.getIndexListOfLogicalViewPaths().get(index);
         MeasurementPath measurementPath = measurementPathList.get(0);
@@ -407,7 +403,7 @@ public class ClusterSchemaTree implements ISchemaTree {
         return database;
       }
     }
-    throw new RuntimeException("No matched database. Please check the path " + 
pathName);
+    throw new SemanticException("No matched database. Please check the path " 
+ pathName);
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitor.java
index 7ddab681367..b42a96439e2 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitor.java
@@ -31,7 +31,7 @@ public abstract class SchemaTreeVisitor<R> extends 
AbstractTreeVisitor<SchemaNod
 
   protected SchemaTreeVisitor() {}
 
-  public SchemaTreeVisitor(SchemaNode root, PartialPath pathPattern, boolean 
isPrefixMatch) {
+  protected SchemaTreeVisitor(SchemaNode root, PartialPath pathPattern, 
boolean isPrefixMatch) {
     super(root, pathPattern, isPrefixMatch);
     initStack();
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitorFactory.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitorFactory.java
index 2c7e7365aa4..6a2e6ae631e 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitorFactory.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/schematree/visitor/SchemaTreeVisitorFactory.java
@@ -23,6 +23,11 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.mpp.common.schematree.node.SchemaNode;
 
 public class SchemaTreeVisitorFactory {
+
+  private SchemaTreeVisitorFactory() {
+    // forbidden instantiation
+  }
+
   public static SchemaTreeDeviceVisitor createSchemaTreeDeviceVisitor(
       SchemaNode root, PartialPath pathPattern, boolean isPrefixMatch) {
     return new SchemaTreeDeviceVisitor(root, pathPattern, isPrefixMatch);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/ExecutionResult.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/ExecutionResult.java
index 4ac05aabee3..8d778289dd4 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/ExecutionResult.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/ExecutionResult.java
@@ -22,8 +22,8 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.db.mpp.common.QueryId;
 
 public class ExecutionResult {
-  public QueryId queryId;
-  public TSStatus status;
+  public final QueryId queryId;
+  public final TSStatus status;
 
   public ExecutionResult(QueryId queryId, TSStatus status) {
     this.queryId = queryId;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java
index 8c4200fe391..ac5e0d912c8 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java
@@ -148,6 +148,7 @@ public class QueryExecution implements IQueryExecution {
   private static final PerformanceOverviewMetrics PERFORMANCE_OVERVIEW_METRICS 
=
       PerformanceOverviewMetrics.getInstance();
 
+  @SuppressWarnings("squid:S107")
   public QueryExecution(
       Statement statement,
       MPPQueryContext context,
@@ -601,11 +602,16 @@ public class QueryExecution implements IQueryExecution {
       }
       // TODO: (xingtanzjr) use more TSStatusCode if the QueryState isn't 
FINISHED
       return getExecutionResult(state);
-    } catch (InterruptedException | ExecutionException e) {
+    } catch (InterruptedException e) {
       // TODO: (xingtanzjr) use more accurate error handling
-      if (e instanceof InterruptedException) {
-        Thread.currentThread().interrupt();
-      }
+      Thread.currentThread().interrupt();
+      return new ExecutionResult(
+          context.getQueryId(),
+          stateMachine.getFailureStatus() == null
+              ? RpcUtils.getStatus(
+                  TSStatusCode.INTERNAL_SERVER_ERROR, 
stateMachine.getFailureMessage())
+              : stateMachine.getFailureStatus());
+    } catch (ExecutionException e) {
       return new ExecutionResult(
           context.getQueryId(),
           stateMachine.getFailureStatus() == null
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigExecution.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigExecution.java
index 20a4aa9f82d..2b323f99ef0 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigExecution.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigExecution.java
@@ -145,13 +145,19 @@ public class ConfigExecution implements IQueryExecution {
   }
 
   @Override
-  public void stop(Throwable t) {}
+  public void stop(Throwable t) {
+    // do nothing
+  }
 
   @Override
-  public void stopAndCleanup() {}
+  public void stopAndCleanup() {
+    // do nothing
+  }
 
   @Override
-  public void stopAndCleanup(Throwable t) {}
+  public void stopAndCleanup(Throwable t) {
+    // do nothing
+  }
 
   @Override
   public void cancel() {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
index 3ed3b35696f..90afc38cd67 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/ConfigTaskVisitor.java
@@ -379,7 +379,7 @@ public class ConfigTaskVisitor
   @Override
   public IConfigTask visitShowConfigNodes(
       ShowConfigNodesStatement showConfigNodesStatement, TaskContext context) {
-    return new ShowConfigNodesTask(showConfigNodesStatement);
+    return new ShowConfigNodesTask();
   }
 
   @Override
@@ -449,6 +449,7 @@ public class ConfigTaskVisitor
     return new GetTimeSlotListTask(getTimeSlotListStatement);
   }
 
+  @Override
   public IConfigTask visitCountTimeSlotList(
       CountTimeSlotListStatement countTimeSlotListStatement, TaskContext 
context) {
     return new CountTimeSlotListTask(countTimeSlotListStatement);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
index 2cd03420959..cf1f75c3d9b 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
@@ -1085,7 +1085,7 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
     if (showClusterStatement.isDetails()) {
       ShowClusterDetailsTask.buildTSBlock(showClusterResp, future);
     } else {
-      ShowClusterTask.buildTSBlock(showClusterResp, future);
+      ShowClusterTask.buildTsBlock(showClusterResp, future);
     }
 
     return future;
@@ -1872,7 +1872,7 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
     } catch (Exception e) {
       future.setException(e);
     }
-    GetRegionIdTask.buildTSBlock(resp, future);
+    GetRegionIdTask.buildTsBlock(resp, future);
     return future;
   }
 
@@ -1895,7 +1895,7 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
     } catch (Exception e) {
       future.setException(e);
     }
-    GetSeriesSlotListTask.buildTSBlock(resp, future);
+    GetSeriesSlotListTask.buildTsBlock(resp, future);
     return future;
   }
 
@@ -2153,7 +2153,7 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
       // Send request to some API server
       TSpaceQuotaResp showSpaceQuotaResp = 
configNodeClient.showSpaceQuota(databases);
       // build TSBlock
-      ShowSpaceQuotaTask.buildTSBlock(showSpaceQuotaResp, future);
+      ShowSpaceQuotaTask.buildTsBlock(showSpaceQuotaResp, future);
     } catch (Exception e) {
       future.setException(e);
     }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetRegionIdTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetRegionIdTask.java
index c1568149321..be6552fd107 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetRegionIdTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetRegionIdTask.java
@@ -60,7 +60,7 @@ public class GetRegionIdTask implements IConfigTask {
     builder.declarePosition();
   }
 
-  public static void buildTSBlock(
+  public static void buildTsBlock(
       TGetRegionIdResp getRegionIdResp, SettableFuture<ConfigTaskResult> 
future) {
     List<TSDataType> outputDataTypes =
         ColumnHeaderConstant.getRegionIdColumnHeaders.stream()
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetSeriesSlotListTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetSeriesSlotListTask.java
index 5da8c5c7ed7..9f4ebd896f3 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetSeriesSlotListTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/GetSeriesSlotListTask.java
@@ -61,7 +61,7 @@ public class GetSeriesSlotListTask implements IConfigTask {
     builder.declarePosition();
   }
 
-  public static void buildTSBlock(
+  public static void buildTsBlock(
       TGetSeriesSlotListResp getSeriesSlotListResp, 
SettableFuture<ConfigTaskResult> future) {
     List<TSDataType> outputDataTypes =
         ColumnHeaderConstant.getSeriesSlotListColumnHeaders.stream()
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java
index 6549ee3ffc6..7b6b1b9f623 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterDetailsTask.java
@@ -73,6 +73,7 @@ public class ShowClusterDetailsTask implements IConfigTask {
     builder.declarePosition();
   }
 
+  @SuppressWarnings("squid:S107")
   private static void buildDataNodesTsBlock(
       TsBlockBuilder builder,
       int nodeId,
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterTask.java
index b1cf6a2e953..d4cabb17375 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowClusterTask.java
@@ -72,7 +72,7 @@ public class ShowClusterTask implements IConfigTask {
     builder.declarePosition();
   }
 
-  public static void buildTSBlock(
+  public static void buildTsBlock(
       TShowClusterResp clusterNodeInfos, SettableFuture<ConfigTaskResult> 
future) {
     List<TSDataType> outputDataTypes =
         ColumnHeaderConstant.showClusterColumnHeaders.stream()
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowConfigNodesTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowConfigNodesTask.java
index cb4a1268910..6fdb6c9fe86 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowConfigNodesTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowConfigNodesTask.java
@@ -28,7 +28,6 @@ import 
org.apache.iotdb.db.mpp.common.header.DatasetHeaderFactory;
 import org.apache.iotdb.db.mpp.plan.execution.config.ConfigTaskResult;
 import org.apache.iotdb.db.mpp.plan.execution.config.IConfigTask;
 import 
org.apache.iotdb.db.mpp.plan.execution.config.executor.IConfigTaskExecutor;
-import 
org.apache.iotdb.db.mpp.plan.statement.metadata.ShowConfigNodesStatement;
 import org.apache.iotdb.rpc.TSStatusCode;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.block.TsBlockBuilder;
@@ -42,12 +41,8 @@ import java.util.stream.Collectors;
 
 public class ShowConfigNodesTask implements IConfigTask {
 
-  private ShowConfigNodesStatement showConfigNodesStatement;
-
-  public ShowConfigNodesTask() {}
-
-  public ShowConfigNodesTask(ShowConfigNodesStatement 
showConfigNodesStatement) {
-    this.showConfigNodesStatement = showConfigNodesStatement;
+  public ShowConfigNodesTask() {
+    // do nothing
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowFunctionsTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowFunctionsTask.java
index 96fa09fc3db..31edbc373b4 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowFunctionsTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/ShowFunctionsTask.java
@@ -120,7 +120,7 @@ public class ShowFunctionsTask implements IConfigTask {
   }
 
   private static String getFunctionType(UDFInformation udfInformation) {
-    String functionType = FUNCTION_TYPE_EXTERNAL_UDTF;
+    String functionType = null;
     try {
       if (udfInformation.isBuiltin()) {
         if 
(UDFManagementService.getInstance().isUDTF(udfInformation.getFunctionName())) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java
index 750e0dd5ae3..b6493d590ab 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/metadata/model/ShowModelsTask.java
@@ -42,7 +42,9 @@ import java.util.stream.Collectors;
 
 public class ShowModelsTask implements IConfigTask {
 
-  public ShowModelsTask() {}
+  public ShowModelsTask() {
+    // do nothing
+  }
 
   @Override
   public ListenableFuture<ConfigTaskResult> execute(IConfigTaskExecutor 
configTaskExecutor)
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowSpaceQuotaTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowSpaceQuotaTask.java
index 961a9ccda35..d069c925ccc 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowSpaceQuotaTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowSpaceQuotaTask.java
@@ -57,7 +57,7 @@ public class ShowSpaceQuotaTask implements IConfigTask {
     return configTaskExecutor.showSpaceQuota(showSpaceQuotaStatement);
   }
 
-  public static void buildTSBlock(TSpaceQuotaResp resp, 
SettableFuture<ConfigTaskResult> future) {
+  public static void buildTsBlock(TSpaceQuotaResp resp, 
SettableFuture<ConfigTaskResult> future) {
     List<TSDataType> outputDataTypes =
         ColumnHeaderConstant.showSpaceQuotaColumnHeaders.stream()
             .map(ColumnHeader::getColumnType)
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowThrottleQuotaTask.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowThrottleQuotaTask.java
index 8533e59a581..67c99a7beeb 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowThrottleQuotaTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/sys/quota/ShowThrottleQuotaTask.java
@@ -141,7 +141,7 @@ public class ShowThrottleQuotaTask implements IConfigTask {
       case REQUEST_SIZE:
         return "";
       default:
-        throw new RuntimeException("Wrong request type");
+        throw new IllegalArgumentException("Wrong request type");
     }
   }
 
@@ -170,7 +170,7 @@ public class ShowThrottleQuotaTask implements IConfigTask {
               + toTimeUnit(timedQuota.getTimeUnit());
         }
       default:
-        throw new RuntimeException("Wrong request type");
+        throw new IllegalArgumentException("Wrong request type");
     }
   }
 
@@ -185,7 +185,7 @@ public class ShowThrottleQuotaTask implements IConfigTask {
       case IoTDBConstant.DAY:
         return IoTDBConstant.DAY_UNIT;
       default:
-        throw new RuntimeException("Wrong unit type");
+        throw new IllegalArgumentException("Wrong unit type");
     }
   }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/memory/MemorySourceHandle.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/memory/MemorySourceHandle.java
index a071b4b83c7..d307952288a 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/memory/MemorySourceHandle.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/memory/MemorySourceHandle.java
@@ -98,7 +98,9 @@ public class MemorySourceHandle implements ISourceHandle {
   }
 
   @Override
-  public void abort() {}
+  public void abort() {
+    // do nothing
+  }
 
   @Override
   public void abort(Throwable t) {
@@ -106,8 +108,12 @@ public class MemorySourceHandle implements ISourceHandle {
   }
 
   @Override
-  public void close() {}
+  public void close() {
+    // do nothing
+  }
 
   @Override
-  public void setMaxBytesCanReserve(long maxBytesCanReserve) {}
+  public void setMaxBytesCanReserve(long maxBytesCanReserve) {
+    // do nothing
+  }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/BinaryExpression.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/BinaryExpression.java
index d6a5c89f9ce..5eda9e2c80c 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/BinaryExpression.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/BinaryExpression.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.db.mpp.plan.expression.binary;
 
 import org.apache.iotdb.db.mpp.common.NodeRef;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LikeExpression.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LikeExpression.java
index 13b51495ad8..ee0ebb1b26e 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LikeExpression.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LikeExpression.java
@@ -96,16 +96,17 @@ public class LikeExpression extends UnaryExpression {
    */
   private String unescapeString(String value) {
     StringBuilder stringBuilder = new StringBuilder();
-    for (int i = 0; i < value.length(); i++) {
-      String ch = String.valueOf(value.charAt(i));
+    int curIndex = 0;
+    for (; curIndex < value.length(); curIndex++) {
+      String ch = String.valueOf(value.charAt(curIndex));
       if ("\\".equals(ch)) {
-        if (i < value.length() - 1) {
-          String nextChar = String.valueOf(value.charAt(i + 1));
+        if (curIndex < value.length() - 1) {
+          String nextChar = String.valueOf(value.charAt(curIndex + 1));
           if ("%".equals(nextChar) || "_".equals(nextChar) || 
"\\".equals(nextChar)) {
             stringBuilder.append(ch);
           }
           if ("\\".equals(nextChar)) {
-            i++;
+            curIndex++;
           }
         }
       } else {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ExpressionVisitor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ExpressionVisitor.java
index cbfed82bb82..428f596295d 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ExpressionVisitor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/visitor/ExpressionVisitor.java
@@ -20,10 +20,23 @@
 package org.apache.iotdb.db.mpp.plan.expression.visitor;
 
 import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.AdditionExpression;
 import 
org.apache.iotdb.db.mpp.plan.expression.binary.ArithmeticBinaryExpression;
 import org.apache.iotdb.db.mpp.plan.expression.binary.BinaryExpression;
 import org.apache.iotdb.db.mpp.plan.expression.binary.CompareBinaryExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.DivisionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.EqualToExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
 import org.apache.iotdb.db.mpp.plan.expression.binary.LogicBinaryExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicOrExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.ModuloExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.MultiplicationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.NonEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.SubtractionExpression;
 import org.apache.iotdb.db.mpp.plan.expression.binary.WhenThenExpression;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.LeafOperand;
@@ -94,15 +107,68 @@ public abstract class ExpressionVisitor<R, C> {
     return visitBinaryExpression(arithmeticBinaryExpression, context);
   }
 
+  public R visitAdditionExpression(AdditionExpression additionExpression, C 
context) {
+    return visitArithmeticBinaryExpression(additionExpression, context);
+  }
+
+  public R visitSubtractionExpression(SubtractionExpression 
subtractionExpression, C context) {
+    return visitArithmeticBinaryExpression(subtractionExpression, context);
+  }
+
+  public R visitMultiplicationExpression(
+      MultiplicationExpression multiplicationExpression, C context) {
+    return visitArithmeticBinaryExpression(multiplicationExpression, context);
+  }
+
+  public R visitDivisionExpression(DivisionExpression divisionExpression, C 
context) {
+    return visitArithmeticBinaryExpression(divisionExpression, context);
+  }
+
+  public R visitModuloExpression(ModuloExpression moduloExpression, C context) 
{
+    return visitArithmeticBinaryExpression(moduloExpression, context);
+  }
+
   public R visitLogicBinaryExpression(LogicBinaryExpression 
logicBinaryExpression, C context) {
     return visitBinaryExpression(logicBinaryExpression, context);
   }
 
+  public R visitLogicAndExpression(LogicAndExpression logicAndExpression, C 
context) {
+    return visitLogicBinaryExpression(logicAndExpression, context);
+  }
+
+  public R visitLogicOrExpression(LogicOrExpression logicOrExpression, C 
context) {
+    return visitLogicBinaryExpression(logicOrExpression, context);
+  }
+
   public R visitCompareBinaryExpression(
       CompareBinaryExpression compareBinaryExpression, C context) {
     return visitBinaryExpression(compareBinaryExpression, context);
   }
 
+  public R visitEqualToExpression(EqualToExpression equalToExpression, C 
context) {
+    return visitCompareBinaryExpression(equalToExpression, context);
+  }
+
+  public R visitNonEqualExpression(NonEqualExpression nonEqualExpression, C 
context) {
+    return visitCompareBinaryExpression(nonEqualExpression, context);
+  }
+
+  public R visitGreaterThanExpression(GreaterThanExpression 
greaterThanExpression, C context) {
+    return visitCompareBinaryExpression(greaterThanExpression, context);
+  }
+
+  public R visitGreaterEqualExpression(GreaterEqualExpression 
greaterEqualExpression, C context) {
+    return visitCompareBinaryExpression(greaterEqualExpression, context);
+  }
+
+  public R visitLessThanExpression(LessThanExpression lessThanExpression, C 
context) {
+    return visitCompareBinaryExpression(lessThanExpression, context);
+  }
+
+  public R visitLessEqualExpression(LessEqualExpression lessEqualExpression, C 
context) {
+    return visitCompareBinaryExpression(lessEqualExpression, context);
+  }
+
   public R visitTernaryExpression(TernaryExpression ternaryExpression, C 
context) {
     return visitExpression(ternaryExpression, context);
   }
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 432cb85d1d1..1a0b254128f 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
@@ -22,6 +22,7 @@ package org.apache.iotdb.db.mpp.plan.expression.visitor;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.common.NodeRef;
 import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
 import org.apache.iotdb.db.mpp.plan.expression.binary.BinaryExpression;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
@@ -376,18 +377,16 @@ public class IntermediateLayerVisitor
       LayerPointReader firstParentLayerPointReader,
       LayerPointReader secondParentLayerPointReader,
       LayerPointReader thirdParentLayerPointReader) {
-    switch (expression.getExpressionType()) {
-      case BETWEEN:
-        BetweenExpression betweenExpression = (BetweenExpression) expression;
-        return new BetweenTransformer(
-            firstParentLayerPointReader,
-            secondParentLayerPointReader,
-            thirdParentLayerPointReader,
-            betweenExpression.isNotBetween());
-      default:
-        throw new UnsupportedOperationException(
-            "Unsupported Expression Type: " + expression.getExpressionType());
+    if (expression.getExpressionType() == ExpressionType.BETWEEN) {
+      BetweenExpression betweenExpression = (BetweenExpression) expression;
+      return new BetweenTransformer(
+          firstParentLayerPointReader,
+          secondParentLayerPointReader,
+          thirdParentLayerPointReader,
+          betweenExpression.isNotBetween());
     }
+    throw new UnsupportedOperationException(
+        "Unsupported Expression Type: " + expression.getExpressionType());
   }
 
   private UDFQueryTransformer getUdfTransformer(
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 b74a625bb12..17c0afff95b 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
@@ -64,24 +64,19 @@ import 
org.apache.iotdb.db.mpp.plan.expression.binary.MultiplicationExpression;
 import org.apache.iotdb.db.mpp.plan.expression.binary.NonEqualExpression;
 import org.apache.iotdb.db.mpp.plan.expression.binary.SubtractionExpression;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.mpp.plan.expression.leaf.LeafOperand;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.NullOperand;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
 import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.mpp.plan.expression.ternary.BetweenExpression;
-import org.apache.iotdb.db.mpp.plan.expression.ternary.TernaryExpression;
 import org.apache.iotdb.db.mpp.plan.expression.unary.InExpression;
 import org.apache.iotdb.db.mpp.plan.expression.unary.IsNullExpression;
 import org.apache.iotdb.db.mpp.plan.expression.unary.LikeExpression;
 import org.apache.iotdb.db.mpp.plan.expression.unary.LogicNotExpression;
 import org.apache.iotdb.db.mpp.plan.expression.unary.NegationExpression;
 import org.apache.iotdb.db.mpp.plan.expression.unary.RegularExpression;
-import org.apache.iotdb.db.mpp.plan.expression.unary.UnaryExpression;
 import org.apache.iotdb.tsfile.utils.Pair;
 
-import javax.ws.rs.NotSupportedException;
-
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -96,16 +91,12 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
 
   @Override
   public ViewExpression visitExpression(Expression expression, Void context) {
-    throw new RuntimeException(
-        new NotSupportedException(
-            "visitExpression in TransformToViewExpressionVisitor is not 
supported."));
+    throw new UnsupportedOperationException(
+        "Unsupported expression type in TransformToViewExpressionVisitor: "
+            + expression.getExpressionType());
   }
 
   // region leaf operand
-  @Override
-  public ViewExpression visitLeafOperand(LeafOperand leafOperand, Void 
context) {
-    throw new RuntimeException(new NotSupportedException("Can not construct 
abstract class."));
-  }
 
   @Override
   public ViewExpression visitConstantOperand(ConstantOperand constantOperand, 
Void context) {
@@ -129,10 +120,6 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   // endregion
 
   // region Unary Expressions
-  @Override
-  public ViewExpression visitUnaryExpression(UnaryExpression unaryExpression, 
Void context) {
-    throw new RuntimeException(new NotSupportedException("Can not construct 
abstract class."));
-  }
 
   @Override
   public ViewExpression visitInExpression(InExpression inExpression, Void 
context) {
@@ -187,9 +174,9 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
     } else if (binaryExpression instanceof LogicBinaryExpression) {
       return this.visitLogicBinaryExpression((LogicBinaryExpression) 
binaryExpression, context);
     }
-    throw new RuntimeException(
-        new NotSupportedException(
-            "unsupported expression type:" + 
binaryExpression.getExpressionType()));
+    throw new UnsupportedOperationException(
+        "Unsupported expression type in TransformToViewExpressionVisitor: "
+            + binaryExpression.getExpressionType());
   }
 
   private Pair<ViewExpression, ViewExpression> 
getExpressionsForBinaryExpression(
@@ -201,50 +188,39 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
 
   // region Binary : Arithmetic Binary Expression
   @Override
-  public ViewExpression visitArithmeticBinaryExpression(
-      ArithmeticBinaryExpression arithmeticBinaryExpression, Void context) {
-    if (arithmeticBinaryExpression instanceof AdditionExpression) {
-      return this.visitAdditionExpression((AdditionExpression) 
arithmeticBinaryExpression);
-    } else if (arithmeticBinaryExpression instanceof DivisionExpression) {
-      return this.visitDivisionExpression((DivisionExpression) 
arithmeticBinaryExpression);
-    } else if (arithmeticBinaryExpression instanceof ModuloExpression) {
-      return this.visitModuloExpression((ModuloExpression) 
arithmeticBinaryExpression);
-    } else if (arithmeticBinaryExpression instanceof MultiplicationExpression) 
{
-      return this.visitMultiplicationExpression(
-          (MultiplicationExpression) arithmeticBinaryExpression);
-    } else if (arithmeticBinaryExpression instanceof SubtractionExpression) {
-      return this.visitSubtractionExpression((SubtractionExpression) 
arithmeticBinaryExpression);
-    }
-    throw new UnsupportedOperationException(
-        "unsupported expression type:" + 
arithmeticBinaryExpression.getExpressionType());
-  }
-
-  public ViewExpression visitAdditionExpression(AdditionExpression 
additionExpression) {
+  public ViewExpression visitAdditionExpression(
+      AdditionExpression additionExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(additionExpression);
     return new AdditionViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitDivisionExpression(DivisionExpression 
divisionExpression) {
+  @Override
+  public ViewExpression visitDivisionExpression(
+      DivisionExpression divisionExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(divisionExpression);
     return new DivisionViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitModuloExpression(ModuloExpression 
moduloExpression) {
+  @Override
+  public ViewExpression visitModuloExpression(ModuloExpression 
moduloExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(moduloExpression);
     return new ModuloViewExpression(pair.left, pair.right);
   }
 
+  @Override
   public ViewExpression visitMultiplicationExpression(
-      MultiplicationExpression multiplicationExpression) {
+      MultiplicationExpression multiplicationExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(multiplicationExpression);
     return new MultiplicationViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitSubtractionExpression(SubtractionExpression 
subtractionExpression) {
+  @Override
+  public ViewExpression visitSubtractionExpression(
+      SubtractionExpression subtractionExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(subtractionExpression);
     return new SubtractionViewExpression(pair.left, pair.right);
@@ -252,57 +228,49 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   // endregion
 
   // region Binary: Compare Binary Expression
-  @Override
-  public ViewExpression visitCompareBinaryExpression(
-      CompareBinaryExpression compareBinaryExpression, Void context) {
-    if (compareBinaryExpression instanceof EqualToExpression) {
-      return this.visitEqualToExpression((EqualToExpression) 
compareBinaryExpression);
-    } else if (compareBinaryExpression instanceof GreaterEqualExpression) {
-      return this.visitGreaterEqualExpression((GreaterEqualExpression) 
compareBinaryExpression);
-    } else if (compareBinaryExpression instanceof GreaterThanExpression) {
-      return this.visitGreaterThanExpression((GreaterThanExpression) 
compareBinaryExpression);
-    } else if (compareBinaryExpression instanceof LessEqualExpression) {
-      return this.visitLessEqualExpression((LessEqualExpression) 
compareBinaryExpression);
-    } else if (compareBinaryExpression instanceof LessThanExpression) {
-      return this.visitLessThanExpression((LessThanExpression) 
compareBinaryExpression);
-    } else if (compareBinaryExpression instanceof NonEqualExpression) {
-      return this.visitNonEqualExpression((NonEqualExpression) 
compareBinaryExpression);
-    }
-    throw new UnsupportedOperationException(
-        "unsupported expression type:" + 
compareBinaryExpression.getExpressionType());
-  }
 
-  public ViewExpression visitEqualToExpression(EqualToExpression 
equalToExpression) {
+  @Override
+  public ViewExpression visitEqualToExpression(EqualToExpression 
equalToExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(equalToExpression);
     return new EqualToViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitGreaterEqualExpression(GreaterEqualExpression 
greaterEqualExpression) {
+  @Override
+  public ViewExpression visitGreaterEqualExpression(
+      GreaterEqualExpression greaterEqualExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(greaterEqualExpression);
     return new GreaterEqualViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitGreaterThanExpression(GreaterThanExpression 
greaterThanExpression) {
+  @Override
+  public ViewExpression visitGreaterThanExpression(
+      GreaterThanExpression greaterThanExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(greaterThanExpression);
     return new GreaterThanViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitLessEqualExpression(LessEqualExpression 
lessEqualExpression) {
+  @Override
+  public ViewExpression visitLessEqualExpression(
+      LessEqualExpression lessEqualExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(lessEqualExpression);
     return new LessEqualViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitLessThanExpression(LessThanExpression 
lessThanExpression) {
+  @Override
+  public ViewExpression visitLessThanExpression(
+      LessThanExpression lessThanExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(lessThanExpression);
     return new LessThanViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitNonEqualExpression(NonEqualExpression 
nonEqualExpression) {
+  @Override
+  public ViewExpression visitNonEqualExpression(
+      NonEqualExpression nonEqualExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(nonEqualExpression);
     return new NonEqualViewExpression(pair.left, pair.right);
@@ -310,25 +278,17 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   // endregion
 
   // region Binary : Logic Binary Expression
-  @Override
-  public ViewExpression visitLogicBinaryExpression(
-      LogicBinaryExpression logicBinaryExpression, Void context) {
-    if (logicBinaryExpression instanceof LogicAndExpression) {
-      return this.visitLogicAndExpression((LogicAndExpression) 
logicBinaryExpression);
-    } else if (logicBinaryExpression instanceof LogicOrExpression) {
-      return this.visitLogicOrExpression((LogicOrExpression) 
logicBinaryExpression);
-    }
-    throw new UnsupportedOperationException(
-        "unsupported expression type:" + 
logicBinaryExpression.getExpressionType());
-  }
 
-  public ViewExpression visitLogicAndExpression(LogicAndExpression 
logicAndExpression) {
+  @Override
+  public ViewExpression visitLogicAndExpression(
+      LogicAndExpression logicAndExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(logicAndExpression);
     return new LogicAndViewExpression(pair.left, pair.right);
   }
 
-  public ViewExpression visitLogicOrExpression(LogicOrExpression 
logicOrExpression) {
+  @Override
+  public ViewExpression visitLogicOrExpression(LogicOrExpression 
logicOrExpression, Void context) {
     Pair<ViewExpression, ViewExpression> pair =
         this.getExpressionsForBinaryExpression(logicOrExpression);
     return new LogicOrViewExpression(pair.left, pair.right);
@@ -338,10 +298,6 @@ public class TransformToViewExpressionVisitor extends 
ExpressionVisitor<ViewExpr
   // endregion
 
   // region Ternary Expressions
-  @Override
-  public ViewExpression visitTernaryExpression(TernaryExpression 
ternaryExpression, Void context) {
-    throw new NotSupportedException("Can not construct abstract class.");
-  }
 
   @Override
   public ViewExpression visitBetweenExpression(BetweenExpression 
betweenExpression, Void context) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/optimization/PlanOptimizer.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/optimization/PlanOptimizer.java
index a2b1f860ab0..d3eff3a5a26 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/optimization/PlanOptimizer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/optimization/PlanOptimizer.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.iotdb.db.mpp.plan.optimization;
 
 import org.apache.iotdb.db.mpp.common.MPPQueryContext;

Reply via email to