MCPcopy
hub / github.com/radondb/radon / CreateDatabase

Method CreateDatabase

src/router/frm.go:125–154  ·  view source on GitHub ↗
(db string)

Source from the content-addressed store, hash-verified

123}
124
125func (r *Router) CreateDatabase(db string) error {
126 r.mu.Lock()
127 defer r.mu.Unlock()
128
129 log := r.log
130 if len(db) > NAME_CHAR_LEN {
131 return sqldb.NewSQLError(sqldb.ER_TOO_LONG_IDENT, db)
132 }
133 if r.checkNameInvalid(db) {
134 log.Error("frm.check.database.name[%v].invalid.contains.char:'/' or space ' '", db)
135 return errors.Errorf("invalid.database.name.currently.not.support.dbname[%v].contains.with.char:'/' or space ' '", db)
136 }
137 if err := r.addDatabase(db); err != nil {
138 log.Error("frm.create.addDatabase.error:%v", err)
139 return err
140 }
141 if err := r.writeDatabaseFrmData(db); err != nil {
142 log.Error("frm.writeTableFrmData[db:%v].file.error:%+v", db, err)
143 // if write fail, drop db in memory cache added by addDatabase
144 if err := r.dropDatabase(db); err != nil {
145 log.Error("frm.drop.database[db:%v].error.from.router.cache.when.write.to.disk.failed:%+v", db, err)
146 }
147 return err
148 }
149 if err := config.UpdateVersion(r.metadir); err != nil {
150 log.Panicf("frm.create.table.update.version.error:%v", err)
151 return err
152 }
153 return nil
154}
155
156// DropDatabase used to remove a database-schema from the schemas
157// and remove all the table-schema files who belongs to this database.

Callers 15

mockSyncerFunction · 0.95
TestPlannerFunction · 0.80
TestPlannerErrorFunction · 0.80
TestSelectPlanFunction · 0.80
TestDeletePlanFunction · 0.80
TestDeleteErrorPlanFunction · 0.80
TestUnionPlanFunction · 0.80
TestInsertPlanFunction · 0.80
TestInsertPlanSortFunction · 0.80

Calls 4

checkNameInvalidMethod · 0.95
addDatabaseMethod · 0.95
writeDatabaseFrmDataMethod · 0.95
dropDatabaseMethod · 0.95

Tested by 15

TestPlannerFunction · 0.64
TestPlannerErrorFunction · 0.64
TestSelectPlanFunction · 0.64
TestDeletePlanFunction · 0.64
TestDeleteErrorPlanFunction · 0.64
TestUnionPlanFunction · 0.64
TestInsertPlanFunction · 0.64
TestInsertPlanSortFunction · 0.64
TestInsertPlanBenchFunction · 0.64