pub mod definition;
pub mod postgres;
pub mod provider;
pub mod sink;
pub mod sqlite;
#[cfg(feature = "test-hooks")]
pub mod test_hook;
pub use definition::{
MutableIndexDef, MutableTableDefinition, MutableTableDefinitionBuilder, MutableTableError,
MutableTableId,
};
use crate::catalog::backend::BackendImpl;
pub trait MutableBackend: Send + Sync {
fn create_table_ddl(&self, def: &MutableTableDefinition) -> String;
fn create_index_ddl(&self, def: &MutableTableDefinition, idx: &MutableIndexDef) -> String;
fn drop_table_ddl(&self, def: &MutableTableDefinition) -> String;
fn insert_dml(&self, def: &MutableTableDefinition, columns: &[&str], n_rows: usize) -> String;
fn update_dml(
&self,
def: &MutableTableDefinition,
set_columns: &[&str],
where_predicate: &str,
) -> String;
fn delete_dml(&self, def: &MutableTableDefinition, where_predicate: &str) -> String;
fn scan_dml(
&self,
def: &MutableTableDefinition,
projection: &[&str],
predicate: Option<&str>,
limit: Option<usize>,
) -> String;
fn catalog_backend(&self) -> &BackendImpl;
}