Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
52 lines
1.3 KiB
Cheetah
52 lines
1.3 KiB
Cheetah
{{define "copyfromCodePgx"}}
|
|
{{range .GoQueries}}
|
|
{{if eq .Cmd ":copyfrom" }}
|
|
// iteratorFor{{.MethodName}} implements pgx.CopyFromSource.
|
|
type iteratorFor{{.MethodName}} struct {
|
|
rows []{{.Arg.DefineType}}
|
|
skippedFirstNextCall bool
|
|
}
|
|
|
|
func (r *iteratorFor{{.MethodName}}) Next() bool {
|
|
if len(r.rows) == 0 {
|
|
return false
|
|
}
|
|
if !r.skippedFirstNextCall {
|
|
r.skippedFirstNextCall = true
|
|
return true
|
|
}
|
|
r.rows = r.rows[1:]
|
|
return len(r.rows) > 0
|
|
}
|
|
|
|
func (r iteratorFor{{.MethodName}}) Values() ([]any, error) {
|
|
return []any{
|
|
{{- if .Arg.Struct }}
|
|
{{- range .Arg.Struct.Fields }}
|
|
r.rows[0].{{.Name}},
|
|
{{- end }}
|
|
{{- else }}
|
|
r.rows[0],
|
|
{{- end }}
|
|
}, nil
|
|
}
|
|
|
|
func (r iteratorFor{{.MethodName}}) Err() error {
|
|
return nil
|
|
}
|
|
|
|
{{range .Comments}}//{{.}}
|
|
{{end -}}
|
|
{{- if $.EmitMethodsWithDBArgument -}}
|
|
func (q *Queries) {{.MethodName}}(ctx context.Context, db DBTX, {{.Arg.SlicePair}}) (int64, error) {
|
|
return db.CopyFrom(ctx, {{.TableIdentifierAsGoSlice}}, {{.Arg.ColumnNamesAsGoSlice}}, &iteratorFor{{.MethodName}}{rows: {{.Arg.Name}}})
|
|
{{- else -}}
|
|
func (q *Queries) {{.MethodName}}(ctx context.Context, {{.Arg.SlicePair}}) (int64, error) {
|
|
return q.db.CopyFrom(ctx, {{.TableIdentifierAsGoSlice}}, {{.Arg.ColumnNamesAsGoSlice}}, &iteratorFor{{.MethodName}}{rows: {{.Arg.Name}}})
|
|
{{- end}}
|
|
}
|
|
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|