Skip to content

Commit 9988aef

Browse files
committed
Propagate context parameter.
1 parent 2ac2dec commit 9988aef

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed

memory/table_data.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func (td TableData) partition(ctx *sql.Context, row sql.Row) (int, error) {
139139

140140
t, isStringType := td.schema.Schema[keyColumns[i]].Type.(sql.StringType)
141141
if isStringType && v != nil {
142-
v, err = types.ConvertToString(v, t, nil)
142+
v, err = types.ConvertToString(ctx, v, t, nil)
143143
if err == nil {
144144
err = t.Collation().WriteWeightString(hash, v.(string))
145145
}

sql/expression/function/inet_convert.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func (i *InetAton) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
8181
}
8282

8383
// Expect to receive an IP address, so convert val into string
84-
ipstr, err := types.ConvertToString(val, types.LongText, nil)
84+
ipstr, err := types.ConvertToString(ctx, val, types.LongText, nil)
8585
if err != nil {
8686
return nil, sql.ErrInvalidType.New(reflect.TypeOf(val).String())
8787
}

sql/expression/function/locks.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func (nl *NamedLockFunction) GetLockName(ctx *sql.Context, row sql.Row) (*string
7777
if !ok {
7878
return nil, ErrIllegalLockNameArgType.New(nl.Child.Type().String(), nl.funcName)
7979
}
80-
lockName, err := types.ConvertToString(val, s, nil)
80+
lockName, err := types.ConvertToString(ctx, val, s, nil)
8181
if err != nil {
8282
return nil, fmt.Errorf("%w; %s", ErrIllegalLockNameArgType.New(nl.Child.Type().String(), nl.funcName), err)
8383
}
@@ -328,7 +328,7 @@ func (gl *GetLock) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) {
328328
return nil, ErrIllegalLockNameArgType.New(gl.LeftChild.Type().String(), gl.FunctionName())
329329
}
330330

331-
lockName, err := types.ConvertToString(leftVal, s, nil)
331+
lockName, err := types.ConvertToString(ctx, leftVal, s, nil)
332332
if err != nil {
333333
return nil, fmt.Errorf("%w; %s", ErrIllegalLockNameArgType.New(gl.LeftChild.Type().String(), gl.FunctionName()), err)
334334
}

sql/rowexec/agg.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ func groupingKey(
259259

260260
t, isStringType := expr.Type().(sql.StringType)
261261
if isStringType && v != nil {
262-
v, err = types.ConvertToString(v, t, nil)
262+
v, err = types.ConvertToString(ctx, v, t, nil)
263263
if err == nil {
264264
err = t.Collation().WriteWeightString(hash, v.(string))
265265
}

sql/types/strings.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,8 @@ func (t StringType) Compare(a interface{}, b interface{}) (int, error) {
319319

320320
// Convert implements Type interface.
321321
func (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

Comments
 (0)