package reader import ( "io" "path/filepath" "git.wecise.com/wecise/cgimport/odbc" "git.wecise.com/wecise/odb-go/dbo" "github.com/wecisecode/util/merrs" ) var mcfg = odbc.Config var logger = odbc.Logger type BlockReader interface { ReadBlock(skiplines int) (block map[string]any, line string, linecount int, err error) } func NewBlockReader(filename string, classname string, reader io.Reader, schema *dbo.Schema) (BlockReader, error) { fileext := filepath.Ext(filename) switch fileext { case ".csv": return NewCSVBlockReader(filename, classname, reader, schema), nil case ".txt": return NewTXTBlockReader(filename, classname, reader), nil } return nil, merrs.UnsupportedError.NewError("unsupported data format " + fileext) }