(ctx context.Context, stores *store.Store, instance *store.InstanceMessage, database *store.DatabaseMessage, spans []*parserbase.QuerySpan)
| 546 | } |
| 547 | |
| 548 | func 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 | |
| 584 | func generateNewSourceColumnSet(engine storepb.Engine, origin parserbase.SourceColumnSet, schema *model.SchemaMetadata) parserbase.SourceColumnSet { |
| 585 | result := make(parserbase.SourceColumnSet) |
no test coverage detected