@@ -238,7 +238,7 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
238
238
fval , _ := fastparse .ParseFloat64 (v .RawStr ())
239
239
return newEvalFloat (fval ), nil
240
240
default :
241
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
241
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
242
242
if err != nil {
243
243
return nil , err
244
244
}
@@ -265,7 +265,7 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
265
265
fval , _ := fastparse .ParseFloat64 (v .RawStr ())
266
266
dec = decimal .NewFromFloat (fval )
267
267
default :
268
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
268
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
269
269
if err != nil {
270
270
return nil , err
271
271
}
@@ -285,7 +285,7 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
285
285
i , err := fastparse .ParseInt64 (v .RawStr (), 10 )
286
286
return newEvalInt64 (i ), err
287
287
default :
288
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
288
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
289
289
if err != nil {
290
290
return nil , err
291
291
}
@@ -304,7 +304,7 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
304
304
u , err := fastparse .ParseUint64 (v .RawStr (), 10 )
305
305
return newEvalUint64 (u ), err
306
306
default :
307
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
307
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
308
308
if err != nil {
309
309
return nil , err
310
310
}
@@ -315,15 +315,15 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
315
315
case sqltypes .IsText (typ ) || sqltypes .IsBinary (typ ):
316
316
switch {
317
317
case v .IsText () || v .IsBinary ():
318
- return newEvalRaw (v .Type (), v .Raw (), defaultCoercionCollation ( collation )), nil
318
+ return newEvalRaw (v .Type (), v .Raw (), typedCoercionCollation ( v . Type (), collation )), nil
319
319
case sqltypes .IsText (typ ):
320
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
320
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
321
321
if err != nil {
322
322
return nil , err
323
323
}
324
324
return evalToVarchar (e , collation , true )
325
325
default :
326
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
326
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
327
327
if err != nil {
328
328
return nil , err
329
329
}
@@ -333,7 +333,7 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
333
333
case typ == sqltypes .TypeJSON :
334
334
return json .NewFromSQL (v )
335
335
case typ == sqltypes .Date :
336
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
336
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
337
337
if err != nil {
338
338
return nil , err
339
339
}
@@ -344,7 +344,7 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
344
344
}
345
345
return d , nil
346
346
case typ == sqltypes .Datetime || typ == sqltypes .Timestamp :
347
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
347
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
348
348
if err != nil {
349
349
return nil , err
350
350
}
@@ -355,7 +355,7 @@ func valueToEvalCast(v sqltypes.Value, typ sqltypes.Type, collation collations.I
355
355
}
356
356
return dt , nil
357
357
case typ == sqltypes .Time :
358
- e , err := valueToEval (v , defaultCoercionCollation ( collation ))
358
+ e , err := valueToEval (v , typedCoercionCollation ( v . Type (), collation ))
359
359
if err != nil {
360
360
return nil , err
361
361
}
0 commit comments