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; }
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'])) {