diff --git a/src/planner/Maintain.h b/src/planner/Maintain.h index f28a8e61bfe176d25c48cb221c1e0908ca860c06..55e7c8989c90b52cddd888b8f31f96f4501de76a 100644 --- a/src/planner/Maintain.h +++ b/src/planner/Maintain.h @@ -434,7 +434,7 @@ private: std::vector<std::string> fields, bool ifNotExists) : CreateIndexNode(id, input, - Kind::kCreateEdge, + Kind::kCreateTagIndex, std::move(tagName), std::move(indexName), std::move(fields), @@ -464,7 +464,7 @@ private: std::vector<std::string> fields, bool ifNotExists) : CreateIndexNode(id, input, - Kind::kCreateEdge, + Kind::kCreateEdgeIndex, std::move(edgeName), std::move(indexName), std::move(fields), diff --git a/src/validator/MaintainValidator.cpp b/src/validator/MaintainValidator.cpp index af10e4732f099a681afbeb744bf09ce1dd8484c6..b8f246b65eaf2f044efe911d665e6aa451005698 100644 --- a/src/validator/MaintainValidator.cpp +++ b/src/validator/MaintainValidator.cpp @@ -321,10 +321,14 @@ Status CreateTagIndexValidator::validateImpl() { auto status = Status::OK(); do { - auto schema = vctx_->getSchema(name_); - if (schema == nullptr) { - status = Status::Error("Tag %s not exist", name_.c_str()); - break; + auto tagStatus = qctx_->schemaMng()->toTagID(space_.id, name_); + if (!tagStatus.ok()) { + return tagStatus.status(); + } + + auto schema_ = qctx_->schemaMng()->getTagSchema(space_.id, tagStatus.value()); + if (schema_ == nullptr) { + return Status::Error("No schema found for '%s'", name_.c_str()); } status = IndexUtil::validateColumns(fields_); @@ -359,10 +363,14 @@ Status CreateEdgeIndexValidator::validateImpl() { auto status = Status::OK(); do { - auto schema = vctx_->getSchema(name_); - if (schema == nullptr) { - status = Status::Error("Edge %s not exist", name_.c_str()); - break; + auto edgeStatus = qctx_->schemaMng()->toEdgeType(space_.id, name_); + if (!edgeStatus.ok()) { + return edgeStatus.status(); + } + + auto schema_ = qctx_->schemaMng()->getEdgeSchema(space_.id, edgeStatus.value()); + if (schema_ == nullptr) { + return Status::Error("No schema found for '%s'", name_.c_str()); } status = IndexUtil::validateColumns(fields_); diff --git a/src/validator/Validator.cpp b/src/validator/Validator.cpp index da972edccab00328bcdd6c6ded4d185231defb9c..f54d58b1acab6c286aac4460ee550f1e7a4dbd2f 100644 --- a/src/validator/Validator.cpp +++ b/src/validator/Validator.cpp @@ -164,8 +164,6 @@ std::unique_ptr<Validator> Validator::makeValidator(Sentence* sentence, QueryCon return std::make_unique<ShowConfigsValidator>(sentence, context); case Sentence::Kind::kFindPath: return std::make_unique<FindPathValidator>(sentence, context); - case Sentence::Kind::kMatch: - case Sentence::Kind::kUnknown: case Sentence::Kind::kCreateTagIndex: return std::make_unique<CreateTagIndexValidator>(sentence, context); case Sentence::Kind::kShowCreateTagIndex: @@ -190,6 +188,8 @@ std::unique_ptr<Validator> Validator::makeValidator(Sentence* sentence, QueryCon return std::make_unique<RebuildEdgeIndexValidator>(sentence, context); case Sentence::Kind::kDropEdgeIndex: return std::make_unique<DropEdgeIndexValidator>(sentence, context); + case Sentence::Kind::kMatch: + case Sentence::Kind::kUnknown: case Sentence::Kind::kLookup: case Sentence::Kind::kDownload: case Sentence::Kind::kIngest: