(out io.Writer, schema string, tableName string, columns []*storepb.ColumnMetadata, checks []*storepb.CheckConstraintMetadata, excludes []*storepb.ExcludeConstraintMetadata)
| 1420 | } |
| 1421 | |
| 1422 | func 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 != "" { |
no outgoing calls
no test coverage detected