Пример #1
0
func (my *Conn) getFieldPacketColumnDefinition320(pr *pktReader) *mysql.Field {

	field := new(mysql.Field)

	field.Table = string(pr.readBin())
	field.Name = string(pr.readBin())

	pr.skipN(1) // length of column_length field
	field.DispLen = uint32(pr.readU24())

	pr.skipN(1) // length of type field
	field.Type = pr.readByte()

	pr.skipN(1) // length of flags+decimal fields
	if my.info.caps&_CLIENT_LONG_FLAG != 0 {
		field.Flags = pr.readU16()
	} else {
		field.Flags = uint16(pr.readByte())
	}

	field.Scale = pr.readByte()

	return field
}
Пример #2
0
func (my *Conn) getFieldPacketColumnDefinition41(pr *pktReader) *mysql.Field {

	field := new(mysql.Field)
	if my.fullFieldInfo {
		field.Catalog = string(pr.readBin())
		field.Db = string(pr.readBin())
		field.Table = string(pr.readBin())
		field.OrgTable = string(pr.readBin())
	} else {
		pr.skipBin()
		pr.skipBin()
		pr.skipBin()
		pr.skipBin()
	}
	field.Name = string(pr.readBin())
	if my.fullFieldInfo {
		field.OrgName = string(pr.readBin())
	} else {
		pr.skipBin()
	}
	pr.skipN(1 + 2)
	//field.Charset= pr.readU16()
	field.DispLen = pr.readU32()
	field.Type = pr.readByte()
	field.Flags = pr.readU16()
	field.Scale = pr.readByte()
	pr.skipN(2)

	return field
}