Merge pull request #489 from pingcap/goroutine/clean-up-ddl
ddl: Tiny clean up
This commit is contained in:
11
ddl/index.go
11
ddl/index.go
@ -29,7 +29,7 @@ import (
|
||||
"github.com/pingcap/tidb/util/errors2"
|
||||
)
|
||||
|
||||
func (d *ddl) checkTablePublic(t *meta.Meta, job *model.Job) (*model.TableInfo, error) {
|
||||
func (d *ddl) getTableInfo(t *meta.Meta, job *model.Job) (*model.TableInfo, error) {
|
||||
schemaID := job.SchemaID
|
||||
tableID := job.TableID
|
||||
tblInfo, err := t.GetTable(schemaID, tableID)
|
||||
@ -104,8 +104,7 @@ func buildIndexInfo(tblInfo *model.TableInfo, unique bool, indexName model.CIStr
|
||||
|
||||
func (d *ddl) onIndexCreate(t *meta.Meta, job *model.Job) error {
|
||||
schemaID := job.SchemaID
|
||||
|
||||
tblInfo, err := d.checkTablePublic(t, job)
|
||||
tblInfo, err := d.getTableInfo(t, job)
|
||||
if err != nil {
|
||||
return errors.Trace(err)
|
||||
}
|
||||
@ -214,8 +213,7 @@ func (d *ddl) onIndexCreate(t *meta.Meta, job *model.Job) error {
|
||||
|
||||
func (d *ddl) onIndexDrop(t *meta.Meta, job *model.Job) error {
|
||||
schemaID := job.SchemaID
|
||||
|
||||
tblInfo, err := d.checkTablePublic(t, job)
|
||||
tblInfo, err := d.getTableInfo(t, job)
|
||||
if err != nil {
|
||||
return errors.Trace(err)
|
||||
}
|
||||
@ -264,8 +262,7 @@ func (d *ddl) onIndexDrop(t *meta.Meta, job *model.Job) error {
|
||||
return errors.Trace(err)
|
||||
case model.StateReorgnization:
|
||||
// reorganization -> absent
|
||||
var tbl table.Table
|
||||
tbl, err = d.getTable(t, schemaID, tblInfo)
|
||||
tbl, err := d.getTable(t, schemaID, tblInfo)
|
||||
if err != nil {
|
||||
return errors.Trace(err)
|
||||
}
|
||||
|
||||
@ -97,7 +97,6 @@ const waitReorgTimeout = 10 * time.Second
|
||||
var errWaitReorgTimeout = errors.New("wait for reorgnization timeout")
|
||||
|
||||
func (d *ddl) runReorgJob(f func() error) error {
|
||||
// wait reorgnization jobs done
|
||||
// TODO use persistent reorgnization job list.
|
||||
if d.reOrgDoneCh == nil {
|
||||
// start a reorgnization job
|
||||
|
||||
@ -294,7 +294,9 @@ func (d *ddl) runJob(t *meta.Meta, job *model.Job) error {
|
||||
case model.ActionDropIndex:
|
||||
err = d.onIndexDrop(t, job)
|
||||
case model.ActionAddConstraint:
|
||||
log.Fatal("Doesn't support change constraint online")
|
||||
case model.ActionDropConstraint:
|
||||
log.Fatal("Doesn't support change constraint online")
|
||||
default:
|
||||
// invalid job, cancel it.
|
||||
job.State = model.JobCancelled
|
||||
|
||||
@ -20,6 +20,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/juju/errors"
|
||||
"github.com/pingcap/tidb/kv"
|
||||
@ -260,9 +261,8 @@ func (m *Meta) CreateTable(dbID int64, tableInfo *model.TableInfo) error {
|
||||
|
||||
// DropDatabase drops whole database.
|
||||
func (m *Meta) DropDatabase(dbID int64) error {
|
||||
// first check db exists or not.
|
||||
// check if db exists.
|
||||
dbKey := m.dbKey(dbID)
|
||||
|
||||
if err := m.txn.HClear(dbKey); err != nil {
|
||||
return errors.Trace(err)
|
||||
}
|
||||
@ -283,7 +283,6 @@ func (m *Meta) DropTable(dbID int64, tableID int64) error {
|
||||
}
|
||||
|
||||
tableKey := m.tableKey(tableID)
|
||||
|
||||
// then check table exists or not
|
||||
if err := m.checkTableExists(dbKey, tableKey); err != nil {
|
||||
return errors.Trace(err)
|
||||
@ -398,7 +397,6 @@ func (m *Meta) GetTable(dbID int64, tableID int64) (*model.TableInfo, error) {
|
||||
}
|
||||
|
||||
tableKey := m.tableKey(tableID)
|
||||
|
||||
value, err := m.txn.HGet(dbKey, tableKey)
|
||||
if err != nil || value == nil {
|
||||
return nil, errors.Trace(err)
|
||||
@ -479,6 +477,8 @@ func (m *Meta) GetDDLJob(index int64) (*model.Job, error) {
|
||||
|
||||
// UpdateDDLJob updates the DDL job with index.
|
||||
func (m *Meta) UpdateDDLJob(index int64, job *model.Job) error {
|
||||
// TODO: use timestamp allocated by TSO
|
||||
job.LastUpdateTS = time.Now().Unix()
|
||||
b, err := job.Encode()
|
||||
if err != nil {
|
||||
return errors.Trace(err)
|
||||
|
||||
@ -78,7 +78,8 @@ type Job struct {
|
||||
RawArgs json.RawMessage `json:"raw_args"`
|
||||
SchemaState SchemaState `json:"schema_state"`
|
||||
// snapshot version for this job.
|
||||
SnapshotVer uint64 `json:"snapshot_ver"`
|
||||
SnapshotVer uint64 `json:"snapshot_ver"`
|
||||
LastUpdateTS int64 `json:"last_update_ts"`
|
||||
}
|
||||
|
||||
// Encode encodes job with json format.
|
||||
|
||||
Reference in New Issue
Block a user