pub trait VirtualTable: Send + Sync {
// Required methods
fn schema(&self) -> &VirtualTableSchema;
fn scan(
&self,
columns: &[String],
filter: Option<&VirtualFilter>,
limit: Option<usize>,
offset: Option<usize>,
) -> Result<Vec<VirtualRow>, VirtualTableError>;
// Provided methods
fn get(
&self,
key: &SochValue,
) -> Result<Option<VirtualRow>, VirtualTableError> { ... }
fn stats(&self) -> VirtualTableStats { ... }
fn refresh(&self) -> Result<(), VirtualTableError> { ... }
}Expand description
Virtual table trait
Plugins implement this trait to expose queryable tables.
Required Methods§
Sourcefn schema(&self) -> &VirtualTableSchema
fn schema(&self) -> &VirtualTableSchema
Get table schema
Sourcefn scan(
&self,
columns: &[String],
filter: Option<&VirtualFilter>,
limit: Option<usize>,
offset: Option<usize>,
) -> Result<Vec<VirtualRow>, VirtualTableError>
fn scan( &self, columns: &[String], filter: Option<&VirtualFilter>, limit: Option<usize>, offset: Option<usize>, ) -> Result<Vec<VirtualRow>, VirtualTableError>
Scan with optional filter
Provided Methods§
Sourcefn get(&self, key: &SochValue) -> Result<Option<VirtualRow>, VirtualTableError>
fn get(&self, key: &SochValue) -> Result<Option<VirtualRow>, VirtualTableError>
Point lookup by primary key
Sourcefn stats(&self) -> VirtualTableStats
fn stats(&self) -> VirtualTableStats
Get statistics for query planning
Sourcefn refresh(&self) -> Result<(), VirtualTableError>
fn refresh(&self) -> Result<(), VirtualTableError>
Refresh cached data (if applicable)