Struct MaterializedView

Source
pub struct MaterializedView { /* private fields */ }
Expand description

A materialized view in Apache Iceberg that maintains a physical copy of query results in a storage table. The view provides ACID guarantees and can be refreshed to stay in sync with changes in the source tables.

The materialized view consists of:

  • A view definition (SQL or other representation)
  • A storage table containing the materialized data
  • Metadata tracking the freshness state relative to source tables

Implementations§

Source§

impl MaterializedView

Public interface of the table.

Source

pub fn builder() -> CreateMaterializedViewBuilder

Creates a new builder for configuring and creating a materialized view

Returns a CreateMaterializedViewBuilder that provides a fluent interface for:

  • Setting the view name and location
  • Configuring view properties
  • Defining the view schema and SQL representation
  • Specifying the catalog and storage table settings
Source

pub async fn new( identifier: Identifier, catalog: Arc<dyn Catalog>, metadata: MaterializedViewMetadata, ) -> Result<Self, Error>

Creates a new materialized view instance with the given identifier, catalog and metadata

§Arguments
  • identifier - The unique identifier for this view in the catalog
  • catalog - The catalog that will store this view’s metadata
  • metadata - The view metadata containing schema, properties, etc.
§Returns
  • Result<MaterializedView, Error> - The created materialized view or an error
Source

pub fn identifier(&self) -> &Identifier

Returns the unique identifier for this materialized view in the catalog

The identifier contains the namespace and name that uniquely identify this view within its catalog

Source

pub fn catalog(&self) -> Arc<dyn Catalog>

Returns a reference to the catalog that stores this materialized view

The catalog manages the view’s metadata and provides ACID guarantees for operations on the view

Source

pub fn current_schema(&self, branch: Option<&str>) -> Result<&Schema, Error>

Returns the current schema for this materialized view

§Arguments
  • branch - Optional branch name to get the schema for. If None, returns the main branch schema
§Returns
  • Result<&Schema, Error> - The current schema or an error if it cannot be found
Source

pub fn metadata(&self) -> &MaterializedViewMetadata

Returns a reference to this materialized view’s metadata

The metadata contains the view’s schema, properties, version history, and other configuration details as defined by the Apache Iceberg spec

Source

pub fn new_transaction( &mut self, branch: Option<&str>, ) -> MaterializedViewTransaction<'_>

Creates a new transaction for performing atomic operations on this materialized view

§Arguments
  • branch - Optional branch name to perform the transaction on. If None, uses the main branch
§Returns

A new transaction that can be used to perform multiple operations atomically

Source

pub async fn storage_table(&self) -> Result<StorageTable, Error>

Returns the storage table that contains the materialized data for this view

The storage table is a regular Iceberg table that stores the physical data for this materialized view. It is managed internally by the view and should not be modified directly.

§Returns
  • Result<StorageTable, Error> - The storage table or an error if it cannot be loaded

Trait Implementations§

Source§

impl Clone for MaterializedView

Source§

fn clone(&self) -> MaterializedView

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MaterializedView

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T