@POST
@Produces(MediaType.APPLICATION_JSON)
public Response createQuery(String query, @Context HttpServletRequest servletRequest)
{
assertRequest(!isNullOrEmpty(query), "SQL query is empty");
Session session = createSessionForRequest(servletRequest, accessControl, sessionPropertyManager, queryIdGenerator.createNextQueryId());
ClientSession clientSession = session.toClientSession(serverUri(), false, new Duration(2, MINUTES));
StatementClient client = new StatementClient(httpClient, queryResultsCodec, clientSession, query);
List<Column> columns = getColumns(client);
Iterator<List<Object>> iterator = flatten(new ResultsPageIterator(client));
SimpleQueryResults results = new SimpleQueryResults(columns, iterator);
return Response.ok(results, MediaType.APPLICATION_JSON_TYPE).build();
}