This is an automated email from the ASF dual-hosted git repository. geniuspig pushed a commit to branch move_flush in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 964030b5cf14be825499197c573530e93e4a2b21 Author: zhutianci <[email protected]> AuthorDate: Sat May 2 01:21:53 2020 +0800 fix bugs. --- server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4 | 2 +- server/src/main/java/org/apache/iotdb/db/mqtt/PublishHandler.java | 7 +++++-- server/src/main/java/org/apache/iotdb/db/qp/Planner.java | 2 ++ .../main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java | 1 + .../src/main/java/org/apache/iotdb/db/qp/logical/RootOperator.java | 1 - .../java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java | 1 + .../src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java | 2 +- 7 files changed, 11 insertions(+), 5 deletions(-) diff --git a/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4 b/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4 index f21fbc1..e75f4d1 100644 --- a/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4 +++ b/server/src/main/antlr4/org/apache/iotdb/db/qp/strategy/SqlBase.g4 @@ -37,7 +37,7 @@ statement | CREATE INDEX ON fullPath USING function=ID indexWithClause? whereClause? #createIndex //not support yet | DROP INDEX function=ID ON fullPath #dropIndex //not support yet | MERGE #merge - | FLUSH (COMMA prefixPath)* (ID)?#flush //ID is true or false + | FLUSH prefixPath? (COMMA prefixPath)* (ID)?#flush //ID is true or false | FULL MERGE #fullMerge | CREATE USER userName=ID password=STRING_LITERAL #createUser | ALTER USER userName=(ROOT|ID) SET PASSWORD password=STRING_LITERAL #alterUser diff --git a/server/src/main/java/org/apache/iotdb/db/mqtt/PublishHandler.java b/server/src/main/java/org/apache/iotdb/db/mqtt/PublishHandler.java index 57cb3aa..fcbaef2 100644 --- a/server/src/main/java/org/apache/iotdb/db/mqtt/PublishHandler.java +++ b/server/src/main/java/org/apache/iotdb/db/mqtt/PublishHandler.java @@ -23,6 +23,8 @@ import io.netty.buffer.ByteBuf; import io.netty.handler.codec.mqtt.MqttQoS; import org.apache.iotdb.db.conf.IoTDBConfig; import org.apache.iotdb.db.conf.IoTDBDescriptor; +import org.apache.iotdb.db.exception.StorageEngineException; +import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException; import org.apache.iotdb.db.exception.query.QueryProcessException; import org.apache.iotdb.db.qp.executor.IPlanExecutor; import org.apache.iotdb.db.qp.executor.PlanExecutor; @@ -92,7 +94,7 @@ public class PublishHandler extends AbstractInterceptHandler { boolean status; try { status = executeNonQuery(plan); - } catch (QueryProcessException e) { + } catch (QueryProcessException | StorageGroupNotSetException | StorageEngineException e ) { throw new RuntimeException(e); } @@ -100,7 +102,8 @@ public class PublishHandler extends AbstractInterceptHandler { } } - private boolean executeNonQuery(PhysicalPlan plan) throws QueryProcessException { + private boolean executeNonQuery(PhysicalPlan plan) + throws QueryProcessException, StorageGroupNotSetException, StorageEngineException { if (IoTDBDescriptor.getInstance().getConfig().isReadOnly()) { throw new QueryProcessException( "Current system mode is read-only, does not support non-query operation"); diff --git a/server/src/main/java/org/apache/iotdb/db/qp/Planner.java b/server/src/main/java/org/apache/iotdb/db/qp/Planner.java index 15a3a14..fce62a7 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/Planner.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/Planner.java @@ -95,6 +95,8 @@ public class Planner { case LOAD_FILES: case REMOVE_FILE: case MOVE_FILE: + case FLUSH: + case MERGE: return operator; case QUERY: case UPDATE: diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java index 3e4f8b8..2183923 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java @@ -239,6 +239,7 @@ public class PlanExecutor implements IPlanExecutor { return true; case MERGE: operateMerge((MergePlan) plan); + return true; default: throw new UnsupportedOperationException( String.format("operation %s is not supported", plan.getOperatorType())); diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/RootOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/RootOperator.java index edb44ed..adfa8c7 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/logical/RootOperator.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/RootOperator.java @@ -26,6 +26,5 @@ public abstract class RootOperator extends Operator { public RootOperator(int tokenIntType) { super(tokenIntType); - operatorType = OperatorType.MERGE; } } diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java index 407019e..16b9a5f 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/MergeOperator.java @@ -24,5 +24,6 @@ public class MergeOperator extends RootOperator { public MergeOperator(int tokenIntType) { super(tokenIntType); + operatorType = OperatorType.MERGE; } } diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java index 58f15f8..4903884 100644 --- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java +++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java @@ -898,7 +898,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext { } private boolean executeNonQuery(PhysicalPlan plan) - throws QueryProcessException, StorageGroupNotSetException { + throws QueryProcessException, StorageGroupNotSetException, StorageEngineException { if (IoTDBDescriptor.getInstance().getConfig().isReadOnly()) { throw new QueryProcessException( "Current system mode is read-only, does not support non-query operation");
