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

Function GetTableDefinition

backend/plugin/schema/pg/get_database_definition.go:525–557  ·  view source on GitHub ↗
(schema string, table *storepb.TableMetadata, sequences []*storepb.SequenceMetadata)

Source from the content-addressed store, hash-verified

523}
524
525func GetTableDefinition(schema string, table *storepb.TableMetadata, sequences []*storepb.SequenceMetadata) (string, error) {
526 var buf strings.Builder
527 if err := writeTable(&buf, schema, table, sequences); err != nil {
528 return "", err
529 }
530 // Skip triggers, rules, and foreign keys for a table without column
531 // metadata; their definitions can reference the missing columns.
532 if tableMissingColumnMetadata(table) {
533 return buf.String(), nil
534 }
535 // Construct triggers.
536 for _, trigger := range table.Triggers {
537 if trigger.SkipDump {
538 continue
539 }
540 if err := writeTrigger(&buf, schema, table.Name, trigger); err != nil {
541 return "", err
542 }
543 }
544 // Construct rules.
545 if len(table.Rules) > 0 {
546 if err := writeRules(&buf, schema, table.Name, table.Rules); err != nil {
547 return "", err
548 }
549 }
550 // Construct foreign keys.
551 for _, fk := range table.ForeignKeys {
552 if err := writeForeignKey(&buf, schema, table.Name, fk); err != nil {
553 return "", err
554 }
555 }
556 return buf.String(), nil
557}
558
559func GetViewDefinition(schema string, view *storepb.ViewMetadata) (string, error) {
560 var buf strings.Builder

Callers

nothing calls this directly

Calls 6

writeRulesFunction · 0.85
writeTableFunction · 0.70
writeTriggerFunction · 0.70
writeForeignKeyFunction · 0.70
StringMethod · 0.65

Tested by

no test coverage detected