public override void ParsePacketContent(MySqlStreamReader r) { if (protocol41) { catalog = r.ReadLengthCodedString();//3,100,101,102,103 (always "def") schema = r.ReadLengthCodedString(); table = r.ReadLengthCodedString(); orgTable = r.ReadLengthCodedString(); name = r.ReadLengthCodedString(); orgName = r.ReadLengthCodedString(); //next_length (lenenc_int) -- length of the following fields (always 0x0c) *** uint lengthCodedNumber = r.ReadLengthCodedNumber(); if (lengthCodedNumber != 0x0c) { //var err = new TypeError('Received invalid field length'); //err.code = 'PARSER_INVALID_FIELD_LENGTH'; //throw err; #if DEBUG if (lengthCodedNumber == 0) { //error //this package is error packet //server may send the correct one? dbugFailure = true; return; } #endif throw new Exception("Received invalid field length"); } charsetNr = r.U2();//2 maxLengthOfField = r.U4();//4 columnType = r.ReadByte();//1 flags = r.U2();//2 maxShownDecimalDigits = r.ReadByte(); filler = r.ReadBuffer(2); if (filler[0] != 0x0 || filler[1] != 0x0) { //var err = new TypeError('Received invalid filler'); //err.code = 'PARSER_INVALID_FILLER'; //throw err; throw new Exception("Received invalid filler"); } // parsed flags //this.zeroFill = (this.flags & 0x0040 ? true : false); zeroFill = ((flags & 0x0040) == 0x0040 ? true : false); if (r.ReachedPacketEnd()) { return; } //---- //if command was COM_FIELD_LIST { // lenenc_int length of default- values //string[$len] default values //} strDefault = r.ReadLengthCodedString(); } else { table = r.ReadLengthCodedString(); name = r.ReadLengthCodedString(); maxLengthOfField = r.ReadUnsigedNumber(r.ReadByte()); columnType = (int)r.ReadUnsigedNumber(r.ReadByte()); } }
public override void ParsePacketContent(MySqlStreamReader r) { _fieldCount = r.ReadLengthCodedNumber(); if (r.ReachedPacketEnd()) { return; } if (_fieldCount == 0) { _extraStr = r.ReadPacketTerminatedString(); } else { _extraNumber = r.ReadLengthCodedNumber(); _extraStr = r.ReadPacketTerminatedString();//null; } }