(serverVersion int, v []byte)
| 132 | } |
| 133 | |
| 134 | func encodeBytea(serverVersion int, v []byte) (result []byte) { |
| 135 | if serverVersion >= 90000 { |
| 136 | // Use the hex format if we know that the server supports it |
| 137 | result = make([]byte, 2+hex.EncodedLen(len(v))) |
| 138 | result[0] = '\\' |
| 139 | result[1] = 'x' |
| 140 | hex.Encode(result[2:], v) |
| 141 | } else { |
| 142 | // .. or resort to "escape" |
| 143 | for _, b := range v { |
| 144 | if b == '\\' { |
| 145 | result = append(result, '\\', '\\') |
| 146 | } else if b < 0x20 || b > 0x7e { |
| 147 | result = append(result, []byte(fmt.Sprintf("\\%03o", b))...) |
| 148 | } else { |
| 149 | result = append(result, b) |
| 150 | } |
| 151 | } |
| 152 | } |
| 153 | |
| 154 | return result |
| 155 | } |
| 156 | |
| 157 | var errInvalidTimestamp = errors.New("invalid timestamp") |
| 158 |
no outgoing calls
no test coverage detected
searching dependent graphs…