37 lines
847 B
Go
37 lines
847 B
Go
package extractor
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
|
|
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/config"
|
|
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/custom_errors"
|
|
"git.ksdemosapps.com/kylesoda/go-migrate/internal/app/models"
|
|
)
|
|
|
|
type Extractor interface {
|
|
ProcessBatch(
|
|
ctx context.Context,
|
|
tableInfo config.SourceTableInfo,
|
|
columns []models.ColumnType,
|
|
chunkSize int,
|
|
batch models.Batch,
|
|
indexPrimaryKey int,
|
|
chChunksOut chan<- models.Chunk,
|
|
rowsRead *int64,
|
|
) error
|
|
|
|
Exec(
|
|
ctx context.Context,
|
|
tableInfo config.SourceTableInfo,
|
|
columns []models.ColumnType,
|
|
chunkSize int,
|
|
chBatchesIn <-chan models.Batch,
|
|
chChunksOut chan<- models.Chunk,
|
|
chErrorsOut chan<- custom_errors.ExtractorError,
|
|
chJobErrorsOut chan<- custom_errors.JobError,
|
|
wgActiveBatches *sync.WaitGroup,
|
|
rowsRead *int64,
|
|
)
|
|
}
|