- Модуль: perfmon
- Путь к файлу: ~/bitrix/modules/perfmon/classes/general/sql_format.php
- Класс: CSqlTokenizer
- Вызов: CSqlTokenizer::transform
protected function transform($token)
{
static $keywords = "UPDATE|SET|DELETE|SELECT|DISTINCT|INNER|LEFT|OUTER|JOIN|ON|FROM|WHERE|GROUP|BY|IN|EXISTS|HAVING|ORDER|ASC|DESC|LIMIT|AND|OR";
static $functions = "DATE_FORMAT|UNIX_TIMESTAMP|CONCAT|DATE_ADD|UPPER|LENGTH|IFNULL";
if (isset($token[1]))
$token = array($token[0], $token[1]);
else
$token = array(T_CHARACTER, $token[0]);
switch ($token[0])
{
case T_STRING:
if (preg_match("/^($keywords)$/i", $token[1]))
$token = array(T_KEYWORD, mb_strtoupper($token[1]));
elseif (preg_match("/^($functions)$/i", $token[1]))
$token = array(T_FUNCTION, $token[1]);
break;
case T_LOGICAL_AND:
case T_LOGICAL_OR:
$token = array(T_KEYWORD, mb_strtoupper($token[1]));
break;
case T_AS:
$token = array(T_KEYWORD, $token[1]);
break;
case T_COMMENT:
case T_BAD_CHARACTER:
$token = array(T_WHITESPACE, " ");
break;
}
return $token;
}