MCPcopy Index your code
hub / github.com/coder/coder / generateUniqueConstraints

Function generateUniqueConstraints

scripts/dbgen/constraint.go:144–174  ·  view source on GitHub ↗

generateUniqueConstraints generates the UniqueConstraint enum.

()

Source from the content-addressed store, hash-verified

142
143// generateUniqueConstraints generates the UniqueConstraint enum.
144func generateUniqueConstraints() error {
145 localPath, err := localFilePath()
146 if err != nil {
147 return err
148 }
149 databasePath := filepath.Join(localPath, "..", "..", "..", "coderd", "database")
150 dumpPath := filepath.Join(databasePath, "dump.sql")
151 outputPath := filepath.Join(databasePath, "unique_constraint.go")
152
153 fn := func(query string) ([]constraint, error) {
154 if strings.Contains(query, "UNIQUE") || strings.Contains(query, "PRIMARY KEY") {
155 name := ""
156 switch {
157 case strings.Contains(query, "ALTER TABLE") && strings.Contains(query, "ADD CONSTRAINT"):
158 name = strings.Split(query, " ")[6]
159 case strings.Contains(query, "CREATE UNIQUE INDEX"):
160 name = strings.Split(query, " ")[3]
161 default:
162 return nil, xerrors.Errorf("unknown unique constraint format: %s", query)
163 }
164 return []constraint{
165 {
166 name: name,
167 comment: query,
168 },
169 }, nil
170 }
171 return nil, nil
172 }
173 return generateConstraints(dumpPath, outputPath, constraintTypeUnique, fn)
174}
175
176// generateForeignKeyConstraints generates the ForeignKeyConstraint enum.
177func generateForeignKeyConstraints() error {

Callers 1

runFunction · 0.85

Calls 4

localFilePathFunction · 0.85
generateConstraintsFunction · 0.85
ContainsMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected