package main import ( "time" log "github.com/sirupsen/logrus" ) func transformRowsMssql(columns []ColumnType, in <-chan []UnknownRowValues, out chan<- []UnknownRowValues) { for rows := range in { log.Debugf("Chunk received, transforming...") for _, rowValues := range rows { for i, col := range columns { value := rowValues[i] if col.SystemType() == "uniqueidentifier" { if b, ok := value.([]byte); ok { rowValues[i] = mssqlUuidToBigEndian(b) } } else if col.SystemType() == "geometry" || col.SystemType() == "geography" { if b, ok := value.([]byte); ok { rowValues[i] = wkbToEwkbWithSrid(b, 4326) } } else if col.SystemType() == "datetime" || col.SystemType() == "datetime2" { if t, ok := value.(time.Time); ok { rowValues[i] = ensureUTC(t) } } } } out <- rows } }