<?php

$link=mysqli_connect("127.0.0.1","root","") or die(mysqli_connect_error());
mysqli_select_db($link,"test") or die(mysqli_error($link));

mysqli_query($link,"drop table if exists `t`")or die(mysqli_error($link));
mysqli_query($link,"create table `t`(`a` int,`b` tinytext)engine=myisam");
mysqli_query($link,"insert into `t`(`a`,`b`) values (1,2),(3,2)");

for($sort_buffer_size=32000;$sort_buffer_size<10485760;$sort_buffer_size+=64)
{

        for($max_sort_length=3072;$max_sort_length<$sort_buffer_size*2;$max_sort_length+=64)
        {
                mysqli_query($link,"set session sort_buffer_size=$sort_buffer_size") or die(mysqli_error($link));
                mysqli_query($link,"set session max_sort_length=$max_sort_length") or die(mysqli_error($link));
                $rs=mysqli_query($link,"select * from `t` order by `b`");
                if($rs===FALSE)
                {
                        print "FAIL(".mysqli_error($link).") - sort_buffer_size=$sort_buffer_size, max_sort_length=$max_sort_length\n";
                }
                else
                {
                        print "PASS - sort_buffer_size=$sort_buffer_size, max_sort_length=$max_sort_length\n";
                        while($row=mysqli_fetch_array($rs))
                        {
                                       
                        }
                        mysqli_free_result($rs);
                }
        }
}

mysqli_close($link);
?>