This is an automated email from the ASF dual-hosted git repository. xiangweiwei pushed a commit to branch toomanypaths in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 0a6ef29e6186dfd19340de7c541177b163cd115d Author: Alima777 <[email protected]> AuthorDate: Tue Nov 9 10:45:43 2021 +0800 MaxQueryDeduplicatedPathNum not take effect --- .../iotdb/db/exception/query/PathNumOverLimitException.java | 6 ++++-- .../iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/exception/query/PathNumOverLimitException.java b/server/src/main/java/org/apache/iotdb/db/exception/query/PathNumOverLimitException.java index c4eb10f..c9efadf 100644 --- a/server/src/main/java/org/apache/iotdb/db/exception/query/PathNumOverLimitException.java +++ b/server/src/main/java/org/apache/iotdb/db/exception/query/PathNumOverLimitException.java @@ -19,12 +19,14 @@ package org.apache.iotdb.db.exception.query; +import org.apache.iotdb.db.conf.IoTDBDescriptor; + public class PathNumOverLimitException extends QueryProcessException { - public PathNumOverLimitException(long maxDeduplicatedPathNum) { + public PathNumOverLimitException() { super( String.format( "Too many paths in one query! Currently allowed max deduplicated path number is %d. Please use slimit or adjust max_deduplicated_path_num in iotdb-engine.properties.", - maxDeduplicatedPathNum)); + IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum())); } } diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java index 0a03ea6..9427a21 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java @@ -445,14 +445,14 @@ public class ConcatPathOptimizer implements ILogicalOptimizer { } } + if (newSuffixPathList.size() + > IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum()) { + throw new PathNumOverLimitException(); + } if (limit == 0) { - int maxDeduplicatedPathNum = - IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum(); - if (maxDeduplicatedPathNum < newSuffixPathList.size()) { - throw new PathNumOverLimitException(maxDeduplicatedPathNum); - } break; } + } catch (MetadataException e) { throw new LogicalOptimizeException("error when remove star: " + e.getMessage()); }
