$str = take_zstring($data(modified)) null terminated string

$num = take_lcb($data(modifed)) length coded binary

$str = take_lcs($data(modified)) length coded string

$num = take_num($data(modified), $len)

$str = take_str($data(modified), $len)

() = take_filler($data(modified), $len)

$cell = take_type($data(modified), $type, $length, $flag) WARN: some MySQL data types are not implemented

put_type($data(modified), $cell, $type, $len, $flag)

put_num($data(modified), $num, $len)

put_str($data(modified), $str, $len)

put_zstr($data(modified), $str)

put_lcb($data(modified), $num)

put_lcs($data(modified), $str)

($affected_rows, $insert_id, $server_status, $warning_count, $message) | $is = parse_ok($data(modified))

($errno, $sqlstate, $message) = parse_error($data(modified))

recv_packet($hd, $cb->($packet))

skip_until_eof($hd, $cb->())

send_packet($hd, $packet_num, $packet_frag1, $pack_frag2, ...)

_recv_field($hd, \@field)

recv_response($hd, %opt, $cb->(TYPE, data...)) RES_OK, $affected_rows, $insert_id, $server_status, $warning_count, $message RES_ERROR, $errno, $sqlstate, $message RES_RESULT, \@field, \@row $field[$i] = [$catalog, $db, $table, $org_table, $name, $org_name, $charsetnr, $length, $type, $flags, $decimals, $default] $row[$i] = [$field, $field, $field, ...] RES_PREPARE, $stmt_id, \@param, \@column, $warning_count $param[$i] = [$catalog, $db, $table, $org_table, $name, $org_name, $charsetnr, $length, $type, $flags, $decimals, $default] $column[$i] = [$catalog, $db, $table, $org_table, $name, $org_name, $charsetnr, $length, $type, $flags, $decimals, $default] opt: prepare (set to truthy to recv prepare_ok)

do_auth($hd, $username, [$password, [$database,]] $cb->($success, $err_num_and_msg, $thread_id))

do_reset_stmt($hd, $stmt_id)

do_long_data_packet($hd, $stmt_id, $param_num, $type, $data, $len, $flag, $packet_num)

do_execute($hd, $stmt_id, $null_bit_map, $packet_num)

do_execute_param($hd, $stmt_id, \@param, \@param_config)