MCPcopy
hub / github.com/jackc/pgx / combineFieldDescriptionsAndResultFormats

Function combineFieldDescriptionsAndResultFormats

pgconn/pgconn.go:3015–3042  ·  view source on GitHub ↗
(outputFields, inputFields []FieldDescription, resultFormats []int16)

Source from the content-addressed store, hash-verified

3013}
3014
3015func combineFieldDescriptionsAndResultFormats(outputFields, inputFields []FieldDescription, resultFormats []int16) error {
3016 switch {
3017 case len(resultFormats) == 0:
3018 // No format codes provided means text format for all columns.
3019 for i := range inputFields {
3020 outputFields[i] = inputFields[i]
3021 outputFields[i].Format = pgtype.TextFormatCode
3022 }
3023 case len(resultFormats) == 1:
3024 // Single format code applies to all columns.
3025 format := resultFormats[0]
3026 for i := range inputFields {
3027 outputFields[i] = inputFields[i]
3028 outputFields[i].Format = format
3029 }
3030 case len(resultFormats) == len(inputFields):
3031 // One format code per column.
3032 for i := range inputFields {
3033 outputFields[i] = inputFields[i]
3034 outputFields[i].Format = resultFormats[i]
3035 }
3036 default:
3037 // This should not occur if Bind validation is correct, but handle gracefully
3038 return fmt.Errorf("result format codes length %d does not match field count %d", len(resultFormats), len(inputFields))
3039 }
3040
3041 return nil
3042}

Callers 3

NextResultMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected