@@ -670,6 +670,26 @@ TEST_F(RdbTest, SBF) {
670
670
EXPECT_THAT (Run ({" BF.EXISTS" , " k" , " 1" }), IntArg (1 ));
671
671
}
672
672
673
+ TEST_F (RdbTest, RestoreSearchIndexNameStartingWithColon) {
674
+ // Create an index with a name that starts with ':' and add a sample document
675
+ EXPECT_EQ (Run ({" FT.CREATE" , " :Order:index" , " ON" , " HASH" , " PREFIX" , " 1" , " :Order:" , " SCHEMA" ,
676
+ " customer_name" , " AS" , " customer_name" , " TEXT" , " status" , " AS" , " status" , " TAG" }),
677
+ " OK" );
678
+
679
+ EXPECT_THAT (Run ({" HSET" , " :Order:1" , " customer_name" , " John" , " status" , " new" }), IntArg (2 ));
680
+
681
+ // Save and reload to ensure the index definition is persisted and restored
682
+ EXPECT_EQ (Run ({" save" , " df" }), " OK" );
683
+ EXPECT_EQ (Run ({" debug" , " reload" }), " OK" );
684
+
685
+ // Verify a basic search works on the restored index
686
+ auto search = Run ({" FT.SEARCH" , " :Order:index" , " John" });
687
+ ASSERT_THAT (search, ArgType (RespExpr::ARRAY));
688
+ const auto & v = search.GetVec ();
689
+ ASSERT_FALSE (v.empty ());
690
+ EXPECT_THAT (v.front (), IntArg (1 ));
691
+ }
692
+
673
693
TEST_F (RdbTest, DflyLoadAppend) {
674
694
// Create an RDB with (k1,1) value in it saved as `filename`
675
695
EXPECT_EQ (Run ({" set" , " k1" , " 1" }), " OK" );
0 commit comments