(outputFields, inputFields []FieldDescription, resultFormats []int16)
| 3013 | } |
| 3014 | |
| 3015 | func 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 | } |
no outgoing calls
no test coverage detected