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

Function writeColumnDefinition

backend/plugin/schema/pg/metadata_migration.go:1296–1331  ·  view source on GitHub ↗
(out *strings.Builder, column *storepb.ColumnMetadata)

Source from the content-addressed store, hash-verified

1294}
1295
1296func writeColumnDefinition(out *strings.Builder, column *storepb.ColumnMetadata) error {
1297 if _, err := fmt.Fprintf(out, "\"%s\" %s", column.Name, column.Type); err != nil {
1298 return err
1299 }
1300 if column.Default != "" {
1301 if _, err := fmt.Fprintf(out, " DEFAULT %s", column.Default); err != nil {
1302 return err
1303 }
1304 }
1305 switch column.GetIdentityGeneration() {
1306 case storepb.ColumnMetadata_ALWAYS:
1307 if _, err := out.WriteString(" GENERATED ALWAYS AS IDENTITY"); err != nil {
1308 return err
1309 }
1310 case storepb.ColumnMetadata_BY_DEFAULT:
1311 if _, err := out.WriteString(" GENERATED BY DEFAULT AS IDENTITY"); err != nil {
1312 return err
1313 }
1314 default:
1315 }
1316 if generation := column.GetGeneration(); generation != nil && generation.GetExpression() != "" {
1317 generationType := "STORED"
1318 if generation.GetType() == storepb.GenerationMetadata_TYPE_VIRTUAL {
1319 generationType = "VIRTUAL"
1320 }
1321 if _, err := fmt.Fprintf(out, " GENERATED ALWAYS AS (%s) %s", generation.GetExpression(), generationType); err != nil {
1322 return err
1323 }
1324 }
1325 if !column.Nullable {
1326 if _, err := out.WriteString(" NOT NULL"); err != nil {
1327 return err
1328 }
1329 }
1330 return nil
1331}
1332
1333func writeDropTrigger(out *strings.Builder, schemaName, tableName, triggerName string) error {
1334 _, err := fmt.Fprintf(out, "DROP TRIGGER \"%s\" ON \"%s\".\"%s\";\n\n", triggerName, schemaName, tableName)

Callers 2

writeColumnDiffFunction · 0.85

Calls 4

GetIdentityGenerationMethod · 0.45
GetGenerationMethod · 0.45
GetExpressionMethod · 0.45
GetTypeMethod · 0.45

Tested by

no test coverage detected