mirror of
https://github.com/minio/minio.git
synced 2024-12-27 15:45:55 -05:00
e29009d347
Commit 5c13765168
removed postgre registration triggerd
by the automatic gofmt command but it was the only where pg is registered. This commit
fixes behavior and adds unit tests to check whether postgre & sql are registered or not.
92 lines
1.6 KiB
Go
92 lines
1.6 KiB
Go
package pq
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/binary"
|
|
|
|
"github.com/lib/pq/oid"
|
|
)
|
|
|
|
type readBuf []byte
|
|
|
|
func (b *readBuf) int32() (n int) {
|
|
n = int(int32(binary.BigEndian.Uint32(*b)))
|
|
*b = (*b)[4:]
|
|
return
|
|
}
|
|
|
|
func (b *readBuf) oid() (n oid.Oid) {
|
|
n = oid.Oid(binary.BigEndian.Uint32(*b))
|
|
*b = (*b)[4:]
|
|
return
|
|
}
|
|
|
|
// N.B: this is actually an unsigned 16-bit integer, unlike int32
|
|
func (b *readBuf) int16() (n int) {
|
|
n = int(binary.BigEndian.Uint16(*b))
|
|
*b = (*b)[2:]
|
|
return
|
|
}
|
|
|
|
func (b *readBuf) string() string {
|
|
i := bytes.IndexByte(*b, 0)
|
|
if i < 0 {
|
|
errorf("invalid message format; expected string terminator")
|
|
}
|
|
s := (*b)[:i]
|
|
*b = (*b)[i+1:]
|
|
return string(s)
|
|
}
|
|
|
|
func (b *readBuf) next(n int) (v []byte) {
|
|
v = (*b)[:n]
|
|
*b = (*b)[n:]
|
|
return
|
|
}
|
|
|
|
func (b *readBuf) byte() byte {
|
|
return b.next(1)[0]
|
|
}
|
|
|
|
type writeBuf struct {
|
|
buf []byte
|
|
pos int
|
|
}
|
|
|
|
func (b *writeBuf) int32(n int) {
|
|
x := make([]byte, 4)
|
|
binary.BigEndian.PutUint32(x, uint32(n))
|
|
b.buf = append(b.buf, x...)
|
|
}
|
|
|
|
func (b *writeBuf) int16(n int) {
|
|
x := make([]byte, 2)
|
|
binary.BigEndian.PutUint16(x, uint16(n))
|
|
b.buf = append(b.buf, x...)
|
|
}
|
|
|
|
func (b *writeBuf) string(s string) {
|
|
b.buf = append(b.buf, (s + "\000")...)
|
|
}
|
|
|
|
func (b *writeBuf) byte(c byte) {
|
|
b.buf = append(b.buf, c)
|
|
}
|
|
|
|
func (b *writeBuf) bytes(v []byte) {
|
|
b.buf = append(b.buf, v...)
|
|
}
|
|
|
|
func (b *writeBuf) wrap() []byte {
|
|
p := b.buf[b.pos:]
|
|
binary.BigEndian.PutUint32(p, uint32(len(p)))
|
|
return b.buf
|
|
}
|
|
|
|
func (b *writeBuf) next(c byte) {
|
|
p := b.buf[b.pos:]
|
|
binary.BigEndian.PutUint32(p, uint32(len(p)))
|
|
b.pos = len(b.buf) + 1
|
|
b.buf = append(b.buf, c, 0, 0, 0, 0)
|
|
}
|