Fix encoding of ErrorResponse

This commit is contained in:
Josh Leverette 2019-01-17 22:19:08 -08:00 committed by GitHub
parent 4618730e71
commit 3f1d975e4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -115,70 +115,87 @@ func (src *ErrorResponse) marshalBinary(typeByte byte) []byte {
buf.Write(bigEndian.Uint32(0)) buf.Write(bigEndian.Uint32(0))
if src.Severity != "" { if src.Severity != "" {
buf.WriteByte('S')
buf.WriteString(src.Severity) buf.WriteString(src.Severity)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Code != "" { if src.Code != "" {
buf.WriteByte('C')
buf.WriteString(src.Code) buf.WriteString(src.Code)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Message != "" { if src.Message != "" {
buf.WriteByte('M')
buf.WriteString(src.Message) buf.WriteString(src.Message)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Detail != "" { if src.Detail != "" {
buf.WriteByte('D')
buf.WriteString(src.Detail) buf.WriteString(src.Detail)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Hint != "" { if src.Hint != "" {
buf.WriteByte('H')
buf.WriteString(src.Hint) buf.WriteString(src.Hint)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Position != 0 { if src.Position != 0 {
buf.WriteByte('P')
buf.WriteString(strconv.Itoa(int(src.Position))) buf.WriteString(strconv.Itoa(int(src.Position)))
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.InternalPosition != 0 { if src.InternalPosition != 0 {
buf.WriteByte('p')
buf.WriteString(strconv.Itoa(int(src.InternalPosition))) buf.WriteString(strconv.Itoa(int(src.InternalPosition)))
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.InternalQuery != "" { if src.InternalQuery != "" {
buf.WriteByte('q')
buf.WriteString(src.InternalQuery) buf.WriteString(src.InternalQuery)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Where != "" { if src.Where != "" {
buf.WriteByte('W')
buf.WriteString(src.Where) buf.WriteString(src.Where)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.SchemaName != "" { if src.SchemaName != "" {
buf.WriteByte('s')
buf.WriteString(src.SchemaName) buf.WriteString(src.SchemaName)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.TableName != "" { if src.TableName != "" {
buf.WriteByte('t')
buf.WriteString(src.TableName) buf.WriteString(src.TableName)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.ColumnName != "" { if src.ColumnName != "" {
buf.WriteByte('c')
buf.WriteString(src.ColumnName) buf.WriteString(src.ColumnName)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.DataTypeName != "" { if src.DataTypeName != "" {
buf.WriteByte('d')
buf.WriteString(src.DataTypeName) buf.WriteString(src.DataTypeName)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.ConstraintName != "" { if src.ConstraintName != "" {
buf.WriteByte('n')
buf.WriteString(src.ConstraintName) buf.WriteString(src.ConstraintName)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.File != "" { if src.File != "" {
buf.WriteByte('F')
buf.WriteString(src.File) buf.WriteString(src.File)
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Line != 0 { if src.Line != 0 {
buf.WriteByte('L')
buf.WriteString(strconv.Itoa(int(src.Line))) buf.WriteString(strconv.Itoa(int(src.Line)))
buf.WriteByte(0) buf.WriteByte(0)
} }
if src.Routine != "" { if src.Routine != "" {
buf.WriteByte('R')
buf.WriteString(src.Routine) buf.WriteString(src.Routine)
buf.WriteByte(0) buf.WriteByte(0)
} }