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

Function writeExtension

backend/plugin/schema/pg/get_database_definition.go:2454–2517  ·  view source on GitHub ↗
(out io.Writer, extension *storepb.ExtensionMetadata)

Source from the content-addressed store, hash-verified

2452}
2453
2454func writeExtension(out io.Writer, extension *storepb.ExtensionMetadata) error {
2455 if _, err := io.WriteString(out, `CREATE EXTENSION IF NOT EXISTS "`); err != nil {
2456 return err
2457 }
2458
2459 if _, err := io.WriteString(out, extension.Name); err != nil {
2460 return err
2461 }
2462
2463 if _, err := io.WriteString(out, `"`); err != nil {
2464 return err
2465 }
2466
2467 // Add WITH SCHEMA clause if schema is specified and not empty
2468 if extension.Schema != "" {
2469 if _, err := io.WriteString(out, ` WITH SCHEMA "`); err != nil {
2470 return err
2471 }
2472 if _, err := io.WriteString(out, extension.Schema); err != nil {
2473 return err
2474 }
2475 if _, err := io.WriteString(out, `"`); err != nil {
2476 return err
2477 }
2478 }
2479
2480 // Add VERSION clause if version is specified
2481 if extension.Version != "" {
2482 if _, err := io.WriteString(out, ` VERSION '`); err != nil {
2483 return err
2484 }
2485 if _, err := io.WriteString(out, extension.Version); err != nil {
2486 return err
2487 }
2488 if _, err := io.WriteString(out, `'`); err != nil {
2489 return err
2490 }
2491 }
2492
2493 if _, err := io.WriteString(out, `;`); err != nil {
2494 return err
2495 }
2496
2497 if _, err := io.WriteString(out, "\n"); err != nil {
2498 return err
2499 }
2500
2501 // Write extension description (comment) if present
2502 if extension.Description != "" {
2503 if _, err := io.WriteString(out, "\n"); err != nil {
2504 return err
2505 }
2506 if err := writeExtensionComment(out, extension); err != nil {
2507 return err
2508 }
2509 } else {
2510 // Add blank line even if no description
2511 if _, err := io.WriteString(out, "\n"); err != nil {

Callers 4

writeExtensionDiffFunction · 0.85
GetDatabaseDefinitionFunction · 0.85
getSDLFormatFunction · 0.85

Calls 1

writeExtensionCommentFunction · 0.85

Tested by

no test coverage detected