/** * @param QueryInterface $query * * @return Result|null * @throws Exception */ public function process(QueryInterface $query) { if (!$query instanceof ShowQuery || $query->getObject() !== ShowQuery::EXPRESSION_INDEX) { return null; } $fromExpr = $query->getFromExpression(); if (!$fromExpr) { throw new Exception('From expression missing.'); } $tablet = $this->tablet->getTablet(); $schemaCmd = new GetSchema($tablet->getAlias()); /* @var $result GetSchemaResult */ $result = $this->client->executeCommand($schemaCmd); return new IndexFrom($result, $fromExpr); }