def write(self, data): try: while data: n = self.channel.write(data) data = data[n:] except socket.error: raise_mysql_error(errno=2006, message='MySQL server has gone away')
def read(self, n_bytes): result = array('B') while n_bytes: chunk = self.channel.read(n_bytes) if not chunk: # MySQL server has gone away raise_mysql_error(errno=2006, message='MySQL server has gone away') result.extend(chunk) n_bytes -= len(chunk) return result
def pkt2mysqlerror(data): errno, sqlstate = struct.unpack('<xH6s', data[0:9]) msg = data[9:].decode('utf8') raise_mysql_error(errno, msg)