Skip to main content

SchemaDatabase

Trait SchemaDatabase 

Source
pub trait SchemaDatabase {
    // Required methods
    fn store_schema(
        &mut self,
        name: &str,
        table: &SymbolTable,
    ) -> Result<SchemaId, AdapterError>;
    fn load_schema(&self, id: SchemaId) -> Result<SymbolTable, AdapterError>;
    fn load_schema_by_name(
        &self,
        name: &str,
    ) -> Result<SymbolTable, AdapterError>;
    fn list_schemas(&self) -> Result<Vec<SchemaMetadata>, AdapterError>;
    fn delete_schema(&mut self, id: SchemaId) -> Result<(), AdapterError>;
    fn search_schemas(
        &self,
        pattern: &str,
    ) -> Result<Vec<SchemaMetadata>, AdapterError>;
    fn get_schema_history(
        &self,
        name: &str,
    ) -> Result<Vec<SchemaVersion>, AdapterError>;
}
Expand description

Database storage trait for symbol tables.

Implementations handle the specifics of different database backends.

Required Methods§

Source

fn store_schema( &mut self, name: &str, table: &SymbolTable, ) -> Result<SchemaId, AdapterError>

Store a complete symbol table in the database.

If a schema with the same name exists, it is updated.

Source

fn load_schema(&self, id: SchemaId) -> Result<SymbolTable, AdapterError>

Load a symbol table by schema ID.

Source

fn load_schema_by_name(&self, name: &str) -> Result<SymbolTable, AdapterError>

Load a symbol table by name (returns most recent version).

Source

fn list_schemas(&self) -> Result<Vec<SchemaMetadata>, AdapterError>

List all available schemas.

Source

fn delete_schema(&mut self, id: SchemaId) -> Result<(), AdapterError>

Delete a schema by ID.

Source

fn search_schemas( &self, pattern: &str, ) -> Result<Vec<SchemaMetadata>, AdapterError>

Search schemas by name pattern.

Source

fn get_schema_history( &self, name: &str, ) -> Result<Vec<SchemaVersion>, AdapterError>

Get schema history (all versions).

Implementors§