Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
longyue0521 committed Jun 11, 2024
1 parent a510ca4 commit 567f12d
Showing 1 changed file with 28 additions and 28 deletions.
56 changes: 28 additions & 28 deletions internal/merger/factory/factory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1, 0).AddRow(3, 1))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2, 1).AddRow(4, 0))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: nil,
Expand Down Expand Up @@ -516,7 +516,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{3, 1},
[]any{2, 1},
[]any{4, 0},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// 别名
Expand All @@ -529,7 +529,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(100, 3))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(150, 2))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(50, 1))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.AggregateFunc},
Expand Down Expand Up @@ -584,7 +584,7 @@ func (s *factoryTestSuite) TestSELECT() {

require.Equal(t, []any{
[]any{300, 6},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// 聚合函数
Expand All @@ -597,7 +597,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(200, 200, 400, 2, 400, 2))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(150, 150, 450, 3, 450, 3))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(50, 50, 50, 1, 50, 1))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.AggregateFunc},
Expand Down Expand Up @@ -688,7 +688,7 @@ func (s *factoryTestSuite) TestSELECT() {
avg := float64(sum / cnt)
require.Equal(t, []any{
[]any{50, 200, avg, sum, cnt},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// ORDER BY
Expand Down Expand Up @@ -777,7 +777,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1, "oid5").AddRow(1, "oid4").AddRow(3, "oid7").AddRow(3, "oid6"))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2, "oid3").AddRow(2, "oid2").AddRow(4, "oid1"))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.OrderBy},
Expand Down Expand Up @@ -863,7 +863,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{3, "oid7"},
[]any{3, "oid6"},
[]any{4, "oid1"},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// TODO: ORDER BY 和 与聚合列组合,原始SQL中ORDER BY中用别名`avg_amt`,目标SQL的ORDER BY该如何该写?
Expand Down Expand Up @@ -963,7 +963,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(4))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.AggregateFunc, query.OrderBy},
Expand Down Expand Up @@ -1023,7 +1023,7 @@ func (s *factoryTestSuite) TestSELECT() {

require.Equal(t, []any{
[]any{4 + 2 + 1},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// GROUP BY
Expand Down Expand Up @@ -1210,7 +1210,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1).AddRow(3))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(17))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2).AddRow(4))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.GroupBy},
Expand Down Expand Up @@ -1271,7 +1271,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{17},
[]any{2},
[]any{4},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// 非分片键 + 别名
Expand All @@ -1284,7 +1284,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(100).AddRow(300))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(100))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(200).AddRow(400))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.GroupBy},
Expand Down Expand Up @@ -1344,7 +1344,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{300},
[]any{200},
[]any{400},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// 非分片键 + 聚合 + 别名
Expand All @@ -1357,7 +1357,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1000, 350).AddRow(3000, 350))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1000, 250).AddRow(4000, 50))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2000, 100).AddRow(4000, 50))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.GroupBy},
Expand Down Expand Up @@ -1426,7 +1426,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{int64(3000), 350},
[]any{int64(4000), 100},
[]any{int64(2000), 100},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// 分片键+非分片键+聚合+别名
Expand All @@ -1439,7 +1439,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1, 1000, 350).AddRow(1, 3000, 350))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2, 1000, 250).AddRow(4, 4000, 50))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(6, 2000, 100).AddRow(9, 4000, 50))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.GroupBy},
Expand Down Expand Up @@ -1531,7 +1531,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{4, int64(4000), 50},
[]any{6, int64(2000), 100},
[]any{9, int64(4000), 50},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// GROUP BY 和 ORDER BY 组合
Expand All @@ -1544,7 +1544,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2, 3000, 350).AddRow(1, 1000, 350))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(4, 4000, 50).AddRow(2, 1000, 250))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(9, 4000, 50).AddRow(6, 2000, 100))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.GroupBy, query.OrderBy},
Expand Down Expand Up @@ -1668,7 +1668,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{2, int64(1000), 250},
[]any{2, int64(3000), 350},
[]any{1, int64(1000), 350},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// LIMIT
Expand Down Expand Up @@ -1748,7 +1748,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1).AddRow(3))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(17))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2).AddRow(4))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.Limit},
Expand Down Expand Up @@ -1795,7 +1795,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{1},
[]any{3},
[]any{17},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
{
Expand All @@ -1807,7 +1807,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1, 100).AddRow(3, 100))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(5, 500).AddRow(3, 200).AddRow(4, 200))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2, 200).AddRow(4, 200))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.GroupBy, query.OrderBy, query.Limit},
Expand Down Expand Up @@ -1898,7 +1898,7 @@ func (s *factoryTestSuite) TestSELECT() {
require.Equal(t, []any{
[]any{5, 500},
[]any{4, 400},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
{
Expand All @@ -1910,7 +1910,7 @@ func (s *factoryTestSuite) TestSELECT() {
s.mock01.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(1, 1000, 100).AddRow(3, 3000, 100))
s.mock02.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(5, 5000, 500).AddRow(3, 3000, 200).AddRow(4, 4000, 200))
s.mock03.ExpectQuery(targetSQL).WillReturnRows(sqlmock.NewRows(cols).AddRow(2, 2000, 200).AddRow(4, 4001, 200))
return s.getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
return getResultSet(t, targetSQL, s.db01, s.db02, s.db03), cols
},
originSpec: QuerySpec{
Features: []query.Feature{query.GroupBy, query.OrderBy, query.Limit},
Expand Down Expand Up @@ -2026,7 +2026,7 @@ func (s *factoryTestSuite) TestSELECT() {
[]any{4, 4001, 200},
[]any{3, 3000, 300},
[]any{5, 5000, 500},
}, s.getRowValues(t, r, scanFunc))
}, getRowValues(t, r, scanFunc))
},
},
// {
Expand Down Expand Up @@ -2124,15 +2124,15 @@ func (s *factoryTestSuite) TestSELECT() {

}

func (s *factoryTestSuite) getRowValues(t *testing.T, r rows.Rows, scanFunc func(r rows.Rows, valSet *[]any) error) []any {
func getRowValues(t *testing.T, r rows.Rows, scanFunc func(r rows.Rows, valSet *[]any) error) []any {
var res []any
for r.Next() {
require.NoError(t, scanFunc(r, &res))
}
return res
}

func (s *factoryTestSuite) getResultSet(t *testing.T, sql string, dbs ...*sql.DB) []rows.Rows {
func getResultSet(t *testing.T, sql string, dbs ...*sql.DB) []rows.Rows {
resultSet := make([]rows.Rows, 0, len(dbs))
for _, db := range dbs {
row, err := db.Query(sql)
Expand Down

0 comments on commit 567f12d

Please sign in to comment.