• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/fields/expressionfield.php
  • Класс: Bitrix\Main\ORM\Fields\ExpressionField
  • Вызов: ExpressionField::checkAggregation
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 $matches[1] ?? null;
}