if more data ってなに?
Protocol::HandshakeV10の if more dataってなに?
ココらへんはMySQL本体がどうやってパースしているか確認しないと行けない
0xfeのときのOK_PacketとAUTH_SWITCH_REQUESTの判別が難しくて、これは1こずつパースしてどっちかとしてうまくパースできないかどうかで判断するしかないかと思ったが、https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html ここにOKパケットとEOFパケットの見分け方として以下のような説明が合ったので、とりあえずOK_PACKETは0x00で始まるものと想定してパースする.
These rules distinguish whether the packet represents OK or EOF: OK: header = 0 and length of packet > 7 EOF: header = 0xfe and length of packet < 9
com_field_list来たときにそのmysql_packetの長さは1で皇族のmysql_packetでフィールドが入ってくる場合が合って爆死する。 これドキュメントにない気がするしどうしたものか困る
単純にResponse系のパケットのパースが不十分な感じがした
MySQL :: MySQL Internals Manual :: 14.6.4.1 COM_QUERY Response