if (numVersions >= columnRequest.getMaxVersions()) { LOG.debug("Skipping remaining cells because we hit max versions requested: " + columnRequest.getMaxVersions()); break;
final int length = Math.min(columnEnd - columnStart, familyRequest.getMaxVersions());
final int maxVersions = columnRequest.getMaxVersions(); if (columnKeyValues.size() > maxVersions) { return columnKeyValues.subList(0, maxVersions);
largestMaxVersions = Math.max(largestMaxVersions, columnRequest.getMaxVersions());
} else { if (columnRequest.getMaxVersions() != 0) { LOG.warn("Cassandra Fiji can not efficiently get a column family with max versions" + " (column family: {}, max version: {}). Filtering versions on the client.", column, columnRequest.getMaxVersions());
|| (fijiColumnName.isFullyQualified() && (columnRequest.getMaxVersions() == 1))) {
mTotalVersions = mColumnRequest.getMaxVersions(); mVersionsCount = 0;
values.add(columnRequest.getMaxVersions());
.withFilter(familyRequest.getFilter()) .withPageSize(familyRequest.getPageSize()) .withMaxVersions(familyRequest.getMaxVersions()) .add(column.getFamily(), column.getQualifier(), familyRequest.getReaderSpec());
final int mMaxVersions = columnRequest.getMaxVersions(); final long mMinTimestamp = dataRequest.getMinTimestamp(); final long mMaxTimestamp = dataRequest.getMaxTimestamp();
int maxVersions = Math.max(col1.getMaxVersions(), col2.getMaxVersions());
.withFilter(column.getFilter()) .withPageSize(column.getPageSize()) .withMaxVersions(column.getMaxVersions()) .add(columnName.getFamily(), columnName.getQualifier());
.withFilter(mColumnRequest.getFilter()) .withPageSize(FijiDataRequest.PAGING_DISABLED) .withMaxVersions(mColumnRequest.getMaxVersions()) .add(column, mColumnRequest.getReaderSpec()); final FijiDataRequestBuilder dataRequest = FijiDataRequest.builder();
/** {@inheritDoc} */ @Override public FijiRowData next(final int pageSize) { if (!hasNext()) { throw new NoSuchElementException("Fiji pager is exhausted."); } final FijiColumnName column = mColumnRequest.getColumnName(); final ColumnsDef columnDef = ColumnsDef .create() .withFilter(mColumnRequest.getFilter()) .withPageSize(FijiDataRequest.PAGING_DISABLED) .withMaxVersions(mColumnRequest.getMaxVersions()) .add(column, mColumnRequest.getReaderSpec()); final FijiDataRequestBuilder dataRequest = FijiDataRequest.builder(); dataRequest.addColumns(columnDef); final List<FijiCell<Object>> cells = ImmutableList.copyOf(Iterators.limit(mCells, pageSize)); final FijiResult<Object> result = MaterializedFijiResult.create( mResult.getEntityId(), dataRequest.build(), mLayout, ImmutableSortedMap.<FijiColumnName, List<FijiCell<Object>>>naturalOrder() .put(column, cells) .build()); return new FijiResultRowData(mLayout, result); }
/** * Return a builder for columns, initialized from an existing * {@link FijiDataRequest.Column}. * * <p>Creates an object that allows you to specify a set of related columns attached * to the same FijiDataRequest that all share the same retrieval properties, like * the number of max versions.</p> * * <p>This builder will have all properties fully initialized, and it will already * include a request for the column named as an argument. Only additional calls to * <code>FijiDataRequestBuilder.ColumnsDef.add(...)</code> are permitted.</p> * * @param existingColumn is a Column from an existing FijiDataRequest object that should * be included in this new FijiDataRequest. * @return a new FijiDataRequestBuilder.ColumnsDef builder object associated with this * data request builder. */ public ColumnsDef newColumnsDef(FijiDataRequest.Column existingColumn) { return newColumnsDef() .withFilter(existingColumn.getFilter()) .withPageSize(existingColumn.getPageSize()) .withMaxVersions(existingColumn.getMaxVersions()) .add(existingColumn.getFamily(), existingColumn.getQualifier()); }
/** * Create a new FijiCellIterator. * * @param rowData FijiRowData from which to retrieve cells. * @param columnName Column across which to iterate. May be a fully qualified column or map type * family. * @param columnNameTranslator HBaseColumnNameTranslator with which to decode KeyValues. * @throws IOException In case of an error initializing the Iterator. */ private FijiCellIterator( final HBaseFijiRowData rowData, final FijiColumnName columnName, final HBaseColumnNameTranslator columnNameTranslator ) throws IOException { mKeyValues = SchemaPlatformBridge.get().keyValuesFromResult(rowData.mResult); mEntityId = rowData.mEntityId; mColumn = columnName; mDecoder = rowData.mDecoderProvider.getDecoder(mColumn); mColumnNameTranslator = columnNameTranslator; mMaxVersions = rowData.mDataRequest.getRequestForColumn(mColumn).getMaxVersions(); mNextIndex = findStartIndex(); mNextCell = getNextCell(); }