endpoints; /** @var AbstractEndpoint $endpoint */ $endpoint = $endpointBuilder('Sql\Query'); $endpoint->setBody(array_filter([ 'query' => $this->extractArgument($params, 'query'), 'cursor' => $this->extractArgument($params, 'cursor'), 'fetch_size' => $this->extractArgument($params, 'fetch_size'), ])); $endpoint->setParams($params); return $this->performRequest($endpoint); } /** * $params['query'] = (string) The SQL Query * * @param array{'query': string} $params Associative array of parameters * @return array */ public function explain(array $params): array { $endpointBuilder = $this->endpoints; $query = $this->extractArgument($params, 'query'); /** @var AbstractEndpoint $endpoint */ $endpoint = $endpointBuilder('Sql\Explain'); $endpoint->setBody([ 'query' => $query, ]); $endpoint->setParams($params); return $this->performRequest($endpoint); } /** * $params['cursor'] = (string) The cursor given by the server * * @param array{'cursor': string} $params Associative array of parameters * @return array */ public function closeCursor(array $params): array { $endpointBuilder = $this->endpoints; /** @var AbstractEndpoint $endpoint */ $endpoint = $endpointBuilder('Sql\CursorClose'); $endpoint->setBody(array_filter([ 'cursor' => $this->extractArgument($params, 'cursor'), ])); $endpoint->setParams($params); return $this->performRequest($endpoint); } }