pub struct Manifest {Show 17 fields
pub schema: Schema,
pub local_schema: Schema,
pub version: u64,
pub writer_version: Option<WriterVersion>,
pub fragments: Arc<Vec<Fragment>>,
pub version_aux_data: usize,
pub index_section: Option<usize>,
pub timestamp_nanos: u128,
pub tag: Option<String>,
pub reader_feature_flags: u64,
pub writer_feature_flags: u64,
pub max_fragment_id: u32,
pub transaction_file: Option<String>,
pub next_row_id: u64,
pub data_storage_format: DataStorageFormat,
pub config: HashMap<String, String>,
pub blob_dataset_version: Option<u64>,
/* private fields */
}Expand description
Manifest of a dataset
- Schema
- Version
- Fragments.
- Indices.
Fields§
§schema: SchemaDataset schema.
local_schema: SchemaLocal schema, only containing fields with the default storage class (not blobs)
version: u64Dataset version
writer_version: Option<WriterVersion>Version of the writer library that wrote this manifest.
fragments: Arc<Vec<Fragment>>Fragments, the pieces to build the dataset.
This list is stored in order, sorted by fragment id. However, the fragment id sequence may have gaps.
version_aux_data: usizeThe file position of the version aux data.
index_section: Option<usize>The file position of the index metadata.
timestamp_nanos: u128The creation timestamp with nanosecond resolution as 128-bit integer
tag: Option<String>An optional string tag for this version
reader_feature_flags: u64The reader flags
writer_feature_flags: u64The writer flags
max_fragment_id: u32The max fragment id used so far
transaction_file: Option<String>The path to the transaction file, relative to the root of the dataset
next_row_id: u64The max row id used so far.
data_storage_format: DataStorageFormatThe storage format of the data files.
config: HashMap<String, String>Table configuration.
blob_dataset_version: Option<u64>Blob dataset version
Implementations§
Source§impl Manifest
impl Manifest
pub fn new( schema: Schema, fragments: Arc<Vec<Fragment>>, data_storage_format: DataStorageFormat, blob_dataset_version: Option<u64>, ) -> Self
pub fn new_from_previous( previous: &Self, schema: Schema, fragments: Arc<Vec<Fragment>>, new_blob_version: Option<u64>, ) -> Self
Sourcepub fn set_timestamp(&mut self, nanos: u128)
pub fn set_timestamp(&mut self, nanos: u128)
Set the timestamp_nanos value from a Utc DateTime
Sourcepub fn update_config(
&mut self,
upsert_values: impl IntoIterator<Item = (String, String)>,
)
pub fn update_config( &mut self, upsert_values: impl IntoIterator<Item = (String, String)>, )
Set the config from an iterator
Sourcepub fn delete_config_keys(&mut self, delete_keys: &[&str])
pub fn delete_config_keys(&mut self, delete_keys: &[&str])
Delete config keys using a slice of keys
Sourcepub fn update_schema_metadata(&mut self, new_metadata: HashMap<String, String>)
pub fn update_schema_metadata(&mut self, new_metadata: HashMap<String, String>)
Replaces the schema metadata with the given key-value pairs.
Sourcepub fn update_field_metadata(
&mut self,
field_id: i32,
new_metadata: HashMap<String, String>,
)
pub fn update_field_metadata( &mut self, field_id: i32, new_metadata: HashMap<String, String>, )
Replaces the metadata of the field with the given id with the given key-value pairs.
If the field does not exist in the schema, this is a no-op.
Sourcepub fn update_max_fragment_id(&mut self)
pub fn update_max_fragment_id(&mut self)
Check the current fragment list and update the high water mark
Sourcepub fn max_fragment_id(&self) -> Option<u64>
pub fn max_fragment_id(&self) -> Option<u64>
Return the max fragment id. Note this does not support recycling of fragment ids.
This will return None if there are no fragments.
Sourcepub fn max_field_id(&self) -> i32
pub fn max_field_id(&self) -> i32
Get the max used field id
This is different than Schema::max_field_id because it also considers the field ids in the data files that have been dropped from the schema.
Sourcepub fn fragments_since(&self, since: &Self) -> Result<Vec<Fragment>>
pub fn fragments_since(&self, since: &Self) -> Result<Vec<Fragment>>
Return the fragments that are newer than the given manifest. Note this does not support recycling of fragment ids.
Sourcepub fn uses_move_stable_row_ids(&self) -> bool
pub fn uses_move_stable_row_ids(&self) -> bool
Whether the dataset uses move-stable row ids.
Sourcepub fn serialized(&self) -> Vec<u8> ⓘ
pub fn serialized(&self) -> Vec<u8> ⓘ
Creates a serialized copy of the manifest, suitable for IPC or temp storage and can be used to create a dataset
pub fn should_use_legacy_format(&self) -> bool
Trait Implementations§
Source§impl DeepSizeOf for Manifest
impl DeepSizeOf for Manifest
Source§fn deep_size_of_children(&self, context: &mut Context) -> usize
fn deep_size_of_children(&self, context: &mut Context) -> usize
Source§fn deep_size_of(&self) -> usize
fn deep_size_of(&self) -> usize
impl StructuralPartialEq for Manifest
Auto Trait Implementations§
impl Freeze for Manifest
impl !RefUnwindSafe for Manifest
impl Send for Manifest
impl Sync for Manifest
impl Unpin for Manifest
impl !UnwindSafe for Manifest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more