@@ -1060,7 +1060,7 @@ TEST_F(SearchFamilyTest, AggregateGroupByReduceSort) {
1060
1060
" SORTBY" , " 1" , " count" });
1061
1061
// clang-format on
1062
1062
1063
- EXPECT_THAT (resp, ErrArg (" bad arguments for SORTBY: specified invalid number of strings " ));
1063
+ EXPECT_THAT (resp, ErrArg (" SORTBY field name 'count' must start with '@' " ));
1064
1064
}
1065
1065
1066
1066
TEST_F (SearchFamilyTest, AggregateLoadGroupBy) {
@@ -1700,7 +1700,7 @@ TEST_F(SearchFamilyTest, AggregateResultFields) {
1700
1700
EXPECT_THAT (resp, IsUnordArrayWithSize (IsMap (" a" , " 1" ), IsMap (" a" , " 4" ), IsMap (" a" , " 7" )));
1701
1701
absl::SetFlag (&FLAGS_search_reject_legacy_field, true );
1702
1702
resp = Run ({" FT.AGGREGATE" , " i1" , " *" , " SORTBY" , " 1" , " a" });
1703
- EXPECT_THAT (resp, ErrArg (" bad arguments for SORTBY: specified invalid number of strings " ));
1703
+ EXPECT_THAT (resp, ErrArg (" SORTBY field name 'a' must start with '@' " ));
1704
1704
1705
1705
absl::SetFlag (&FLAGS_search_reject_legacy_field, false );
1706
1706
resp = Run ({" FT.AGGREGATE" , " i1" , " *" , " LOAD" , " 1" , " @b" , " SORTBY" , " 1" , " a" });
@@ -1709,7 +1709,7 @@ TEST_F(SearchFamilyTest, AggregateResultFields) {
1709
1709
IsMap (" b" , " \" 8\" " , " a" , " 7" )));
1710
1710
absl::SetFlag (&FLAGS_search_reject_legacy_field, true );
1711
1711
resp = Run ({" FT.AGGREGATE" , " i1" , " *" , " LOAD" , " 1" , " @b" , " SORTBY" , " 1" , " a" });
1712
- EXPECT_THAT (resp, ErrArg (" bad arguments for SORTBY: specified invalid number of strings " ));
1712
+ EXPECT_THAT (resp, ErrArg (" SORTBY field name 'a' must start with '@' " ));
1713
1713
1714
1714
absl::SetFlag (&FLAGS_search_reject_legacy_field, false );
1715
1715
resp = Run ({" FT.AGGREGATE" , " i1" , " *" , " SORTBY" , " 1" , " a" , " GROUPBY" , " 2" , " @b" , " @a" , " REDUCE" ,
@@ -1720,7 +1720,7 @@ TEST_F(SearchFamilyTest, AggregateResultFields) {
1720
1720
absl::SetFlag (&FLAGS_search_reject_legacy_field, true );
1721
1721
resp = Run ({" FT.AGGREGATE" , " i1" , " *" , " SORTBY" , " 1" , " a" , " GROUPBY" , " 2" , " @b" , " @a" , " REDUCE" ,
1722
1722
" COUNT" , " 0" , " AS" , " count" });
1723
- EXPECT_THAT (resp, ErrArg (" bad arguments for SORTBY: specified invalid number of strings " ));
1723
+ EXPECT_THAT (resp, ErrArg (" SORTBY field name 'a' must start with '@' " ));
1724
1724
1725
1725
Run ({" JSON.SET" , " j4" , " ." , R"( {"id":1, "number":4})" });
1726
1726
Run ({" JSON.SET" , " j5" , " ." , R"( {"id":2})" });
@@ -1879,6 +1879,29 @@ TEST_F(SearchFamilyTest, AggregateSortByParsingErrors) {
1879
1879
EXPECT_THAT (resp, ErrArg (kInvalidIntErr ));
1880
1880
}
1881
1881
1882
+ TEST_F (SearchFamilyTest, AggregateSortByParsingErrorsWithoutAt) {
1883
+ Run ({" JSON.SET" , " j1" , " $" , R"( {"name": "first", "number": 1200, "group": "first"})" });
1884
+
1885
+ Run ({" FT.CREATE" , " index" , " ON" , " JSON" , " SCHEMA" , " $.name" , " AS" , " name" , " TEXT" , " $.number" ,
1886
+ " AS" , " number" , " NUMERIC" , " $.group" , " AS" , " group" , " TAG" });
1887
+
1888
+ // Test SORTBY with field name without '@'
1889
+ auto resp = Run ({" FT.AGGREGATE" , " index" , " *" , " SORTBY" , " 1" , " name" });
1890
+ EXPECT_THAT (resp, ErrArg (" SORTBY field name 'name' must start with '@'" ));
1891
+
1892
+ // Test SORTBY with field name without '@' and multiple sort fields
1893
+ resp = Run ({" FT.AGGREGATE" , " index" , " *" , " SORTBY" , " 3" , " name" , " @number" , " DESC" });
1894
+ EXPECT_THAT (resp, ErrArg (" SORTBY field name 'name' must start with '@'" ));
1895
+
1896
+ // Test SORTBY with field name without '@' and MAX option
1897
+ resp = Run ({" FT.AGGREGATE" , " index" , " *" , " SORTBY" , " 1" , " name" , " MAX" , " 1" });
1898
+ EXPECT_THAT (resp, ErrArg (" SORTBY field name 'name' must start with '@'" ));
1899
+
1900
+ // Check that the old error still works for wrong number of args
1901
+ resp = Run ({" FT.AGGREGATE" , " index" , " *" , " SORTBY" , " 2" , " @name" });
1902
+ EXPECT_THAT (resp, ErrArg (" bad arguments for SORTBY: specified invalid number of strings" ));
1903
+ }
1904
+
1882
1905
TEST_F (SearchFamilyTest, InvalidSearchOptions) {
1883
1906
Run ({" JSON.SET" , " j1" , " ." , R"( {"field1":"first","field2":"second"})" });
1884
1907
Run ({" FT.CREATE" , " idx" , " ON" , " JSON" , " SCHEMA" , " $.field1" , " AS" , " field1" , " TEXT" , " $.field2" ,
0 commit comments