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: Schema
Dataset schema.
local_schema: Schema
Local schema, only containing fields with the default storage class (not blobs)
version: u64
Dataset 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: usize
The file position of the version aux data.
index_section: Option<usize>
The file position of the index metadata.
timestamp_nanos: u128
The creation timestamp with nanosecond resolution as 128-bit integer
tag: Option<String>
An optional string tag for this version
reader_feature_flags: u64
The reader flags
writer_feature_flags: u64
The writer flags
max_fragment_id: u32
The 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: u64
The max row id used so far.
data_storage_format: DataStorageFormat
The 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§
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