@Override
  public CqQuery newCq(String queryString, CqAttributes cqAttributes, boolean isDurable)
      throws QueryInvalidException, CqException {
    ClientCQ cq = null;
    try {
      cq = getCqService().newCq(null, queryString, cqAttributes, pool, isDurable);
    } catch (CqExistsException cqe) {
      // Should not throw in here.
      if (logger.isDebugEnabled()) {
        logger.debug("Unable to createCq. Error :{}", cqe.getMessage(), cqe);
      }
    }
    return cq;
  }
Constructs a new continuous query, represented by an instance of CqQuery. The CqQuery is not
executed until the execute method is invoked on the CqQuery.

@param queryString the OQL query
@param cqAttributes the CqAttributes
@param isDurable true if the CQ is durable
@return the newly created CqQuery object
@throws IllegalArgumentException if queryString or cqAttr is null
@throws IllegalStateException if this method is called from a cache server
@throws QueryInvalidException if there is a syntax error in the query
@throws CqException if failed to create cq, failure during creating managing cq metadata info.
        E.g.: Query string should refer only one region, join not supported. The query must be
        a SELECT statement. DISTINCT queries are not supported. Projections are not supported.
        Only one iterator in the FROM clause is supported, and it must be a region path. Bind
        parameters in the query are not yet supported.
geode-core/src/main/java/org/apache/geode/cache/query/internal/DefaultQueryService.java