MCPcopy Create free account
hub / github.com/bytebase/bytebase / writeEnumTypeDiff

Function writeEnumTypeDiff

backend/plugin/schema/pg/metadata_migration.go:1822–1843  ·  view source on GitHub ↗
(out *strings.Builder, enumDiff *schema.EnumTypeDiff)

Source from the content-addressed store, hash-verified

1820}
1821
1822func writeEnumTypeDiff(out *strings.Builder, enumDiff *schema.EnumTypeDiff) error {
1823 switch enumDiff.Action {
1824 case schema.MetadataDiffActionCreate:
1825 if err := writeEnum(out, enumDiff.SchemaName, enumDiff.NewEnumType); err != nil {
1826 return err
1827 }
1828 if _, err := out.WriteString(";\n\n"); err != nil {
1829 return err
1830 }
1831 if enumDiff.NewEnumType.Comment != "" {
1832 return writeEnumComment(out, enumDiff.SchemaName, enumDiff.NewEnumType)
1833 }
1834 return nil
1835 case schema.MetadataDiffActionDrop:
1836 _, err := fmt.Fprintf(out, "DROP TYPE \"%s\".\"%s\";\n\n", enumDiff.SchemaName, enumDiff.EnumTypeName)
1837 return err
1838 case schema.MetadataDiffActionAlter:
1839 return writeAlterEnumTypeAddValues(out, enumDiff.SchemaName, enumDiff.OldEnumType, enumDiff.NewEnumType)
1840 default:
1841 return nil
1842 }
1843}
1844
1845func writeAlterEnumTypeAddValues(out *strings.Builder, schemaName string, oldEnum *storepb.EnumTypeMetadata, newEnum *storepb.EnumTypeMetadata) error {
1846 oldValueSet := make(map[string]bool)

Callers 3

writeDropPhaseFunction · 0.85
writeCreateOrAlterPhaseFunction · 0.85
writeDropSchemaObjectsFunction · 0.85

Calls 3

writeEnumFunction · 0.85
writeEnumCommentFunction · 0.85

Tested by

no test coverage detected