Creates a new data request representing the union of this data request and the data request specified as an argument.
This method merges data requests using the widest-possible treatment of parameters. This may result in cells being included in the result set that were not specified by either data set. For example, if request A includes info:foo from time range [400, 700), and request B includes info:bar from time range [500, 900), then A.merge(B) will yield a data request for both columns, with time range [400, 900).
More precisely, merges are handled in the following way:
- The output time interval encompasses both data requests' time intervals.
- All columns associated with both data requests will be included.
- When maxVersions differs for the same column in both requests, the greater value is chosen.
- When pageSize differs for the same column in both requests, the lesser value is chosen.
- If either request contains KijiColumnFilter definitions attached to a column, this is considered an error, and a RuntimeException is thrown. Data requests with filters cannot be merged.
- If one data request includes an entire column family (foo:*) and the other data request includes a column within that family (foo:bar), the entire family will be requested, and properties such as max versions, etc. for the family-wide request will be merged with the column to ensure the request is as wide as possible.
@param other another data request to include as a part of this one.
@return A new KijiDataRequest instance, including the union of this data requestand the argument request.