MCPcopy Create free account
hub / github.com/dolthub/doltgresql / dbInit

Function dbInit

server/auth/database.go:136–174  ·  view source on GitHub ↗

dbInit handle the global database initialization. Panics if an error occurs, since it points to something going terribly wrong.

(dEnv *env.DoltEnv, cfg Config)

Source from the content-addressed store, hash-verified

134// dbInit handle the global database initialization. Panics if an error occurs, since it points to something going
135// terribly wrong.
136func dbInit(dEnv *env.DoltEnv, cfg Config) {
137 globalDatabase = Database{
138 rolesByName: make(map[string]RoleID),
139 rolesByID: make(map[RoleID]Role),
140 databasePrivileges: NewDatabasePrivileges(),
141 schemaPrivileges: NewSchemaPrivileges(),
142 tablePrivileges: NewTablePrivileges(),
143 sequencePrivileges: NewSequencePrivileges(),
144 routinePrivileges: NewRoutinePrivileges(),
145 roleMembership: NewRoleMembership(),
146 }
147 globalLock = &sync.RWMutex{}
148 if dEnv != nil {
149 if _, ok := dEnv.FS.(*filesys.InMemFS); !ok {
150 if cfg != nil && len(cfg.AuthFilePath()) > 0 {
151 authFileName = cfg.AuthFilePath()
152 }
153 fileSystem = dEnv.FS
154 authData, err := fileSystem.ReadFile(authFileName)
155 if os.IsNotExist(err) {
156 dbInitDefault()
157 if err = dbInitCreateAuthDirectory(authFileName); err != nil {
158 panic(err)
159 }
160 if err = fileSystem.WriteFile(authFileName, globalDatabase.serialize(), 0644); err != nil {
161 panic(err)
162 }
163 } else if err != nil {
164 panic(err)
165 } else if err = globalDatabase.deserialize(authData); err != nil {
166 panic(err)
167 }
168 } else {
169 dbInitDefault()
170 }
171 } else {
172 dbInitDefault()
173 }
174}
175
176// dbInitDefault initializes the database and fills it with default users for testing.
177func dbInitDefault() {

Callers 1

InitFunction · 0.85

Calls 13

NewDatabasePrivilegesFunction · 0.85
NewSchemaPrivilegesFunction · 0.85
NewTablePrivilegesFunction · 0.85
NewSequencePrivilegesFunction · 0.85
NewRoutinePrivilegesFunction · 0.85
NewRoleMembershipFunction · 0.85
dbInitDefaultFunction · 0.85
AuthFilePathMethod · 0.65
ReadFileMethod · 0.45
WriteFileMethod · 0.45
serializeMethod · 0.45

Tested by

no test coverage detected