snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
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
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
This commit is contained in:
51
internal/codegen/golang/templates/pgx/copyfromCopy.tmpl
Normal file
51
internal/codegen/golang/templates/pgx/copyfromCopy.tmpl
Normal file
@@ -0,0 +1,51 @@
|
||||
{{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}}
|
||||
Reference in New Issue
Block a user