MCPcopy Create free account
hub / github.com/pingcap/tidb / TestSQLBuilder

Function TestSQLBuilder

pkg/ttl/sqlbuilder/sql_test.go:393–579  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

391}
392
393func 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`")

Callers

nothing calls this directly

Calls 14

BuildMethod · 0.95
WriteSelectMethod · 0.95
WriteCommonConditionMethod · 0.95
WriteExpireConditionMethod · 0.95
WriteOrderByMethod · 0.95
WriteLimitMethod · 0.95
WriteDeleteMethod · 0.95
WriteInConditionMethod · 0.95
NewFieldTypeFunction · 0.92
NewSQLBuilderFunction · 0.92
mustFunction · 0.85
dFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…