func (do *Domain) loadInfoSchema(m *meta.TMeta) (err error) { schemaMetaVersion, err := m.GetSchemaVersion() if err != nil { return errors.Trace(err) } info := do.infoHandle.Get() if info != nil && schemaMetaVersion > 0 && schemaMetaVersion == info.SchemaMetaVersion() { log.Debugf("schema version is still %d, no need reload", schemaMetaVersion) return nil } schemas, err := m.ListDatabases() if err != nil { return errors.Trace(err) } for _, di := range schemas { tables, err := m.ListTables(di.ID) if err != nil { return errors.Trace(err) } di.Tables = tables } log.Infof("loadInfoSchema %d", schemaMetaVersion) do.infoHandle.Set(schemas, schemaMetaVersion) return }