--TEST-- Bug #42378 (bind_result memory exhaustion, SELECT column, FORMAT(...) AS _format) --SKIPIF-- --INI-- memory_limit=83886080 --FILE-- $v) { if (!mysqli_stmt_fetch($stmt)) { break; } if ($result !== $v) { printf("[%03d] Row %d - expecting %s/%s got %s/%s [%s] with %s - %s.\n", $offset + 8, $k, gettype($v), $v, gettype($result), $result, $order_by_col, $format, $sql); } } } mysqli_stmt_free_result($stmt); mysqli_stmt_close($stmt); return true; } if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[001] Cannot connect - [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); /* create new table and select from it */ $expected = create_table($link, 'FLOAT', -10000, 10000, $engine, 90); foreach ($expected as $k => $v) $expected[$k] = number_format(round($v), 0, '.', ','); test_format($link, 'FORMAT(col1, 0)', 'test', NULL, array(), 100); $expected = create_table($link, 'FLOAT', -10000, 10000, $engine, 110); foreach ($expected as $k => $v) $expected[$k] = number_format(round($v), 0, '.', ','); test_format($link, 'id AS order_by_col, FORMAT(col1, 0)', 'test', 'id', $expected, 120); $expected = create_table($link, 'FLOAT UNSIGNED', 0, 10000, $engine, 130); foreach ($expected as $k => $v) $expected[$k] = number_format(round($v), 0, '.', ','); test_format($link, 'id AS order_by_col, FORMAT(col1, 0)', 'test', 'id', $expected, 140); $expected = create_table($link, 'DECIMAL(5,0)', -1000, 1000, $engine, 150); foreach ($expected as $k => $v) $expected[$k] = number_format(round($v), 0, '.', ','); test_format($link, 'id AS order_by_col, FORMAT(col1, 0)', 'test', 'id', $expected, 160); mysqli_close($link); print "done!"; ?> --CLEAN-- --EXPECT-- FLOAT FORMAT(col1, 0) FLOAT id AS order_by_col, FORMAT(col1, 0) FLOAT UNSIGNED id AS order_by_col, FORMAT(col1, 0) DECIMAL(5,0) id AS order_by_col, FORMAT(col1, 0) done!