/**
  * @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();
 }