public static function checkAggregation($expression) { if (empty(self::$aggrFunctions)) { self::$aggrFunctions = array_unique(array_merge(self::$aggrFunctionsMYSQL, self::$aggrFunctionsMSSQL, self::$aggrFunctionsORACLE)); } // should remove subqueries from expression here: EXISTS(..(..)..), (SELECT ..(..)..) $expression = static::removeSubqueries($expression); // then check for aggr functions preg_match_all('/(?:^|[^a-z0-9_])(' . join('|', self::$aggrFunctions) . ')[\\s\\(]+/i', $expression, $matches); return isset($matches[1]) ? $matches[1] : null; }
public static function checkAggregation($expression) { if (empty(self::$aggrFunctions)) { self::$aggrFunctions = array_unique(array_merge(self::$aggrFunctionsMYSQL, self::$aggrFunctionsMSSQL, self::$aggrFunctionsORACLE)); } // should remove subqueries from expression here: EXISTS(..(..)..), (SELECT ..(..)..) if (preg_match('/(?:^|[^a-z0-9_])EXISTS\\s*\\(/', $expression)) { return false; } else { preg_match_all('/(?:^|[^a-z0-9_])(?<!SELECT\\s\\s)(' . join('|', self::$aggrFunctions) . ')[\\s\\(]+/i', $expression, $matches); return $matches[1]; } }