@@ -16,6 +16,7 @@ package core
1616
1717import (
1818 "math"
19+ "slices"
1920 "strconv"
2021 "strings"
2122 "testing"
@@ -45,11 +46,11 @@ func TestCanBePrune(t *testing.T) {
4546
4647 queryExpr := tc .expr ("d < '2000-03-08 00:00:00'" )
4748 result := partitionRangeForCNFExpr (tc .sctx , []expression.Expression {queryExpr }, pruner , fullRange (len (lessThan .data )))
48- require .True (t , equalPartitionRangeOR (result , partitionRangeOR {{0 , 1 }}))
49+ require .True (t , slices . Equal (result , partitionRangeOR {{0 , 1 }}))
4950
5051 queryExpr = tc .expr ("d > '2018-03-08 00:00:00'" )
5152 result = partitionRangeForCNFExpr (tc .sctx , []expression.Expression {queryExpr }, pruner , fullRange (len (lessThan .data )))
52- require .True (t , equalPartitionRangeOR (result , partitionRangeOR {}))
53+ require .True (t , slices . Equal (result , partitionRangeOR {}))
5354
5455 // For the following case:
5556 // CREATE TABLE quarterly_report_status (
@@ -68,12 +69,12 @@ func TestCanBePrune(t *testing.T) {
6869
6970 queryExpr = tc .expr ("report_updated > '2008-05-01 00:00:00'" )
7071 result = partitionRangeForCNFExpr (tc .sctx , []expression.Expression {queryExpr }, pruner , fullRange (len (lessThan .data )))
71- require .True (t , equalPartitionRangeOR (result , partitionRangeOR {{2 , 4 }}))
72+ require .True (t , slices . Equal (result , partitionRangeOR {{2 , 4 }}))
7273
7374 queryExpr = tc .expr ("report_updated > unix_timestamp('2008-05-01 00:00:00')" )
7475 partitionRangeForCNFExpr (tc .sctx , []expression.Expression {queryExpr }, pruner , fullRange (len (lessThan .data )))
7576 // TODO: Uncomment the check after fixing issue https://github.com/pingcap/tidb/issues/12028
76- // require.True(t, equalPartitionRangeOR (result, partitionRangeOR{{2, 4}}))
77+ // require.True(t, slices.Equal (result, partitionRangeOR{{2, 4}}))
7778 // report_updated > unix_timestamp('2008-05-01 00:00:00') is converted to gt(t.t.report_updated, <nil>)
7879 // Because unix_timestamp('2008-05-01 00:00:00') is fold to constant int 1564761600, and compare it with timestamp (report_updated)
7980 // need to convert 1564761600 to a timestamp, during that step, an error happen and the result is set to <nil>
@@ -265,22 +266,10 @@ func TestPartitionRangeForExpr(t *testing.T) {
265266 require .NoError (t , err )
266267 result := fullRange (lessThan .length ())
267268 result = partitionRangeForExpr (tc .sctx , expr , pruner , result )
268- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "unexpected: %v" , ca .input )
269+ require .Truef (t , slices . Equal (ca .result , result ), "unexpected: %v" , ca .input )
269270 }
270271}
271272
272- func equalPartitionRangeOR (x , y partitionRangeOR ) bool {
273- if len (x ) != len (y ) {
274- return false
275- }
276- for i := range x {
277- if x [i ] != y [i ] {
278- return false
279- }
280- }
281- return true
282- }
283-
284273func TestPartitionRangeOperation (t * testing.T ) {
285274 testIntersectionRange := []struct {
286275 input1 partitionRangeOR
@@ -299,7 +288,7 @@ func TestPartitionRangeOperation(t *testing.T) {
299288 }
300289 for i , ca := range testIntersectionRange {
301290 result := ca .input1 .intersectionRange (ca .input2 .start , ca .input2 .end )
302- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "fail = %d" , i )
291+ require .Truef (t , slices . Equal (ca .result , result ), "fail = %d" , i )
303292 }
304293
305294 testIntersection := []struct {
@@ -319,7 +308,7 @@ func TestPartitionRangeOperation(t *testing.T) {
319308 }
320309 for i , ca := range testIntersection {
321310 result := ca .input1 .intersection (ca .input2 )
322- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "fail = %d" , i )
311+ require .Truef (t , slices . Equal (ca .result , result ), "fail = %d" , i )
323312 }
324313
325314 testUnion := []struct {
@@ -339,7 +328,7 @@ func TestPartitionRangeOperation(t *testing.T) {
339328 }
340329 for i , ca := range testUnion {
341330 result := ca .input1 .union (ca .input2 )
342- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "fail = %d" , i )
331+ require .Truef (t , slices . Equal (ca .result , result ), "fail = %d" , i )
343332 }
344333}
345334
@@ -384,7 +373,7 @@ func TestPartitionRangePruner2VarChar(t *testing.T) {
384373 require .NoError (t , err )
385374 result := fullRange (len (lessThan ))
386375 result = partitionRangeForExpr (tc .sctx , expr , pruner , result )
387- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "unexpected: %v" , ca .input )
376+ require .Truef (t , slices . Equal (ca .result , result ), "unexpected: %v" , ca .input )
388377 }
389378}
390379
@@ -434,7 +423,7 @@ func TestPartitionRangePruner2CharWithCollation(t *testing.T) {
434423 require .NoError (t , err )
435424 result := fullRange (len (lessThan ))
436425 result = partitionRangeForExpr (tc .sctx , expr , pruner , result )
437- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "unexpected: %v %v != %v" , ca .input , ca .result , result )
426+ require .Truef (t , slices . Equal (ca .result , result ), "unexpected: %v %v != %v" , ca .input , ca .result , result )
438427 }
439428}
440429
@@ -490,7 +479,7 @@ func TestPartitionRangePruner2Date(t *testing.T) {
490479 require .NoError (t , err )
491480 result := fullRange (len (lessThan ))
492481 result = partitionRangeForExpr (tc .sctx , expr , pruner , result )
493- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "unexpected: %v, %v != %v" , ca .input , ca .result , result )
482+ require .Truef (t , slices . Equal (ca .result , result ), "unexpected: %v, %v != %v" , ca .input , ca .result , result )
494483 }
495484}
496485
@@ -570,7 +559,7 @@ func TestPartitionRangeColumnsForExpr(t *testing.T) {
570559 result := fullRange (len (lessThan ))
571560 e := expression .SplitCNFItems (expr )
572561 result = partitionRangeForCNFExpr (tc .sctx , e , pruner , result )
573- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "unexpected: %v %v != %v" , ca .input , ca .result , result )
562+ require .Truef (t , slices . Equal (ca .result , result ), "unexpected: %v %v != %v" , ca .input , ca .result , result )
574563 }
575564}
576565
@@ -624,7 +613,7 @@ func TestPartitionRangeColumnsForExprWithSpecialCollation(t *testing.T) {
624613 result := fullRange (len (lessThan ))
625614 e := expression .SplitCNFItems (expr )
626615 result = partitionRangeForCNFExpr (tc .sctx , e , pruner , result )
627- require .Truef (t , equalPartitionRangeOR (ca .result , result ), "unexpected: %v %v != %v" , ca .input , ca .result , result )
616+ require .Truef (t , slices . Equal (ca .result , result ), "unexpected: %v %v != %v" , ca .input , ca .result , result )
628617 }
629618}
630619
0 commit comments