@@ -706,22 +706,24 @@ func (s *testTypeConvertSuite) TestGetValidInt(c *C) {
706
706
tests := []struct {
707
707
origin string
708
708
valid string
709
+ signed bool
709
710
warning bool
710
711
}{
711
- {"100" , "100" , false },
712
- {"-100" , "-100" , false },
713
- {"1abc" , "1" , true },
714
- {"-1-1" , "-1" , true },
715
- {"+1+1" , "+1" , true },
716
- {"123..34" , "123" , true },
717
- {"123.23E-10" , "123" , true },
718
- {"1.1e1.3" , "1" , true },
719
- {"11e1.3" , "11" , true },
720
- {"1." , "1" , true },
721
- {".1" , "0" , true },
722
- {"" , "0" , true },
723
- {"123e+" , "123" , true },
724
- {"123de" , "123" , true },
712
+ {"100" , "100" , true , false },
713
+ {"-100" , "-100" , true , false },
714
+ {"9223372036854775808" , "9223372036854775808" , false , false },
715
+ {"1abc" , "1" , true , true },
716
+ {"-1-1" , "-1" , true , true },
717
+ {"+1+1" , "+1" , true , true },
718
+ {"123..34" , "123" , true , true },
719
+ {"123.23E-10" , "123" , true , true },
720
+ {"1.1e1.3" , "1" , true , true },
721
+ {"11e1.3" , "11" , true , true },
722
+ {"1." , "1" , true , true },
723
+ {".1" , "0" , true , true },
724
+ {"" , "0" , true , true },
725
+ {"123e+" , "123" , true , true },
726
+ {"123de" , "123" , true , true },
725
727
}
726
728
sc := new (stmtctx.StatementContext )
727
729
sc .TruncateAsWarning = true
@@ -731,7 +733,11 @@ func (s *testTypeConvertSuite) TestGetValidInt(c *C) {
731
733
prefix , err := getValidIntPrefix (sc , tt .origin )
732
734
c .Assert (err , IsNil )
733
735
c .Assert (prefix , Equals , tt .valid )
734
- _ , err = strconv .ParseInt (prefix , 10 , 64 )
736
+ if tt .signed {
737
+ _ , err = strconv .ParseInt (prefix , 10 , 64 )
738
+ } else {
739
+ _ , err = strconv .ParseUint (prefix , 10 , 64 )
740
+ }
735
741
c .Assert (err , IsNil )
736
742
warnings := sc .GetWarnings ()
737
743
if tt .warning {
0 commit comments