Skip to content

Commit 57451ac

Browse files
committed
fix
1 parent c23c61d commit 57451ac

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

internal/bind/params.go

+7-17
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,8 @@ func toValue(v any) (_ value.Value, err error) {
316316
kk, has := v.Type().Field(i).Tag.Lookup("sql")
317317
if !has {
318318
return nil, xerrors.WithStackTrace(
319-
fmt.Errorf("cannot parse %q as key field of struct: %w",
320-
v.Type().Field(i).Name, errUnsupportedType,
319+
fmt.Errorf("cannot parse %q as key field of struct %T: %w",
320+
v.Type().Field(i).Name, x, errUnsupportedType,
321321
),
322322
)
323323
}
@@ -357,26 +357,16 @@ func supportNewTypeLink(x any) string {
357357
}
358358

359359
func toYdbParam(name string, value any) (*params.Parameter, error) {
360-
switch tv := value.(type) {
361-
case driver.NamedValue:
362-
n, v := tv.Name, tv.Value
360+
if nv, has := value.(driver.NamedValue); has {
361+
n, v := nv.Name, nv.Value
363362
if n != "" {
364363
name = n
365364
}
366-
if p, has := tv.Value.(*params.Parameter); has {
367-
return p, nil
368-
}
369365
value = v
370-
case *params.Parameter:
371-
return tv, nil
372-
case *params.Params:
373-
if len(*tv) > 1 {
374-
return nil, xerrors.WithStackTrace(
375-
fmt.Errorf("unexpected params.Params length: %d", len(*tv)),
376-
)
377-
}
366+
}
378367

379-
return (*tv)[0], nil
368+
if nv, ok := value.(params.NamedValue); ok {
369+
return params.Named(nv.Name(), nv.Value()), nil
380370
}
381371

382372
v, err := toValue(value)

0 commit comments

Comments
 (0)