TEST_F(ObLimitTest, limiter_10_10_2_basic_test) { ObObj obj_a, obj_b; ObLimit limiter; ObSingleChildPhyOperator &single_op = limiter; ObFakeTable phy_op; const ObRow *next_row_p = NULL; int count = 0; phy_op.set_row_count(10); single_op.set_child(0, phy_op); ObSqlExpression limit; ObSqlExpression offset; ExprItem item; item.type_ = T_INT; item.data_type_ = ObIntType; item.value_.int_ = 10; ASSERT_EQ(OB_SUCCESS, limit.add_expr_item(item)); ASSERT_EQ(OB_SUCCESS, limit.add_expr_item_end()); item.value_.int_ = 2; ASSERT_EQ(OB_SUCCESS, offset.add_expr_item(item)); ASSERT_EQ(OB_SUCCESS, offset.add_expr_item_end()); limiter.set_limit(limit, offset); limiter.open(); while(OB_ITER_END != limiter.get_next_row(next_row_p)) { ASSERT_EQ(true, NULL != next_row_p); next_row_p = NULL; count++; } ASSERT_EQ(count, 8); limiter.close(); }
TEST_F(ObLimitTest, limiter_10_10_2_basic_test) { ObObj obj_a, obj_b; ObLimit limiter; ObSingleChildPhyOperator &single_op = limiter; ObFakeTable phy_op; const ObRow *next_row_p = NULL; int count = 0; phy_op.set_row_count(10); single_op.set_child(0, phy_op); limiter.set_limit(10, 2); limiter.open(); while(OB_ITER_END != limiter.get_next_row(next_row_p)) { ASSERT_EQ(true, NULL != next_row_p); next_row_p = NULL; count++; } ASSERT_EQ(count, 8); limiter.close(); }