private Request createRequest() {
    // Initiate this request's requestInfoProperties with the ones set from the original request
    Map<String, String> requestInfoProperties = new HashMap<>(this.requestInfoProperties);

    if (pageRequest != null) {
      requestInfoProperties.put(BaseRequest.PAGE_SIZE_PROPERTY_KEY,
          Integer.toString(pageRequest.getPageSize() + pageRequest.getOffset()));

      requestInfoProperties.put(
        BaseRequest.ASC_ORDER_PROPERTY_KEY,
          Boolean.toString(pageRequest.getStartingPoint() == StartingPoint.Beginning
              || pageRequest.getStartingPoint() == StartingPoint.OffsetStart));
    }

    if (allProperties) {
      return PropertyHelper.getReadRequest(Collections.emptySet(),
          requestInfoProperties, null, pageRequest, sortRequest);
    }

    Map<String, TemporalInfo> mapTemporalInfo    = new HashMap<>();
    TemporalInfo              globalTemporalInfo = temporalInfoMap.get(null);

    Set<String> setProperties = new HashSet<>();
    setProperties.addAll(requestedProperties);
    for (String propertyId : setProperties) {
      TemporalInfo temporalInfo = temporalInfoMap.get(propertyId);
      if (temporalInfo != null) {
        mapTemporalInfo.put(propertyId, temporalInfo);
      } else if (globalTemporalInfo != null) {
        mapTemporalInfo.put(propertyId, globalTemporalInfo);
      }
    }

    return PropertyHelper.getReadRequest(setProperties, requestInfoProperties,
        mapTemporalInfo, pageRequest, sortRequest);
  }
Merge the tree of query properties returned by the renderer with properties in
the query tree.

@param node   property tree node
@param query  query associated with the property tree node
ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java