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§
Sourcefn store_schema(
&mut self,
name: &str,
table: &SymbolTable,
) -> Result<SchemaId, AdapterError>
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.
Sourcefn load_schema(&self, id: SchemaId) -> Result<SymbolTable, AdapterError>
fn load_schema(&self, id: SchemaId) -> Result<SymbolTable, AdapterError>
Load a symbol table by schema ID.
Sourcefn load_schema_by_name(&self, name: &str) -> Result<SymbolTable, AdapterError>
fn load_schema_by_name(&self, name: &str) -> Result<SymbolTable, AdapterError>
Load a symbol table by name (returns most recent version).
Sourcefn list_schemas(&self) -> Result<Vec<SchemaMetadata>, AdapterError>
fn list_schemas(&self) -> Result<Vec<SchemaMetadata>, AdapterError>
List all available schemas.
Sourcefn delete_schema(&mut self, id: SchemaId) -> Result<(), AdapterError>
fn delete_schema(&mut self, id: SchemaId) -> Result<(), AdapterError>
Delete a schema by ID.
Sourcefn search_schemas(
&self,
pattern: &str,
) -> Result<Vec<SchemaMetadata>, AdapterError>
fn search_schemas( &self, pattern: &str, ) -> Result<Vec<SchemaMetadata>, AdapterError>
Search schemas by name pattern.
Sourcefn get_schema_history(
&self,
name: &str,
) -> Result<Vec<SchemaVersion>, AdapterError>
fn get_schema_history( &self, name: &str, ) -> Result<Vec<SchemaVersion>, AdapterError>
Get schema history (all versions).