/**
  * @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);
 }