schema/field: use actual go type in generated interfaces (#1428)

This commit is contained in:
Ariel Mashraki
2021-04-07 09:53:44 +03:00
committed by GitHub
parent 3fe9d1081e
commit 2cc1c628dc
107 changed files with 4932 additions and 2455 deletions

View File

@@ -62,7 +62,7 @@ func ({{ $receiver }} *{{ $builder }}) createSpec() (*{{ $.Name }}, *sqlgraph.Cr
Value: value,
Column: {{ $.Package }}.{{ $f.Constant }},
})
_node.{{ $f.StructField }} = {{ if $f.Nillable }}&{{ end }}value
_node.{{ $f.StructField }} = {{ if $f.NillableValue }}&{{ end }}value
}
{{- end }}
{{- range $e := $.Edges }}
@@ -72,7 +72,7 @@ func ({{ $receiver }} *{{ $builder }}) createSpec() (*{{ $.Name }}, *sqlgraph.Cr
{{- end }}
{{- if $e.OwnFK }}
{{- $fk := $e.ForeignKey }}
_node.{{ $fk.StructField }} = {{ if $fk.Field.Nillable }}&{{ end }}nodes[0]
_node.{{ $fk.StructField }} = {{ if $fk.Field.NillableValue }}&{{ end }}nodes[0]
{{- end }}
_spec.Edges = append(_spec.Edges, edge)
}

View File

@@ -25,12 +25,12 @@ func (*{{ $.Name }}) scanValues(columns []string) ([]interface{}, error) {
switch columns[i] {
{{- range $type, $columns := $ctypes }}
case {{ range $i, $c := $columns }}{{ if ne $i 0 }},{{ end }}{{ $.Package }}.{{ $c }}{{ end }}:
values[i] = &{{ $type }}{}
values[i] = new({{ $type }})
{{- end }}
{{- range $i, $fk := $.UnexportedForeignKeys }}
{{- $f := $fk.Field }}
case {{ $.Package }}.ForeignKeys[{{ $i }}]: // {{ $f.Name }}
values[i] = &{{ if not $f.UserDefined }}sql.NullInt64{{ else }}{{ $f.NullType }}{{ end }}{}
values[i] = new({{ if not $f.UserDefined }}sql.NullInt64{{ else }}{{ $f.NullType }}{{ end }})
{{- end }}
default:
return nil, fmt.Errorf("unexpected column %q for type {{ $.Name }}", columns[i])
@@ -78,7 +78,7 @@ func ({{ $receiver }} *{{ $.Name }}) assignValues(columns []string, values []int
return fmt.Errorf("unexpected type %T for edge-field {{ $f.Name}}", value)
} else if value.Valid {
{{ $receiver }}.{{ $fk.StructField }} = new({{ $f.Type }})
{{ if $f.Nillable }}*{{ end }}{{ $receiver }}.{{ $fk.StructField }} = {{ $f.Type }}(value.Int64)
{{ if and $f.Nillable (not $f.Type.Nillable) }}*{{ end }}{{ $receiver }}.{{ $fk.StructField }} = {{ $f.Type }}(value.Int64)
}
{{- end }}
{{- end }}
@@ -107,7 +107,7 @@ func ({{ $receiver }} *{{ $.Name }}) assignValues(columns []string, values []int
return fmt.Errorf("unexpected type %T for field {{ $f.Name }}", values[{{ $i }}])
{{- if and (not $f.Type.ValueScanner) (hasPrefix $nulltype "sql") }}
} else if value.Valid {
{{- if $f.Nillable }}
{{- if $f.NillableValue }}
{{ $ret }}.{{ $field }} = new({{ $f.Type }})
*{{ $ret }}.{{ $field }} = {{ $f.NullTypeField "value" }}
{{- else }}
@@ -115,7 +115,7 @@ func ({{ $receiver }} *{{ $.Name }}) assignValues(columns []string, values []int
{{- end }}
{{- else }}
} else if value != nil {
{{ $ret }}.{{ $field }} = {{ if not $f.Nillable }}*{{ end }}value
{{ $ret }}.{{ $field }} = {{ if and (not $f.Nillable) (not $f.Type.RType.IsPtr) }}*{{ end }}value
{{- end }}
}
{{- end }}