Don't strip queries after execute for CREATE TRIGGER only (#245)
This commit is contained in:
@@ -353,4 +353,42 @@ TEST(QueryStripper, QuerySemicolonEndingQuery2) {
|
||||
StrippedQuery stripped("RETURN 42 ;");
|
||||
EXPECT_THAT(stripped.named_expressions(), UnorderedElementsAre(Pair(1, "42")));
|
||||
}
|
||||
|
||||
TEST(QueryStripper, CreateTriggerQuery) {
|
||||
constexpr std::string_view execute_query{
|
||||
" MATCH (execute:Node) RETURN / *test comment */ execute \"test\""};
|
||||
{
|
||||
SCOPED_TRACE("Everything after EXECUTE keyword in CREATE TRIGGER should not be stripped");
|
||||
|
||||
{
|
||||
SCOPED_TRACE("Query starting with CREATE keyword");
|
||||
StrippedQuery stripped(
|
||||
fmt::format("CREATE TRIGGER execute /*test*/ ON CREATE BEFORE COMMIT EXECUTE{}", execute_query));
|
||||
EXPECT_EQ(stripped.query(),
|
||||
fmt::format("CREATE TRIGGER execute ON CREATE BEFORE COMMIT EXECUTE {}", execute_query));
|
||||
}
|
||||
|
||||
{
|
||||
SCOPED_TRACE("Query starting with comments and spaces");
|
||||
StrippedQuery stripped(fmt::format(
|
||||
"/*comment*/ \n\n //other comment\nCREATE TRIGGER execute AFTER COMMIT EXECUTE{}", execute_query));
|
||||
EXPECT_EQ(stripped.query(), fmt::format("CREATE TRIGGER execute AFTER COMMIT EXECUTE {}", execute_query));
|
||||
}
|
||||
|
||||
{
|
||||
SCOPED_TRACE("Query with comments and spaces between CREATE and TRIGGER");
|
||||
StrippedQuery stripped(fmt::format(
|
||||
"/*comment*/ \n\n //other comment\nCREATE //some comment \n TRIGGER execute AFTER COMMIT EXECUTE{}",
|
||||
execute_query));
|
||||
EXPECT_EQ(stripped.query(), fmt::format("CREATE TRIGGER execute AFTER COMMIT EXECUTE {}", execute_query));
|
||||
}
|
||||
}
|
||||
{
|
||||
SCOPED_TRACE("Execute keyword should still be allowed in other queries");
|
||||
StrippedQuery stripped("MATCH (execute:Node) //comment \n RETURN /* test comment */ execute");
|
||||
EXPECT_EQ(stripped.query(), "MATCH ( execute : Node ) RETURN execute");
|
||||
EXPECT_THAT(stripped.named_expressions(), UnorderedElementsAre(Pair(7, "execute")));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user