Skip to content
This repository has been archived by the owner on Dec 1, 2022. It is now read-only.

Commit

Permalink
Add toString and test.
Browse files Browse the repository at this point in the history
  • Loading branch information
CPWstatic committed Jun 23, 2021
1 parent b7c4bdd commit 346d3f1
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 9 deletions.
23 changes: 23 additions & 0 deletions src/parser/AdminSentences.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -369,4 +369,27 @@ std::string ShowSessionsSentence::toString() const {
return "SHOW SESSIONS";
}

std::string ShowQueriesSentence::toString() const {
std::string buf = "SHOW";
if (isAll()) {
buf += " ALL";
}
buf += " QUERIES";
return buf;
}

std::string KillQuerySentence::toString() const {
std::string buf = "KILL QUERY (";
if (sessionId() > 0) {
buf += "session=";
buf += folly::to<std::string>(sessionId());
buf += ", ";
}
if (epId() > 0) {
buf += "plan=";
buf += folly::to<std::string>(epId());
}
buf += ")";
return buf;
}
} // namespace nebula
10 changes: 2 additions & 8 deletions src/parser/AdminSentences.h
Original file line number Diff line number Diff line change
Expand Up @@ -731,10 +731,7 @@ class ShowQueriesSentence final : public Sentence {
return topN_;
}

std::string toString() const override {
// TODO
return "";
}
std::string toString() const override;

private:
bool isAll_{false};
Expand Down Expand Up @@ -776,10 +773,7 @@ class KillQuerySentence final : public Sentence {
return identifier_->epId();
}

std::string toString() const override {
// TODO
return "";
}
std::string toString() const override;

private:
std::unique_ptr<QueryUniqueIdentifier> identifier_;
Expand Down
42 changes: 42 additions & 0 deletions src/parser/test/ParserTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2766,6 +2766,10 @@ TEST(Parser, FullTextServiceTest) {
auto result = parse(query);
ASSERT_FALSE(result.ok());
}
}


TEST(Parser, SessionTest) {
{
GQLParser parser;
std::string query = "SHOW SESSIONS";
Expand Down Expand Up @@ -2807,4 +2811,42 @@ TEST(Parser, JobTest) {
checkTest("REBUILD EDGE INDEX name_index, age_index",
"REBUILD EDGE INDEX name_index,age_index");
}

TEST(Parser, ShowAndKillQueryTest) {
{
GQLParser parser;
std::string query = "SHOW QUERIES";
auto result = parser.parse(query);
ASSERT_TRUE(result.ok()) << result.status();
ASSERT_EQ(result.value()->toString(), "SHOW QUERIES");
}
{
GQLParser parser;
std::string query = "SHOW ALL QUERIES";
auto result = parser.parse(query);
ASSERT_TRUE(result.ok()) << result.status();
ASSERT_EQ(result.value()->toString(), "SHOW ALL QUERIES");
}
{
GQLParser parser;
std::string query = "KILL QUERY (plan=123)";
auto result = parser.parse(query);
ASSERT_TRUE(result.ok()) << result.status();
ASSERT_EQ(result.value()->toString(), "KILL QUERY (plan=123)");
}
{
GQLParser parser;
std::string query = "KILL QUERY (session=123, plan=123)";
auto result = parser.parse(query);
ASSERT_TRUE(result.ok()) << result.status();
ASSERT_EQ(result.value()->toString(), "KILL QUERY (session=123, plan=123)");
}
{
GQLParser parser;
std::string query = "KILL QUERY (plan=123, session=123)";
auto result = parser.parse(query);
ASSERT_TRUE(result.ok()) << result.status();
ASSERT_EQ(result.value()->toString(), "KILL QUERY (session=123, plan=123)");
}
}
} // namespace nebula
12 changes: 12 additions & 0 deletions src/parser/test/ScannerTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,18 @@ TEST(Scanner, Basic) {
CHECK_SEMANTIC_TYPE("SESSION", TokenType::KW_SESSION),
CHECK_SEMANTIC_TYPE("Session", TokenType::KW_SESSION),
CHECK_SEMANTIC_TYPE("session", TokenType::KW_SESSION),
CHECK_SEMANTIC_TYPE("QUERY", TokenType::KW_QUERY),
CHECK_SEMANTIC_TYPE("Query", TokenType::KW_QUERY),
CHECK_SEMANTIC_TYPE("query", TokenType::KW_QUERY),
CHECK_SEMANTIC_TYPE("QUERIES", TokenType::KW_QUERIES),
CHECK_SEMANTIC_TYPE("Queries", TokenType::KW_QUERIES),
CHECK_SEMANTIC_TYPE("queries", TokenType::KW_QUERIES),
CHECK_SEMANTIC_TYPE("KILL", TokenType::KW_KILL),
CHECK_SEMANTIC_TYPE("Kill", TokenType::KW_KILL),
CHECK_SEMANTIC_TYPE("kill", TokenType::KW_KILL),
CHECK_SEMANTIC_TYPE("TOP", TokenType::KW_TOP),
CHECK_SEMANTIC_TYPE("Top", TokenType::KW_TOP),
CHECK_SEMANTIC_TYPE("top", TokenType::KW_TOP),

CHECK_SEMANTIC_TYPE("_type", TokenType::TYPE_PROP),
CHECK_SEMANTIC_TYPE("_id", TokenType::ID_PROP),
Expand Down
1 change: 0 additions & 1 deletion src/service/PermissionCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,6 @@ Status PermissionCheck::permissionCheck(ClientSession *session,
}
case Sentence::Kind::kShowQueries:
case Sentence::Kind::kKillQuery: {
// TODO
return Status::OK();
}
}
Expand Down

0 comments on commit 346d3f1

Please sign in to comment.