diff --git a/src/parser/parser.yy b/src/parser/parser.yy index e8b422e23bf0e35e817954770af1bac8d57618cf..821852f2ee0027101334831930d8c398966b655c 100644 --- a/src/parser/parser.yy +++ b/src/parser/parser.yy @@ -359,10 +359,6 @@ base_expression | BOOL { $$ = new ConstantExpression($1); } - | name_label { - $$ = new ConstantExpression(*$1); - delete $1; - } | KW_NULL { $$ = new ConstantExpression(NullType::__NULL__); } diff --git a/src/parser/test/ParserTest.cpp b/src/parser/test/ParserTest.cpp index 6cab13054f0bdf75176318603db25b48edceae99..7b1fc686f5cee0daea487de61f11150c12f9c312 100644 --- a/src/parser/test/ParserTest.cpp +++ b/src/parser/test/ParserTest.cpp @@ -1624,7 +1624,7 @@ TEST(Parser, ConfigOperation) { } { GQLParser parser; - std::string query = "UPDATE CONFIGS storage:name=value"; + std::string query = "UPDATE CONFIGS storage:name=\"value\""; auto result = parser.parse(query); ASSERT_TRUE(result.ok()) << result.status(); } @@ -2020,4 +2020,21 @@ TEST(Parser, UseReservedKeyword) { ASSERT_TRUE(result.ok()); } } + +TEST(Parser, IssueLabelAsExpression) { + // name label is not a valid expression, it's not value + { + GQLParser parser; + std::string query = "INSERT VERTEX person(name) VALUES \"1\":(name_label)"; + auto result = parser.parse(query); + ASSERT_FALSE(result.ok()); + } + { + GQLParser parser; + std::string query = "INSERT VERTEX person(name) VALUES \"1\":(`name_label`)"; + auto result = parser.parse(query); + ASSERT_FALSE(result.ok()); + } +} + } // namespace nebula