(t *testing.T)
| 391 | } |
| 392 | |
| 393 | func TestSQLBuilder(t *testing.T) { |
| 394 | must := func(err error) { |
| 395 | require.NoError(t, err) |
| 396 | } |
| 397 | |
| 398 | mustBuild := func(b *sqlbuilder.SQLBuilder, str string) { |
| 399 | s, err := b.Build() |
| 400 | require.NoError(t, err) |
| 401 | require.Equal(t, str, s) |
| 402 | } |
| 403 | |
| 404 | var b *sqlbuilder.SQLBuilder |
| 405 | |
| 406 | t1 := &cache.PhysicalTable{ |
| 407 | Schema: pmodel.NewCIStr("test"), |
| 408 | TableInfo: &model.TableInfo{ |
| 409 | Name: pmodel.NewCIStr("t1"), |
| 410 | }, |
| 411 | KeyColumns: []*model.ColumnInfo{ |
| 412 | {Name: pmodel.NewCIStr("id"), FieldType: *types.NewFieldType(mysql.TypeVarchar)}, |
| 413 | }, |
| 414 | TimeColumn: &model.ColumnInfo{ |
| 415 | Name: pmodel.NewCIStr("time"), |
| 416 | FieldType: *types.NewFieldType(mysql.TypeDatetime), |
| 417 | }, |
| 418 | } |
| 419 | |
| 420 | t2 := &cache.PhysicalTable{ |
| 421 | Schema: pmodel.NewCIStr("test2"), |
| 422 | TableInfo: &model.TableInfo{ |
| 423 | Name: pmodel.NewCIStr("t2"), |
| 424 | }, |
| 425 | KeyColumns: []*model.ColumnInfo{ |
| 426 | {Name: pmodel.NewCIStr("a"), FieldType: *types.NewFieldType(mysql.TypeVarchar)}, |
| 427 | {Name: pmodel.NewCIStr("b"), FieldType: *types.NewFieldType(mysql.TypeInt24)}, |
| 428 | }, |
| 429 | TimeColumn: &model.ColumnInfo{ |
| 430 | Name: pmodel.NewCIStr("time"), |
| 431 | FieldType: *types.NewFieldType(mysql.TypeDatetime), |
| 432 | }, |
| 433 | } |
| 434 | |
| 435 | tp := &cache.PhysicalTable{ |
| 436 | Schema: pmodel.NewCIStr("testp"), |
| 437 | TableInfo: &model.TableInfo{ |
| 438 | Name: pmodel.NewCIStr("tp"), |
| 439 | }, |
| 440 | KeyColumns: t1.KeyColumns, |
| 441 | TimeColumn: t1.TimeColumn, |
| 442 | PartitionDef: &model.PartitionDefinition{ |
| 443 | Name: pmodel.NewCIStr("p1"), |
| 444 | }, |
| 445 | } |
| 446 | |
| 447 | // test build select queries |
| 448 | b = sqlbuilder.NewSQLBuilder(t1) |
| 449 | must(b.WriteSelect()) |
| 450 | mustBuild(b, "SELECT LOW_PRIORITY SQL_NO_CACHE `id` FROM `test`.`t1`") |
nothing calls this directly
no test coverage detected
searching dependent graphs…