This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/addQueryIT in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit f1c66de87ddf1c5def50fbf69b8af6af4482b163 Author: Minghui Liu <[email protected]> AuthorDate: Tue Jun 21 09:56:25 2022 +0800 fix PathNumOverLimitException bug --- .../db/mpp/plan/analyze/ColumnPaginationController.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java index 12430396fe..082428664d 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ColumnPaginationController.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.mpp.plan.analyze; import org.apache.iotdb.db.conf.IoTDBDescriptor; +import org.apache.iotdb.db.exception.sql.PathNumOverLimitException; /** apply MaxQueryDeduplicatedPathNum and SLIMIT & SOFFSET */ public class ColumnPaginationController { @@ -28,6 +29,9 @@ public class ColumnPaginationController { IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum() + 1; private int curOffset; + // records the path number that the SchemaProcessor totally returned + private int consumed = 0; + // for ALIGN BY DEVICE / DISABLE ALIGN / GROUP BY LEVEL / LAST, controller does is disabled private final boolean isDisabled; @@ -35,7 +39,7 @@ public class ColumnPaginationController { // for series limit, the default value is 0, which means no limit this.curLimit = seriesLimit == 0 ? this.curLimit : Math.min(seriesLimit, this.curLimit); // series offset for result set. The default value is 0 - int seriesOffset1 = this.curOffset = seriesOffset; + this.curOffset = seriesOffset; this.isDisabled = isDisabled; } @@ -64,10 +68,14 @@ public class ColumnPaginationController { } public void consumeLimit() { + consumed++; + if (consumed > IoTDBDescriptor.getInstance().getConfig().getMaxQueryDeduplicatedPathNum()) { + throw new PathNumOverLimitException(); + } + if (isDisabled) { return; } - curLimit--; } }
