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

Function replaceBackupTableWithSource

backend/api/v1/sql_service.go:548–582  ·  view source on GitHub ↗
(ctx context.Context, stores *store.Store, instance *store.InstanceMessage, database *store.DatabaseMessage, spans []*parserbase.QuerySpan)

Source from the content-addressed store, hash-verified

546}
547
548func replaceBackupTableWithSource(ctx context.Context, stores *store.Store, instance *store.InstanceMessage, database *store.DatabaseMessage, spans []*parserbase.QuerySpan) error {
549 switch instance.Metadata.GetEngine() {
550 case storepb.Engine_POSTGRES:
551 // Don't need to check the database name for postgres here.
552 // We backup the table to the same database with bbdataarchive schema for Postgres.
553 case storepb.Engine_ORACLE:
554 if database.DatabaseName != common.BackupDatabaseNameOfEngine(storepb.Engine_ORACLE) {
555 return nil
556 }
557 default:
558 if database.DatabaseName != common.BackupDatabaseNameOfEngine(instance.Metadata.GetEngine()) {
559 return nil
560 }
561 }
562 dbMetadata, err := stores.GetDBSchema(ctx, &store.FindDBSchemaMessage{
563 Workspace: common.GetWorkspaceIDFromContext(ctx),
564 InstanceID: database.InstanceID,
565 DatabaseName: database.DatabaseName,
566 })
567 if err != nil {
568 return err
569 }
570 schema := getSchemaMetadata(instance.Metadata.GetEngine(), dbMetadata)
571 if schema == nil {
572 return nil
573 }
574
575 for _, span := range spans {
576 span.SourceColumns = generateNewSourceColumnSet(instance.Metadata.GetEngine(), span.SourceColumns, schema)
577 for _, result := range span.Results {
578 result.SourceColumns = generateNewSourceColumnSet(instance.Metadata.GetEngine(), result.SourceColumns, schema)
579 }
580 }
581 return nil
582}
583
584func generateNewSourceColumnSet(engine storepb.Engine, origin parserbase.SourceColumnSet, schema *model.SchemaMetadata) parserbase.SourceColumnSet {
585 result := make(parserbase.SourceColumnSet)

Callers 1

queryRetryFunction · 0.85

Calls 6

getSchemaMetadataFunction · 0.85
GetDBSchemaMethod · 0.80
GetEngineMethod · 0.45

Tested by

no test coverage detected