Skip to content

Commit

Permalink
fix tmptable/ddl_test
Browse files Browse the repository at this point in the history
  • Loading branch information
djshow832 committed Oct 30, 2021
1 parent 855a695 commit b68aee5
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions table/temptable/ddl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,16 @@ func TestAddLocalTemporaryTable(t *testing.T) {

sessVars := sctx.GetSessionVars()

db1 := newMockSchema("db1")
db2 := newMockSchema("db2")
tbl1 := newMockTable("t1")
tbl2 := newMockTable("t2")

require.Nil(t, sessVars.LocalTemporaryTables)
require.Nil(t, sessVars.TemporaryTableData)

// insert t1
err := ddl.CreateLocalTemporaryTable(model.NewCIStr("db1"), tbl1)
err := ddl.CreateLocalTemporaryTable(db1, tbl1)
require.NoError(t, err)
require.NotNil(t, sessVars.LocalTemporaryTables)
require.NotNil(t, sessVars.TemporaryTableData)
Expand All @@ -69,7 +71,7 @@ func TestAddLocalTemporaryTable(t *testing.T) {
require.Equal(t, got.Meta(), tbl1)

// insert t2 with data
err = ddl.CreateLocalTemporaryTable(model.NewCIStr("db1"), tbl2)
err = ddl.CreateLocalTemporaryTable(db1, tbl2)
require.NoError(t, err)
require.Equal(t, int64(2), tbl2.ID)
got, exists = sessVars.LocalTemporaryTables.(*infoschema.LocalTemporaryTables).TableByName(model.NewCIStr("db1"), model.NewCIStr("t2"))
Expand All @@ -87,14 +89,14 @@ func TestAddLocalTemporaryTable(t *testing.T) {

// insert dup table
tbl1x := newMockTable("t1")
err = ddl.CreateLocalTemporaryTable(model.NewCIStr("db1"), tbl1x)
err = ddl.CreateLocalTemporaryTable(db1, tbl1x)
require.True(t, infoschema.ErrTableExists.Equal(err))
got, exists = sessVars.LocalTemporaryTables.(*infoschema.LocalTemporaryTables).TableByName(model.NewCIStr("db1"), model.NewCIStr("t1"))
require.True(t, exists)
require.Equal(t, got.Meta(), tbl1)

// insert should be success for same table name in different db
err = ddl.CreateLocalTemporaryTable(model.NewCIStr("db2"), tbl1x)
err = ddl.CreateLocalTemporaryTable(db2, tbl1x)
require.NoError(t, err)
got, exists = sessVars.LocalTemporaryTables.(*infoschema.LocalTemporaryTables).TableByName(model.NewCIStr("db2"), model.NewCIStr("t1"))
require.Equal(t, int64(4), got.Meta().ID)
Expand All @@ -114,14 +116,15 @@ func TestRemoveLocalTemporaryTable(t *testing.T) {
defer clean()

sessVars := sctx.GetSessionVars()
db1 := newMockSchema("db1")

// remove when empty
err := ddl.DropLocalTemporaryTable(model.NewCIStr("db1"), model.NewCIStr("t1"))
require.True(t, infoschema.ErrTableNotExists.Equal(err))

// add one table
tbl1 := newMockTable("t1")
err = ddl.CreateLocalTemporaryTable(model.NewCIStr("db1"), tbl1)
err = ddl.CreateLocalTemporaryTable(db1, tbl1)
require.NoError(t, err)
require.Equal(t, int64(1), tbl1.ID)
k := tablecodec.EncodeRowKeyWithHandle(1, kv.IntHandle(1))
Expand Down Expand Up @@ -162,6 +165,7 @@ func TestTruncateLocalTemporaryTable(t *testing.T) {
defer clean()

sessVars := sctx.GetSessionVars()
db1 := newMockSchema("db1")

// truncate when empty
err := ddl.TruncateLocalTemporaryTable(model.NewCIStr("db1"), model.NewCIStr("t1"))
Expand All @@ -171,7 +175,7 @@ func TestTruncateLocalTemporaryTable(t *testing.T) {

// add one table
tbl1 := newMockTable("t1")
err = ddl.CreateLocalTemporaryTable(model.NewCIStr("db1"), tbl1)
err = ddl.CreateLocalTemporaryTable(db1, tbl1)
require.Equal(t, int64(1), tbl1.ID)
require.NoError(t, err)
k := tablecodec.EncodeRowKeyWithHandle(1, kv.IntHandle(1))
Expand All @@ -194,7 +198,7 @@ func TestTruncateLocalTemporaryTable(t *testing.T) {

// insert a new tbl
tbl2 := newMockTable("t2")
err = ddl.CreateLocalTemporaryTable(model.NewCIStr("db1"), tbl2)
err = ddl.CreateLocalTemporaryTable(db1, tbl2)
require.Equal(t, int64(2), tbl2.ID)
require.NoError(t, err)
k2 := tablecodec.EncodeRowKeyWithHandle(2, kv.IntHandle(1))
Expand Down Expand Up @@ -225,3 +229,7 @@ func newMockTable(tblName string) *model.TableInfo {
tblInfo := &model.TableInfo{Name: model.NewCIStr(tblName), Columns: []*model.ColumnInfo{c1, c2}, PKIsHandle: true}
return tblInfo
}

func newMockSchema(schemaName string) *model.DBInfo {
return &model.DBInfo{ID: 10, Name: model.NewCIStr(schemaName), State: model.StatePublic}
}

0 comments on commit b68aee5

Please sign in to comment.