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

Function writeCreateTable

backend/plugin/schema/pg/get_database_definition.go:1422–1517  ·  view source on GitHub ↗
(out io.Writer, schema string, tableName string, columns []*storepb.ColumnMetadata, checks []*storepb.CheckConstraintMetadata, excludes []*storepb.ExcludeConstraintMetadata)

Source from the content-addressed store, hash-verified

1420}
1421
1422func writeCreateTable(out io.Writer, schema string, tableName string, columns []*storepb.ColumnMetadata, checks []*storepb.CheckConstraintMetadata, excludes []*storepb.ExcludeConstraintMetadata) error {
1423 if _, err := io.WriteString(out, `CREATE TABLE "`); err != nil {
1424 return err
1425 }
1426
1427 if _, err := io.WriteString(out, schema); err != nil {
1428 return err
1429 }
1430
1431 if _, err := io.WriteString(out, `"."`); err != nil {
1432 return err
1433 }
1434
1435 if _, err := io.WriteString(out, tableName); err != nil {
1436 return err
1437 }
1438
1439 if _, err := io.WriteString(out, `" (`); err != nil {
1440 return err
1441 }
1442
1443 // first tracks whether we've written any element inside the parens yet so
1444 // the leading comma on constraints is suppressed when there are no columns
1445 // (e.g. tables that only carry CHECK constraints).
1446 first := true
1447 writeItemSep := func() error {
1448 if first {
1449 first = false
1450 _, err := io.WriteString(out, "\n ")
1451 return err
1452 }
1453 _, err := io.WriteString(out, ",\n ")
1454 return err
1455 }
1456
1457 for _, column := range columns {
1458 if err := writeItemSep(); err != nil {
1459 return err
1460 }
1461
1462 if _, err := io.WriteString(out, `"`); err != nil {
1463 return err
1464 }
1465
1466 if _, err := io.WriteString(out, column.Name); err != nil {
1467 return err
1468 }
1469
1470 if _, err := io.WriteString(out, `" `); err != nil {
1471 return err
1472 }
1473
1474 if _, err := io.WriteString(out, column.Type); err != nil {
1475 return err
1476 }
1477
1478 // Handle default values
1479 if column.Default != "" {

Callers 2

writeTableFunction · 0.85
writePartitionTableFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected