/** * @param QueryInterface $query * * @return Result|null * @throws Exception */ public function process(QueryInterface $query) { if (!$query instanceof ShowQuery || $query->getObject() !== ShowQuery::EXPRESSION_CREATE_DATABASE) { return null; } $database = $query->getCreateObjectExpression(ShowQuery::EXPRESSION_CREATE_DATABASE); $newData = []; $newData[] = array_map(function ($row) use($database) { return str_replace('{DB}', $database, $row); }, self::$data); return $this->getResultFromData($newData, self::$fields); }
/** * @param QueryInterface $query * * @return Result|null * @throws Exception */ public function process(QueryInterface $query) { if (!$query instanceof ShowQuery || $query->getObject() !== ShowQuery::EXPRESSION_CREATE_TABLE) { return null; } $table = $query->getCreateObjectExpression(ShowQuery::EXPRESSION_CREATE_TABLE); if (!$table) { throw new Exception('Table missing.'); } $tablet = $this->tablet->getTablet(); $schemaCmd = new GetSchema($tablet->getAlias()); /* @var $result GetSchemaResult */ $result = $this->client->executeCommand($schemaCmd); return new CreateTable($result, $table); }