• Модуль: perfmon
  • Путь к файлу: ~/bitrix/modules/perfmon/lib/sql/schema.php
  • Класс: BitrixPerfmonSqlSchema
  • Вызов: Schema::executeCreate
protected function executeCreate(Tokenizer $tokenizer)
{
	$tokenizer->skipWhiteSpace();
	if ($tokenizer->testUpperText("OR"))
	{
		$tokenizer->skipWhiteSpace();
		if ($tokenizer->testUpperText("REPLACE"))
			$tokenizer->skipWhiteSpace();
		else
			throw new NotSupportedException("'OR REPLACE' expected. line:".$tokenizer->getCurrentToken()->line);
	}

	if ($tokenizer->testUpperText('TABLE'))
	{
		$this->executeCreateTable($tokenizer);
	}
	elseif ($tokenizer->testUpperText('INDEX'))
	{
		$this->executeCreateIndex($tokenizer, false);
	}
	elseif ($tokenizer->testUpperText('UNIQUE'))
	{
		$tokenizer->skipWhiteSpace();
		if ($tokenizer->testUpperText('INDEX'))
			$tokenizer->skipWhiteSpace();

		$this->executeCreateIndex($tokenizer, true);
	}
	elseif ($tokenizer->testUpperText('TRIGGER'))
	{
		$this->executeCreateTrigger($tokenizer);
	}
	elseif (
		$tokenizer->testUpperText('PROCEDURE')
		|| $tokenizer->testUpperText('FUNCTION')
		|| $tokenizer->testUpperText('TYPE')
	)
	{
		$this->executeCreateProcedure($tokenizer);
	}
	elseif ($tokenizer->testUpperText('SEQUENCE'))
	{
		$this->executeCreateSequence($tokenizer);
	}
	else
	{
		throw new NotSupportedException("TABLE|INDEX|UNIQUE|TRIGGER|PROCEDURE|FUNCTION|TYPE|SEQUENCE expected. line:".$tokenizer->getCurrentToken()->line);
	}
}