json path memory leak bugfix
This commit is contained in:
		| @ -64,42 +64,43 @@ TEST_F(TestJsonPath, test_is_mysql_terminator_mysql) | ||||
| // 测试 basicNode的构造函数 | ||||
| TEST_F(TestJsonPath, test_create_basic_node) | ||||
| { | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   // ** | ||||
|   ObJsonPathBasicNode temp1; | ||||
|   ObJsonPathBasicNode temp1(&allocator); | ||||
|   ASSERT_EQ(0, temp1.init(JPN_WILDCARD_ELLIPSIS, true)); | ||||
|   ASSERT_EQ(JPN_WILDCARD_ELLIPSIS, temp1.get_node_type()); | ||||
|   ASSERT_EQ(true, temp1.get_node_content().is_had_wildcard_); | ||||
|   ASSERT_EQ(true, temp1.node_content_.is_had_wildcard_); | ||||
|   // .* | ||||
|   ObJsonPathBasicNode temp2; | ||||
|   ObJsonPathBasicNode temp2(&allocator); | ||||
|   ASSERT_EQ(0, temp2.init(JPN_MEMBER_WILDCARD, true)); | ||||
|   ASSERT_EQ(JPN_MEMBER_WILDCARD, temp2.get_node_type()); | ||||
|   ASSERT_EQ(true, temp2.get_node_content().is_had_wildcard_); | ||||
|   ASSERT_EQ(true, temp2.node_content_.is_had_wildcard_); | ||||
|   // [*] | ||||
|   ObJsonPathBasicNode temp3; | ||||
|   ObJsonPathBasicNode temp3(&allocator); | ||||
|   ASSERT_EQ(0, temp3.init(JPN_ARRAY_CELL_WILDCARD, true)); | ||||
|   ASSERT_EQ(JPN_ARRAY_CELL_WILDCARD, temp3.get_node_type()); | ||||
|   ASSERT_EQ(true, temp3.get_node_content().is_had_wildcard_); | ||||
|   ASSERT_EQ(true, temp3.node_content_.is_had_wildcard_); | ||||
|   // [1] | ||||
|   ObJsonPathBasicNode temp4(1,false); | ||||
|   ObJsonPathBasicNode temp4(&allocator,1,false); | ||||
|   ASSERT_EQ(JPN_ARRAY_CELL, temp4.get_node_type()); | ||||
|   ASSERT_EQ(1, temp4.get_node_content().array_cell_.index_); | ||||
|   ASSERT_EQ(false, temp4.get_node_content().array_cell_.is_index_from_end_); | ||||
|   ASSERT_EQ(1, temp4.node_content_.array_cell_.index_); | ||||
|   ASSERT_EQ(false, temp4.node_content_.array_cell_.is_index_from_end_); | ||||
|   // [last-3 to 6] | ||||
|   ObJsonPathBasicNode temp5(3, true, 6, false); | ||||
|   ObJsonPathBasicNode temp5(&allocator,3, true, 6, false); | ||||
|   ASSERT_EQ(JPN_ARRAY_RANGE, temp5.get_node_type()); | ||||
|   ASSERT_EQ(3, temp5.get_node_content().array_range_.first_index_); | ||||
|   ASSERT_EQ(true, temp5.get_node_content().array_range_.is_first_index_from_end_); | ||||
|   ASSERT_EQ(6, temp5.get_node_content().array_range_.last_index_); | ||||
|   ASSERT_EQ(false, temp5.get_node_content().array_range_.is_last_index_from_end_); | ||||
|   ASSERT_EQ(3, temp5.node_content_.array_range_.first_index_); | ||||
|   ASSERT_EQ(true, temp5.node_content_.array_range_.is_first_index_from_end_); | ||||
|   ASSERT_EQ(6, temp5.node_content_.array_range_.last_index_); | ||||
|   ASSERT_EQ(false, temp5.node_content_.array_range_.is_last_index_from_end_); | ||||
|   // .keyname | ||||
|   ObString kn("keyname"); | ||||
|   ObJsonPathBasicNode temp6(kn); | ||||
|   ObJsonPathBasicNode temp6(&allocator,kn); | ||||
|   ASSERT_EQ(JPN_MEMBER, temp6.get_node_type()); | ||||
|   std::cout<<temp6.get_node_content().member_.object_name_<<std::endl; | ||||
|   std::cout<<temp6.node_content_.member_.object_name_<<std::endl; | ||||
|  | ||||
|   ObJsonPathNode *fa1 = &temp1; | ||||
|   ASSERT_EQ(JPN_WILDCARD_ELLIPSIS, (static_cast<ObJsonPathBasicNode *> (fa1))->get_node_type()); | ||||
|   ASSERT_EQ(true, fa1->get_node_content().is_had_wildcard_); | ||||
|   ASSERT_EQ(true, fa1->node_content_.is_had_wildcard_); | ||||
| } | ||||
|  | ||||
| // 测试 append函数 | ||||
| @ -109,60 +110,60 @@ TEST_F(TestJsonPath, test_append) | ||||
|   int ret = OB_SUCCESS; | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   ObJsonPath test_path(&allocator); | ||||
|   ObJsonPathBasicNode temp1; | ||||
|   ObJsonPathBasicNode temp1(&allocator); | ||||
|   ASSERT_EQ(0, temp1.init(JPN_WILDCARD_ELLIPSIS, true)); | ||||
|   ObJsonPathNode *fa1 = &temp1; | ||||
|   ret = test_path.append(fa1); | ||||
|   ASSERT_EQ(OB_SUCCESS,ret); | ||||
|   ASSERT_EQ(JPN_WILDCARD_ELLIPSIS, test_path.path_nodes_[0]->get_node_type()); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[0]->get_node_content().is_had_wildcard_); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[0]->node_content_.is_had_wildcard_); | ||||
|  | ||||
|   // append .* | ||||
|   ObJsonPathBasicNode temp2; | ||||
|   ObJsonPathBasicNode temp2(&allocator); | ||||
|   ASSERT_EQ(0, temp2.init(JPN_MEMBER_WILDCARD, true)); | ||||
|   ObJsonPathNode *fa2 = &temp2; | ||||
|   ret = test_path.append(fa2); | ||||
|   ASSERT_EQ(OB_SUCCESS,ret); | ||||
|   ASSERT_EQ(JPN_MEMBER_WILDCARD, test_path.path_nodes_[1]->get_node_type()); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[1]->get_node_content().is_had_wildcard_); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[1]->node_content_.is_had_wildcard_); | ||||
|  | ||||
|   // append [*] | ||||
|   ObJsonPathBasicNode temp3; | ||||
|   ObJsonPathBasicNode temp3(&allocator); | ||||
|   ASSERT_EQ(0, temp3.init(JPN_ARRAY_CELL_WILDCARD, true)); | ||||
|   ObJsonPathNode *fa3 = &temp3; | ||||
|   ret = test_path.append(fa3); | ||||
|   ASSERT_EQ(OB_SUCCESS,ret); | ||||
|   ASSERT_EQ(JPN_ARRAY_CELL_WILDCARD, test_path.path_nodes_[2]->get_node_type()); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[2]->get_node_content().is_had_wildcard_); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[2]->node_content_.is_had_wildcard_); | ||||
|  | ||||
|   // append array_cell | ||||
|   ObJsonPathBasicNode temp4(1,false); | ||||
|   ObJsonPathBasicNode temp4(&allocator,1,false); | ||||
|   ObJsonPathNode *fa4 = &temp4; | ||||
|   ret = test_path.append(fa4); | ||||
|   ASSERT_EQ(OB_SUCCESS,ret); | ||||
|   ASSERT_EQ(JPN_ARRAY_CELL, test_path.path_nodes_[3]->get_node_type()); | ||||
|   ASSERT_EQ(1, test_path.path_nodes_[3]->get_node_content().array_cell_.index_); | ||||
|   ASSERT_EQ(false, test_path.path_nodes_[3]->get_node_content().array_cell_.is_index_from_end_); | ||||
|   ASSERT_EQ(1, test_path.path_nodes_[3]->node_content_.array_cell_.index_); | ||||
|   ASSERT_EQ(false, test_path.path_nodes_[3]->node_content_.array_cell_.is_index_from_end_); | ||||
|  | ||||
|   // [last-3 to 6] | ||||
|   ObJsonPathBasicNode temp5(3, true, 6, false); | ||||
|   ObJsonPathBasicNode temp5(&allocator,3, true, 6, false); | ||||
|   ObJsonPathNode *fa5 = &temp5; | ||||
|   ret = test_path.append(fa5); | ||||
|   ASSERT_EQ(OB_SUCCESS,ret); | ||||
|   ASSERT_EQ(JPN_ARRAY_RANGE, test_path.path_nodes_[4]->get_node_type()); | ||||
|   ASSERT_EQ(3, test_path.path_nodes_[4]->get_node_content().array_range_.first_index_); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[4]->get_node_content().array_range_.is_first_index_from_end_); | ||||
|   ASSERT_EQ(6, test_path.path_nodes_[4]->get_node_content().array_range_.last_index_); | ||||
|   ASSERT_EQ(false, test_path.path_nodes_[4]->get_node_content().array_range_.is_last_index_from_end_); | ||||
|   ASSERT_EQ(3, test_path.path_nodes_[4]->node_content_.array_range_.first_index_); | ||||
|   ASSERT_EQ(true, test_path.path_nodes_[4]->node_content_.array_range_.is_first_index_from_end_); | ||||
|   ASSERT_EQ(6, test_path.path_nodes_[4]->node_content_.array_range_.last_index_); | ||||
|   ASSERT_EQ(false, test_path.path_nodes_[4]->node_content_.array_range_.is_last_index_from_end_); | ||||
|  | ||||
|   // .keyname | ||||
|   ObString kn("keyname"); | ||||
|   ObJsonPathBasicNode temp6(kn); | ||||
|   ObJsonPathBasicNode temp6(&allocator,kn); | ||||
|   ObJsonPathNode *fa6 = &temp6; | ||||
|   ret = test_path.append(fa6); | ||||
|   ASSERT_EQ(OB_SUCCESS,ret); | ||||
|   ASSERT_EQ(JPN_MEMBER, test_path.path_nodes_[5]->get_node_type()); | ||||
|   std::cout<<"6: "<<test_path.path_nodes_[5]->get_node_content().member_.object_name_<<std::endl; | ||||
|   std::cout<<"6: "<<test_path.path_nodes_[5]->node_content_.member_.object_name_<<std::endl; | ||||
| } | ||||
|  | ||||
| // 测试 parse_array_index()函数,用于得到array_index(包括last和-的处理) | ||||
| @ -213,10 +214,10 @@ TEST_F(TestJsonPath, test_array_cell_node) | ||||
|   // 只有一个节点 | ||||
|   ASSERT_EQ(1, test_path.path_node_cnt()); | ||||
|   ASSERT_EQ(JPN_MULTIPLE_ARRAY,test_path.path_nodes_[0]->get_node_type()); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->get_node_content().multi_array_[0]->first_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->get_node_content().multi_array_[0]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->get_node_content().multi_array_[0]->last_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->get_node_content().multi_array_[0]->is_last_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->node_content_.multi_array_[0]->first_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->node_content_.multi_array_[0]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->node_content_.multi_array_[0]->last_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->node_content_.multi_array_[0]->is_last_index_from_end_); | ||||
| } | ||||
|  | ||||
| // 测试能否正确解析array_range_node | ||||
| @ -236,10 +237,10 @@ TEST_F(TestJsonPath, test_array_range_node) | ||||
|   // 只有一个节点 | ||||
|   ASSERT_EQ(1, test_path.path_node_cnt()); | ||||
|   ASSERT_EQ(JPN_MULTIPLE_ARRAY,test_path.path_nodes_[0]->get_node_type()); | ||||
|   ASSERT_EQ(1, test_path.path_nodes_[0]->get_node_content().multi_array_[0]->first_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->get_node_content().multi_array_[0]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->get_node_content().multi_array_[0]->last_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->get_node_content().multi_array_[0]->is_last_index_from_end_); | ||||
|   ASSERT_EQ(1, test_path.path_nodes_[0]->node_content_.multi_array_[0]->first_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->node_content_.multi_array_[0]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->node_content_.multi_array_[0]->last_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->node_content_.multi_array_[0]->is_last_index_from_end_); | ||||
| } | ||||
|  | ||||
| TEST_F(TestJsonPath, test_multi_array_node) | ||||
| @ -258,17 +259,17 @@ TEST_F(TestJsonPath, test_multi_array_node) | ||||
|   // 只有一个节点 | ||||
|   ASSERT_EQ(1, test_path.path_node_cnt()); | ||||
|   ASSERT_EQ(JPN_MULTIPLE_ARRAY,test_path.path_nodes_[0]->get_node_type()); | ||||
|   ASSERT_EQ(2, test_path.path_nodes_[0]->get_node_content().multi_array_.size()); | ||||
|   ASSERT_EQ(2, test_path.path_nodes_[0]->node_content_.multi_array_.size()); | ||||
|  | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->get_node_content().multi_array_[0]->first_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->get_node_content().multi_array_[0]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->get_node_content().multi_array_[0]->last_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->get_node_content().multi_array_[0]->is_last_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->node_content_.multi_array_[0]->first_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->node_content_.multi_array_[0]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->node_content_.multi_array_[0]->last_index_); | ||||
|   ASSERT_EQ(true,test_path.path_nodes_[0]->node_content_.multi_array_[0]->is_last_index_from_end_); | ||||
|  | ||||
|   ASSERT_EQ(1, test_path.path_nodes_[0]->get_node_content().multi_array_[1]->first_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->get_node_content().multi_array_[1]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->get_node_content().multi_array_[1]->last_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->get_node_content().multi_array_[1]->is_last_index_from_end_); | ||||
|   ASSERT_EQ(1, test_path.path_nodes_[0]->node_content_.multi_array_[1]->first_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->node_content_.multi_array_[1]->is_first_index_from_end_); | ||||
|   ASSERT_EQ(10, test_path.path_nodes_[0]->node_content_.multi_array_[1]->last_index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[0]->node_content_.multi_array_[1]->is_last_index_from_end_); | ||||
| } | ||||
|  | ||||
| TEST_F(TestJsonPath, test_filter_node) | ||||
| @ -295,15 +296,6 @@ TEST_F(TestJsonPath, test_filter_node) | ||||
|   } | ||||
|   ASSERT_EQ(OB_SUCCESS, ret); | ||||
|   std::cout<<test_path.path_nodes_[0]->get_node_type()<<std::endl; | ||||
|   ObPathNodeContent ans =  test_path.path_nodes_[0]->get_node_content(); | ||||
|   std::cout<<ans.comp_.left_type_<<std::endl; | ||||
|   std::cout<<ans.comp_.right_type_<<std::endl; | ||||
|   ObJsonPath* tmp_p = ans.comp_.comp_left_.filter_path_; | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   tmp_p->to_string(str); | ||||
|   ObString str_scalar(str.ptr()); | ||||
|   std::cout<<str_scalar.ptr()<<std::endl; | ||||
|   std::cout<<ans.comp_.comp_right_.path_scalar_.scalar_<<std::endl; | ||||
|   // 只有一个节点 | ||||
|   ASSERT_EQ(1, test_path.path_node_cnt()); | ||||
|  | ||||
| @ -683,10 +675,10 @@ TEST_F(TestJsonPath, test_member_node) | ||||
|   // 只有一个节点 | ||||
|   ASSERT_EQ(1, test_path.path_node_cnt()); | ||||
|   ASSERT_EQ(JPN_MEMBER,test_path.path_nodes_[0]->get_node_type()); | ||||
|   const auto &member = test_path.path_nodes_[0]->get_node_content().member_; | ||||
|   const auto &member = test_path.path_nodes_[0]->node_content_.member_; | ||||
|   ObString str(member.len_, member.object_name_); | ||||
|   ASSERT_TRUE(str.case_compare("name") == 0); | ||||
|   std::cout<<test_path.path_nodes_[0]->get_node_content().member_.object_name_<<std::endl; | ||||
|   std::cout<<test_path.path_nodes_[0]->node_content_.member_.object_name_<<std::endl; | ||||
| } | ||||
|  | ||||
| // 测试能否正确解析ellipsis_node | ||||
| @ -701,8 +693,8 @@ TEST_F(TestJsonPath, test_ellipsis_node) | ||||
|   ASSERT_EQ(2, test_path.path_node_cnt()); | ||||
|   ASSERT_EQ(JPN_WILDCARD_ELLIPSIS,test_path.path_nodes_[0]->get_node_type()); | ||||
|   ASSERT_EQ(JPN_ARRAY_CELL,test_path.path_nodes_[1]->get_node_type()); | ||||
|   ASSERT_EQ(10,test_path.path_nodes_[1]->get_node_content().array_cell_.index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[1]->get_node_content().array_cell_.is_index_from_end_); | ||||
|   ASSERT_EQ(10,test_path.path_nodes_[1]->node_content_.array_cell_.index_); | ||||
|   ASSERT_EQ(false,test_path.path_nodes_[1]->node_content_.array_cell_.is_index_from_end_); | ||||
| } | ||||
|  | ||||
| // 测试能否成功解析path表达式 | ||||
| @ -727,15 +719,15 @@ TEST_F(TestJsonPath, test_parse_path) | ||||
|         //ASSERT_EQ(JPN_ARRAY_CELL_WILDCARD,test_path.path_nodes_[i]->node_type); | ||||
|         /* | ||||
|         ASSERT_EQ(JPN_MEMBER,test_path.path_nodes_[i]->node_type); | ||||
|         std::cout<<test_path.path_nodes_[0]->get_node_content().member_.object_name_<<std::endl; | ||||
|         std::cout<<test_path.path_nodes_[0]->node_content_.member_.object_name_<<std::endl; | ||||
|         ASSERT_EQ(JPN_ARRAY_CELL,test_path.path_nodes_[i]->node_type); | ||||
|         ASSERT_EQ(10,test_path.path_nodes_[i]->get_node_content().array_cell_.index_); | ||||
|         ASSERT_EQ(true,test_path.path_nodes_[i]->get_node_content().array_cell_.is_index_from_end_); | ||||
|         ASSERT_EQ(10,test_path.path_nodes_[i]->node_content_.array_cell_.index_); | ||||
|         ASSERT_EQ(true,test_path.path_nodes_[i]->node_content_.array_cell_.is_index_from_end_); | ||||
|         */ | ||||
|         ASSERT_EQ(10,test_path.path_nodes_[i]->get_node_content().array_range_.first_index_); | ||||
|         ASSERT_EQ(true,test_path.path_nodes_[i]->get_node_content().array_range_.is_first_index_from_end_); | ||||
|         ASSERT_EQ(1,test_path.path_nodes_[i]->get_node_content().array_range_.last_index_); | ||||
|         ASSERT_EQ(true,test_path.path_nodes_[i]->get_node_content().array_range_.is_last_index_from_end_); | ||||
|         ASSERT_EQ(10,test_path.path_nodes_[i]->node_content_.array_range_.first_index_); | ||||
|         ASSERT_EQ(true,test_path.path_nodes_[i]->node_content_.array_range_.is_first_index_from_end_); | ||||
|         ASSERT_EQ(1,test_path.path_nodes_[i]->node_content_.array_range_.last_index_); | ||||
|         ASSERT_EQ(true,test_path.path_nodes_[i]->node_content_.array_range_.is_last_index_from_end_); | ||||
|  | ||||
|       } | ||||
|     } | ||||
| @ -751,7 +743,7 @@ TEST_F(TestJsonPath, test_array_cell_node_to_string) | ||||
| { | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   ObJsonPathBasicNode node(10, true); | ||||
|   ObJsonPathBasicNode node(&allocator,10, true); | ||||
|   node.node_to_string(str, true, false); | ||||
|   std::cout<<str.ptr()<<std::endl; | ||||
| } | ||||
| @ -761,7 +753,7 @@ TEST_F(TestJsonPath, test_array_range_node_to_string) | ||||
| { | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   ObJsonPathBasicNode node(5, true, 1, true); | ||||
|   ObJsonPathBasicNode node(&allocator, 5, true, 1, true); | ||||
|   node.node_to_string(str, true, false); | ||||
|   std::cout<<"test\n"; | ||||
|   std::cout<<str.ptr()<<std::endl; | ||||
| @ -772,7 +764,7 @@ TEST_F(TestJsonPath, test_array_wildcard_node_to_string) | ||||
| { | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   ObJsonPathBasicNode node; | ||||
|   ObJsonPathBasicNode node(&allocator); | ||||
|   ASSERT_EQ(0, node.init(JPN_ARRAY_CELL_WILDCARD, true)); | ||||
|   node.node_to_string(str, true, false); | ||||
|   std::cout<<"test\n"; | ||||
| @ -784,7 +776,7 @@ TEST_F(TestJsonPath, test_member_wildcard_node_to_string) | ||||
| { | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   ObJsonPathBasicNode node; | ||||
|   ObJsonPathBasicNode node(&allocator); | ||||
|   ASSERT_EQ(0, node.init(JPN_MEMBER_WILDCARD, true)); | ||||
|   node.node_to_string(str, true, false); | ||||
|   std::cout<<"test\n"; | ||||
| @ -797,7 +789,7 @@ TEST_F(TestJsonPath, test_member_node_to_string) | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   ObString kn("keyname"); | ||||
|   ObJsonPathBasicNode node(kn); | ||||
|   ObJsonPathBasicNode node(&allocator, kn); | ||||
|   node.node_to_string(str, true, false); | ||||
|   std::cout<<"test\n"; | ||||
|   std::cout<<str.ptr()<<std::endl; | ||||
| @ -808,7 +800,7 @@ TEST_F(TestJsonPath, test_ellipsis_node_to_string) | ||||
| { | ||||
|   ObArenaAllocator allocator(ObModIds::TEST); | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   ObJsonPathBasicNode node; | ||||
|   ObJsonPathBasicNode node(&allocator); | ||||
|   ASSERT_EQ(0, node.init(JPN_WILDCARD_ELLIPSIS, true)); | ||||
|   node.node_to_string(str, true, false); | ||||
|   std::cout<<"test\n"; | ||||
| @ -822,8 +814,8 @@ TEST_F(TestJsonPath, test_path_to_string) | ||||
|   ObJsonBuffer str(&allocator); | ||||
|   ObJsonPath test_path(&allocator); | ||||
|   ObString name = "keyname"; | ||||
|   ObJsonPathBasicNode node; | ||||
|   ObJsonPathBasicNode member_node(name); | ||||
|   ObJsonPathBasicNode node(&allocator); | ||||
|   ObJsonPathBasicNode member_node(&allocator, name); | ||||
|   test_path.is_mysql_ = false; | ||||
|   if(test_path.is_mysql_ == false){ | ||||
|     std::cout<<"oracle"<<std::endl; | ||||
| @ -1349,11 +1341,11 @@ TEST_F(TestJsonPath, test_good_path) | ||||
|   { | ||||
|     std::cout<<"type:"<<test_path.path_nodes_[i]->get_node_type()<<std::endl; | ||||
|     if (i==0) { | ||||
|       std::cout<<"content:"<<test_path.path_nodes_[i]->get_node_content().member_.object_name_<<std::endl; | ||||
|       std::cout<<"content:"<<test_path.path_nodes_[i]->node_content_.member_.object_name_<<std::endl; | ||||
|     } | ||||
|     if (i==1) { | ||||
|       std::cout<<"content:"<<test_path.path_nodes_[i]->get_node_content().array_cell_.index_<<std::endl; | ||||
|       std::cout<<"content:"<<test_path.path_nodes_[i]->get_node_content().array_cell_.is_index_from_end_<<std::endl; | ||||
|       std::cout<<"content:"<<test_path.path_nodes_[i]->node_content_.array_cell_.index_<<std::endl; | ||||
|       std::cout<<"content:"<<test_path.path_nodes_[i]->node_content_.array_cell_.is_index_from_end_<<std::endl; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 wu-xingying
					wu-xingying