/** * @param TDbStatementAnalysisParamete * @return TDbStatementClassification */ public static function doClassificationAnalysis(TDbStatementAnalysisParameter $param) { $statement = $param->getStatement(); $default = $param->getDefaultClassification(); $hash = md5($statement . '-' . $default); if (isset(self::$cacheClassificationAnalysis[$hash])) { return self::$cacheClassificationAnalysis[$hash]; } self::$cacheClassificationAnalysis[$hash] = $default; $statement = preg_replace('/(?:--|\\#)[\\x20\\t\\S]*\\s+|\\/\\*[\\x20\\t\\n\\r\\S]*?\\*\\//Ssmux', '', $statement); $statement = preg_replace('/[\\s]+/Smu', ' ', $statement); $statement = trim($statement); if (self::$regExpClassificationAnalysis === null) { self::$regExpClassificationAnalysis = '/^(' . str_replace(' ', '\\x20', implode('|', array_keys(self::$mappingClassificationAnalysis))) . ')+[\\s]+.*|\\k1/Siu'; } $cmd = strToUpper(preg_replace(self::$regExpClassificationAnalysis, '\\1', $statement)); if (isset(self::$mappingClassificationAnalysis[$cmd])) { self::$cacheClassificationAnalysis[$hash] = self::$mappingClassificationAnalysis[$cmd]; } return self::$cacheClassificationAnalysis[$hash]; }
/** * @param TDbStatementAnalysisParameter * @return TDbStatementClassification */ public function getClassificationAnalysis(TDbStatementAnalysisParameter $param) { return $param->getDefaultClassification(); }