mirror of https://github.com/jackc/pgx.git
Make Oid public
parent
1d1d836207
commit
df0a537f59
|
@ -46,8 +46,8 @@ func createNarrowTestData(b *testing.B, conn *Connection) {
|
|||
narrowTestDataLoaded = true
|
||||
}
|
||||
|
||||
func removeBinaryEncoders() (encoders map[oid]func(*MessageReader, int32) interface{}) {
|
||||
encoders = make(map[oid]func(*MessageReader, int32) interface{})
|
||||
func removeBinaryEncoders() (encoders map[Oid]func(*MessageReader, int32) interface{}) {
|
||||
encoders = make(map[Oid]func(*MessageReader, int32) interface{})
|
||||
for k, v := range valueTranscoders {
|
||||
encoders[k] = v.DecodeBinary
|
||||
valueTranscoders[k].DecodeBinary = nil
|
||||
|
@ -55,7 +55,7 @@ func removeBinaryEncoders() (encoders map[oid]func(*MessageReader, int32) interf
|
|||
return
|
||||
}
|
||||
|
||||
func restoreBinaryEncoders(encoders map[oid]func(*MessageReader, int32) interface{}) {
|
||||
func restoreBinaryEncoders(encoders map[Oid]func(*MessageReader, int32) interface{}) {
|
||||
for k, v := range encoders {
|
||||
valueTranscoders[k].DecodeBinary = v
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ type Connection struct {
|
|||
type preparedStatement struct {
|
||||
Name string
|
||||
FieldDescriptions []FieldDescription
|
||||
ParameterOids []oid
|
||||
ParameterOids []Oid
|
||||
}
|
||||
|
||||
// NotSingleRowError is returned when exactly 1 row is expected, but 0 or more than
|
||||
|
@ -638,9 +638,9 @@ func (c *Connection) rxRowDescription(r *MessageReader) (fields []FieldDescripti
|
|||
return
|
||||
}
|
||||
|
||||
func (c *Connection) rxParameterDescription(r *MessageReader) (parameters []oid) {
|
||||
func (c *Connection) rxParameterDescription(r *MessageReader) (parameters []Oid) {
|
||||
parameterCount := r.ReadInt16()
|
||||
parameters = make([]oid, 0, parameterCount)
|
||||
parameters = make([]Oid, 0, parameterCount)
|
||||
for i := int16(0); i < parameterCount; i++ {
|
||||
parameters = append(parameters, r.ReadOid())
|
||||
}
|
||||
|
|
|
@ -33,8 +33,8 @@ func (r *MessageReader) ReadInt64() int64 {
|
|||
return int64(binary.BigEndian.Uint64(r.buf.Next(8)))
|
||||
}
|
||||
|
||||
func (r *MessageReader) ReadOid() oid {
|
||||
return oid(binary.BigEndian.Uint32(r.buf.Next(4)))
|
||||
func (r *MessageReader) ReadOid() Oid {
|
||||
return Oid(binary.BigEndian.Uint32(r.buf.Next(4)))
|
||||
}
|
||||
|
||||
func (r *MessageReader) ReadString() string {
|
||||
|
|
|
@ -44,13 +44,13 @@ func (self *startupMessage) Bytes() (buf []byte) {
|
|||
return buf
|
||||
}
|
||||
|
||||
type oid int32
|
||||
type Oid int32
|
||||
|
||||
type FieldDescription struct {
|
||||
Name string
|
||||
Table oid
|
||||
Table Oid
|
||||
AttributeNumber int16
|
||||
DataType oid
|
||||
DataType Oid
|
||||
DataTypeSize int16
|
||||
Modifier int32
|
||||
FormatCode int16
|
||||
|
|
|
@ -14,70 +14,70 @@ type valueTranscoder struct {
|
|||
EncodeFormat int16
|
||||
}
|
||||
|
||||
var valueTranscoders map[oid]*valueTranscoder
|
||||
var valueTranscoders map[Oid]*valueTranscoder
|
||||
var defaultTranscoder *valueTranscoder
|
||||
|
||||
func init() {
|
||||
valueTranscoders = make(map[oid]*valueTranscoder)
|
||||
valueTranscoders = make(map[Oid]*valueTranscoder)
|
||||
|
||||
// bool
|
||||
valueTranscoders[oid(16)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(16)] = &valueTranscoder{
|
||||
DecodeText: decodeBoolFromText,
|
||||
DecodeBinary: decodeBoolFromBinary,
|
||||
EncodeTo: encodeBool,
|
||||
EncodeFormat: 1}
|
||||
|
||||
// bytea
|
||||
valueTranscoders[oid(17)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(17)] = &valueTranscoder{
|
||||
DecodeText: decodeByteaFromText,
|
||||
EncodeTo: encodeBytea,
|
||||
EncodeFormat: 1}
|
||||
|
||||
// int8
|
||||
valueTranscoders[oid(20)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(20)] = &valueTranscoder{
|
||||
DecodeText: decodeInt8FromText,
|
||||
DecodeBinary: decodeInt8FromBinary,
|
||||
EncodeTo: encodeInt8,
|
||||
EncodeFormat: 1}
|
||||
|
||||
// int2
|
||||
valueTranscoders[oid(21)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(21)] = &valueTranscoder{
|
||||
DecodeText: decodeInt2FromText,
|
||||
DecodeBinary: decodeInt2FromBinary,
|
||||
EncodeTo: encodeInt2,
|
||||
EncodeFormat: 1}
|
||||
|
||||
// int4
|
||||
valueTranscoders[oid(23)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(23)] = &valueTranscoder{
|
||||
DecodeText: decodeInt4FromText,
|
||||
DecodeBinary: decodeInt4FromBinary,
|
||||
EncodeTo: encodeInt4,
|
||||
EncodeFormat: 1}
|
||||
|
||||
// text
|
||||
valueTranscoders[oid(25)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(25)] = &valueTranscoder{
|
||||
DecodeText: decodeTextFromText,
|
||||
EncodeTo: encodeText}
|
||||
|
||||
// float4
|
||||
valueTranscoders[oid(700)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(700)] = &valueTranscoder{
|
||||
DecodeText: decodeFloat4FromText,
|
||||
DecodeBinary: decodeFloat4FromBinary,
|
||||
EncodeTo: encodeFloat4,
|
||||
EncodeFormat: 1}
|
||||
|
||||
// float8
|
||||
valueTranscoders[oid(701)] = &valueTranscoder{
|
||||
valueTranscoders[Oid(701)] = &valueTranscoder{
|
||||
DecodeText: decodeFloat8FromText,
|
||||
DecodeBinary: decodeFloat8FromBinary,
|
||||
EncodeTo: encodeFloat8,
|
||||
EncodeFormat: 1}
|
||||
|
||||
// varchar -- same as text
|
||||
valueTranscoders[oid(1043)] = valueTranscoders[oid(25)]
|
||||
valueTranscoders[Oid(1043)] = valueTranscoders[Oid(25)]
|
||||
|
||||
// use text transcoder for anything we don't understand
|
||||
defaultTranscoder = valueTranscoders[oid(25)]
|
||||
defaultTranscoder = valueTranscoders[Oid(25)]
|
||||
}
|
||||
|
||||
func decodeBoolFromText(mr *MessageReader, size int32) interface{} {
|
||||
|
|
Loading…
Reference in New Issue