Skip to content

Commit ef5f159

Browse files
committed
fix(redshift): wire up exclude config to actually filter databases
The exclude field was defined in the config but never used during extraction. Databases listed in exclude.databases are now skipped.
1 parent 106ac3d commit ef5f159

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

plugins/extractors/redshift/redshift.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/raystack/meteor/models"
1313
meteorv1beta1 "github.com/raystack/meteor/models/raystack/meteor/v1beta1"
1414
"github.com/raystack/meteor/plugins"
15+
"github.com/raystack/meteor/plugins/sqlutil"
1516
"github.com/raystack/meteor/registry"
1617
log "github.com/raystack/salt/observability/logger"
1718
)
@@ -67,9 +68,10 @@ func WithClient(redshiftClient redshiftdataapiserviceiface.RedshiftDataAPIServic
6768
// from the redshift server
6869
type Extractor struct {
6970
plugins.BaseExtractor
70-
config Config
71-
logger log.Logger
72-
client redshiftdataapiserviceiface.RedshiftDataAPIServiceAPI
71+
config Config
72+
logger log.Logger
73+
client redshiftdataapiserviceiface.RedshiftDataAPIServiceAPI
74+
excludedDbs map[string]bool
7375
}
7476

7577
// New returns a pointer to an initialized Extractor Object
@@ -93,6 +95,8 @@ func (e *Extractor) Init(ctx context.Context, config plugins.Config) error {
9395
return err
9496
}
9597

98+
e.excludedDbs = sqlutil.BuildBoolMap(e.config.Exclude.Databases)
99+
96100
if e.client == nil {
97101
// Create session
98102
sess := session.Must(session.NewSession())
@@ -112,6 +116,9 @@ func (e *Extractor) Extract(_ context.Context, emit plugins.Emit) error {
112116
}
113117

114118
for _, database := range listDB {
119+
if e.excludedDbs[database] {
120+
continue
121+
}
115122
tables, err := e.GetTables(database)
116123
if err != nil {
117124
e.logger.Error("failed to get tables, skipping database", "error", err)

0 commit comments

Comments
 (0)