Class AvailableFields
- java.lang.Object
-
- com.apple.foundationdb.record.query.plan.AvailableFields
-
public class AvailableFields extends Object
Represents a subset of the fields available in a stream of records, including partial records. If a stream includes full records, all fields are available; they are not represented individually. For partial records, this class tracks a (non-strict) subset of the fields that are actually available. For example, all repeated fields are currently dropped. It is extremely important that no field ever be included when it is not actually available on a partial record.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AvailableFields.FieldData
A pair of a tuple source (key or value) and an index within that tuple source.
-
Field Summary
Fields Modifier and Type Field Description static AvailableFields
ALL_FIELDS
static AvailableFields
NO_FIELDS
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
addCoveringField(KeyExpression requiredExpr, AvailableFields.FieldData fieldData, IndexKeyValueToPartialRecord.Builder builder)
IndexKeyValueToPartialRecord.Builder
buildIndexKeyValueToPartialRecord(RecordType recordType)
boolean
containsAll(Collection<KeyExpression> requiredFields)
static AvailableFields
fromIndex(RecordType recordType, Index index, PlannableIndexTypes indexTypes, KeyExpression commonPrimaryKey)
boolean
hasAllFields()
static AvailableFields
intersection(List<AvailableFields> toIntersect)
-
-
-
Field Detail
-
ALL_FIELDS
@Nonnull public static final AvailableFields ALL_FIELDS
-
NO_FIELDS
@Nonnull public static final AvailableFields NO_FIELDS
-
-
Method Detail
-
hasAllFields
public boolean hasAllFields()
-
containsAll
public boolean containsAll(@Nonnull Collection<KeyExpression> requiredFields)
-
buildIndexKeyValueToPartialRecord
@Nullable public IndexKeyValueToPartialRecord.Builder buildIndexKeyValueToPartialRecord(@Nonnull RecordType recordType)
-
fromIndex
@Nonnull public static AvailableFields fromIndex(@Nonnull RecordType recordType, @Nonnull Index index, @Nonnull PlannableIndexTypes indexTypes, @Nullable KeyExpression commonPrimaryKey)
-
addCoveringField
public static boolean addCoveringField(@Nonnull KeyExpression requiredExpr, @Nonnull AvailableFields.FieldData fieldData, @Nonnull IndexKeyValueToPartialRecord.Builder builder)
-
intersection
@Nonnull public static AvailableFields intersection(@Nonnull List<AvailableFields> toIntersect)
-
-