profilingSupported() public static method

Verifies if current MySQL server supports profiling
public static profilingSupported ( ) : boolean
return boolean whether profiling is supported
/**
 * Returns JSon for query_analyzer
 *
 * @return array
 */
function PMA_getJsonForQueryAnalyzer()
{
    $return = array();
    if (mb_strlen($_REQUEST['database'])) {
        $GLOBALS['dbi']->selectDb($_REQUEST['database']);
    }
    if ($profiling = PMA\libraries\Util::profilingSupported()) {
        $GLOBALS['dbi']->query('SET PROFILING=1;');
    }
    // Do not cache query
    $query = preg_replace('/^(\\s*SELECT)/i', '\\1 SQL_NO_CACHE', $_REQUEST['query']);
    $GLOBALS['dbi']->tryQuery($query);
    $return['affectedRows'] = $GLOBALS['cached_affected_rows'];
    $result = $GLOBALS['dbi']->tryQuery('EXPLAIN ' . $query);
    while ($row = $GLOBALS['dbi']->fetchAssoc($result)) {
        $return['explain'][] = $row;
    }
    // In case an error happened
    $return['error'] = $GLOBALS['dbi']->getError();
    $GLOBALS['dbi']->freeResult($result);
    if ($profiling) {
        $return['profiling'] = array();
        $result = $GLOBALS['dbi']->tryQuery('SELECT seq,state,duration FROM INFORMATION_SCHEMA.PROFILING' . ' WHERE QUERY_ID=1 ORDER BY seq');
        while ($row = $GLOBALS['dbi']->fetchAssoc($result)) {
            $return['profiling'][] = $row;
        }
        $GLOBALS['dbi']->freeResult($result);
    }
    return $return;
}
Ejemplo n.º 2
0
         unset($_SESSION['tmpval']['navi_limit_offset']);
     }
     $_SESSION['tmpval']['previous_server'] = $GLOBALS['server'];
 } else {
     // end server connecting
     // No need to check for 'PMA_BYPASS_GET_INSTANCE' since this execution path
     // applies only to initial login
     $response = Response::getInstance();
     $response->getHeader()->disableMenuAndConsole();
     $response->getFooter()->setMinimal();
 }
 /**
  * check if profiling was requested and remember it
  * (note: when $cfg['ServerDefault'] = 0, constant is not defined)
  */
 if (isset($_REQUEST['profiling']) && Util::profilingSupported()) {
     $_SESSION['profiling'] = true;
 } elseif (isset($_REQUEST['profiling_form'])) {
     // the checkbox was unchecked
     unset($_SESSION['profiling']);
 }
 // load user preferences
 $GLOBALS['PMA_Config']->loadUserPreferences();
 /**
  * Inclusion of profiling scripts is needed on various
  * pages like sql, tbl_sql, db_sql, tbl_select
  */
 if (!defined('PMA_BYPASS_GET_INSTANCE')) {
     $response = Response::getInstance();
 }
 if (isset($_SESSION['profiling'])) {