@@ -319,6 +319,8 @@ func (t StringType) Compare(a interface{}, b interface{}) (int, error) {
319319
320320// Convert implements Type interface.
321321func (t StringType ) Convert (v interface {}) (interface {}, sql.ConvertInRange , error ) {
322+ // TODO: Add context parameter to Convert
323+ ctx := context .Background ()
322324 if v == nil {
323325 return nil , sql .InRange , nil
324326 }
@@ -333,7 +335,7 @@ func (t StringType) Convert(v interface{}) (interface{}, sql.ConvertInRange, err
333335 return v , sql .InRange , nil
334336 }
335337 }
336- val , err := ConvertToBytes (v , t , nil )
338+ val , err := ConvertToBytes (ctx , v , t , nil )
337339 if err != nil {
338340 return nil , sql .OutOfRange , err
339341 }
@@ -349,12 +351,12 @@ func (t StringType) Convert(v interface{}) (interface{}, sql.ConvertInRange, err
349351
350352}
351353
352- func ConvertToString (v interface {}, t sql.StringType , dest []byte ) (string , error ) {
353- ret , err := ConvertToBytes (v , t , dest )
354+ func ConvertToString (ctx context. Context , v interface {}, t sql.StringType , dest []byte ) (string , error ) {
355+ ret , err := ConvertToBytes (ctx , v , t , dest )
354356 return string (ret ), err
355357}
356358
357- func ConvertToBytes (v interface {}, t sql.StringType , dest []byte ) ([]byte , error ) {
359+ func ConvertToBytes (ctx context. Context , v interface {}, t sql.StringType , dest []byte ) ([]byte , error ) {
358360 var val []byte
359361 start := len (dest )
360362 switch s := v .(type ) {
@@ -418,12 +420,11 @@ func ConvertToBytes(v interface{}, t sql.StringType, dest []byte) ([]byte, error
418420 }
419421 val = append (dest , st ... )
420422 case sql.AnyWrapper :
421- //TODO: Propagate context
422- unwrapped , err := s .UnwrapAny (context .Background ())
423+ unwrapped , err := s .UnwrapAny (ctx )
423424 if err != nil {
424425 return nil , err
425426 }
426- val , err = ConvertToBytes (unwrapped , t , dest )
427+ val , err = ConvertToBytes (ctx , unwrapped , t , dest )
427428 if err != nil {
428429 return nil , err
429430 }
@@ -566,7 +567,7 @@ func (t StringType) SQL(ctx *sql.Context, dest []byte, v interface{}) (sqltypes.
566567 start := len (dest )
567568 var val []byte
568569 if IsBinaryType (t ) {
569- val , err = ConvertToBytes (v , t , dest )
570+ val , err = ConvertToBytes (ctx , v , t , dest )
570571 if err != nil {
571572 return sqltypes.Value {}, err
572573 }
@@ -613,7 +614,7 @@ func (t StringType) SQL(ctx *sql.Context, dest []byte, v interface{}) (sqltypes.
613614 valueBytes = valueBytes [start + 1 :]
614615 }
615616 default :
616- valueBytes , err = ConvertToBytes (v , t , dest )
617+ valueBytes , err = ConvertToBytes (ctx , v , t , dest )
617618 }
618619 if t .baseType == sqltypes .Binary {
619620 val = append (val , bytes .Repeat ([]byte {0 }, int (t .maxCharLength )- len (val ))... )
0 commit comments