Skip to main content

Crate paimon_datafusion

Crate paimon_datafusion 

Source
Expand description

Apache Paimon DataFusion Integration.

Register a Paimon table as a DataFusion table provider to query it with SQL or DataFrame API.

§Example

use std::sync::Arc;
use datafusion::prelude::SessionContext;
use paimon_datafusion::PaimonTableProvider;

// Obtain a Paimon Table (e.g. from your catalog), then:
let provider = PaimonTableProvider::try_new(table)?;
let ctx = SessionContext::new();
ctx.register_table("my_table", Arc::new(provider))?;
let df = ctx.sql("SELECT * FROM my_table").await?;

This version supports partition predicate pushdown by extracting translatable partition-only conjuncts from DataFusion filters.

Modules§

runtime

Structs§

PaimonCatalogProvider
Provides an interface to manage and access multiple schemas (databases) within a Paimon Catalog.
PaimonRelationPlanner
A RelationPlanner that intercepts VERSION AS OF and TIMESTAMP AS OF clauses on Paimon tables and resolves them to time travel options.
PaimonSchemaProvider
Represents a SchemaProvider for the Paimon Catalog, managing access to table providers within a specific database.
PaimonSqlHandler
Wraps a SessionContext and a Paimon Catalog to handle DDL statements that DataFusion does not natively support (e.g. ALTER TABLE).
PaimonTableProvider
Read-only table provider for a Paimon table.
PaimonTableScan
Execution plan that scans a Paimon table with optional column projection.

Functions§

to_datafusion_error
Converts a Paimon error into a DataFusion error.