server: fix COM_FIELD_LIST response bug that make mariadb-client crash during use db (#6918)

This commit is contained in:
lysu
2018-06-28 13:40:27 +08:00
committed by Jack Yu
parent a7819c3385
commit ef3d04087d

View File

@ -898,9 +898,15 @@ func (cc *clientConn) handleFieldList(sql string) (err error) {
return errors.Trace(err)
}
data := make([]byte, 4, 1024)
for _, v := range columns {
for _, column := range columns {
// Current we doesn't output defaultValue but reserve defaultValue length byte to make mariadb client happy.
// https://dev.mysql.com/doc/internals/en/com-query-response.html#column-definition
// TODO: fill the right DefaultValues.
column.DefaultValueLength = 0
column.DefaultValue = []byte{}
data = data[0:4]
data = v.Dump(data)
data = column.Dump(data)
if err := cc.writePacket(data); err != nil {
return errors.Trace(err)
}