Package com.apple.foundationdb.record.metadata
Record Layer Meta-Data
All operations on records are mediated by a RecordMetaData
.
It describes the format of persistent records, their fields and secondary indexes.
There is a rough correspondence between the terminology used within the Record Layer
and those used by relational databases:
Record Layer | Relational |
---|---|
meta-data | schema |
record type | table |
field | column |
Note that this correspondence is not exact. In particular, note that a record type and a table differ in that records of various types are included within the same extent. There are more details about the differences between tables and record types within the Record Layer FAQ.
The core of the meta-data is a Protobuf Descriptors.FileDescriptor
.
Every RecordType
corresponds to a message Descriptors.Descriptor
in the file descriptor.
The possible fields of the record are the fields of the message.
A RecordMetaDataBuilder
is used to construct meta-data from a file descriptor or to restore serialized meta-data from the database.
A RecordTypeBuilder
is used to specify options for a record type. In particular, a record type has a primary key and any number of secondary Index
es.
The fields of the primary key and of an index are specified by a KeyExpression
.
-
Interface Summary Interface Description IndexValidatorRegistry A registry ofIndexValidator
s.RecordTypeOrBuilder Common interface implemented by theRecordType
andRecordTypeBuilder
classes that contains accessors that they are both expected to have. -
Class Summary Class Description FormerIndex The location where a deleted index used to live.Index Meta-data for a secondary index.IndexAggregateFunction An aggregate function implemented by scanning an appropriate index.IndexOptions The standard options for use withIndex
.IndexRecordFunction<T> A function which is applied to a record with the help of an index.IndexTypes The standard index types.IndexValidator Validate an index according to the constraints of the index's type.JoinedRecordType A synthetic record type representing the indexable result of joining stored records.JoinedRecordType.Join An equi-join between constituent types.JoinedRecordType.JoinConstituent A constituent type within a joined record type.JoinedRecordTypeBuilder A builder forJoinedRecordType
.JoinedRecordTypeBuilder.Join An equi-join between constituent types.JoinedRecordTypeBuilder.JoinConstituent A constituent type within a joined record type.Key Namespace for classes related toKeyExpression
construction and evaluation.Key.Evaluated Represents the list objects for a key in a secondary index or primary storage.Key.Expressions Holder class for the static methods for creating Key Expressions.MetaDataEvolutionValidator This class can be used to validate that the new meta-data for a record store is responsibly evolved from its existing meta-data.MetaDataEvolutionValidator.Builder A builder class for theMetaDataEvolutionValidator
.MetaDataValidator Validator forRecordMetaData
.RecordType Record type meta-data.RecordTypeBuilder A builder forRecordType
.RecordTypeIndexesBuilder A base builder forRecordType
.StoreRecordFunction<T> Record function that should be evaluated for some record against anFDBRecordStoreBase
instance.SyntheticRecordType<C extends SyntheticRecordType.Constituent> A synthetic record type is made up of other record types and not actually stored separately in the record store.SyntheticRecordType.Constituent A constituent type of the synthetic record type.SyntheticRecordTypeBuilder<C extends SyntheticRecordTypeBuilder.Constituent> A builder forSyntheticRecordType
.SyntheticRecordTypeBuilder.Constituent A constituent type within a joined record type. -
Enum Summary Enum Description Key.Evaluated.NullStandin Values used in index keys in place of missing fields. -
Exception Summary Exception Description MetaDataException Exception thrown when there is a problem with something in theRecordMetaDataProto.MetaData
.RecordTypeBuilder.NonbuildableException Exception thrown when aRecordTypeBuilder
is not yet in a state where it can be built.