(t *testing.T)
| 232 | } |
| 233 | |
| 234 | func TestFieldTypeHashEquals(t *testing.T) { |
| 235 | ft := types.NewFieldType(mysql.TypeLonglong) |
| 236 | ft2 := types.NewFieldType(mysql.TypeLonglong) |
| 237 | hasher1 := base.NewHashEqualer() |
| 238 | hasher2 := base.NewHashEqualer() |
| 239 | ft.Hash64(hasher1) |
| 240 | ft2.Hash64(hasher2) |
| 241 | require.Equal(t, hasher1.Sum64(), hasher2.Sum64()) |
| 242 | require.True(t, ft.Equals(ft2)) |
| 243 | |
| 244 | // flag diff |
| 245 | ft.DelFlag(mysql.NotNullFlag) |
| 246 | ft2.AddFlag(mysql.NotNullFlag) |
| 247 | hasher1.Reset() |
| 248 | hasher2.Reset() |
| 249 | ft.Hash64(hasher1) |
| 250 | ft2.Hash64(hasher2) |
| 251 | require.NotEqual(t, hasher1.Sum64(), hasher2.Sum64()) |
| 252 | require.False(t, ft.Equals(ft2)) |
| 253 | |
| 254 | // flen diff |
| 255 | ft.AddFlag(mysql.NotNullFlag) |
| 256 | ft2.AddFlag(mysql.NotNullFlag) |
| 257 | ft2.SetFlen(ft2.GetFlen() + 1) |
| 258 | hasher1.Reset() |
| 259 | hasher2.Reset() |
| 260 | ft.Hash64(hasher1) |
| 261 | ft2.Hash64(hasher2) |
| 262 | require.NotEqual(t, hasher1.Sum64(), hasher2.Sum64()) |
| 263 | require.False(t, ft.Equals(ft2)) |
| 264 | |
| 265 | // decimal diff |
| 266 | ft2.SetFlen(ft.GetFlen()) |
| 267 | ft2.SetDecimal(ft.GetDecimal() + 1) |
| 268 | hasher2.Reset() |
| 269 | ft2.Hash64(hasher2) |
| 270 | require.NotEqual(t, hasher1.Sum64(), hasher2.Sum64()) |
| 271 | require.False(t, ft.Equals(ft2)) |
| 272 | |
| 273 | // charset diff |
| 274 | ft2.SetDecimal(ft.GetDecimal()) |
| 275 | ft2.SetCharset(ft.GetCharset() + "1") |
| 276 | hasher2.Reset() |
| 277 | ft2.Hash64(hasher2) |
| 278 | require.NotEqual(t, hasher1.Sum64(), hasher2.Sum64()) |
| 279 | require.False(t, ft.Equals(ft2)) |
| 280 | |
| 281 | // collate diff |
| 282 | ft2.SetCharset(ft.GetCharset()) |
| 283 | ft2.SetCollate(ft.GetCollate() + "1") |
| 284 | hasher2.Reset() |
| 285 | ft2.Hash64(hasher2) |
| 286 | require.NotEqual(t, hasher1.Sum64(), hasher2.Sum64()) |
| 287 | require.False(t, ft.Equals(ft2)) |
| 288 | |
| 289 | // tp diff |
| 290 | ft2.SetCollate(ft.GetCollate()) |
| 291 | ft2.SetType(ft.GetType() + 1) |
nothing calls this directly
no test coverage detected