pub trait IndexHandle: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn key_schema(&self) -> SchemaRef;
fn index_id(&self) -> u64;
fn insert(
&self,
key: &Tuple,
rid: RecordId,
txn_id: TransactionId,
) -> QuillSQLResult<()>;
fn delete(
&self,
key: &Tuple,
rid: RecordId,
txn_id: TransactionId,
) -> QuillSQLResult<()>;
fn range_scan(
&self,
table: Arc<dyn TableHandle>,
request: IndexScanRequest,
) -> QuillSQLResult<Box<dyn TupleStream>>;
}Required Methods§
fn name(&self) -> &str
fn key_schema(&self) -> SchemaRef
fn index_id(&self) -> u64
fn insert( &self, key: &Tuple, rid: RecordId, txn_id: TransactionId, ) -> QuillSQLResult<()>
fn delete( &self, key: &Tuple, rid: RecordId, txn_id: TransactionId, ) -> QuillSQLResult<()>
fn range_scan( &self, table: Arc<dyn TableHandle>, request: IndexScanRequest, ) -> QuillSQLResult<Box<dyn TupleStream>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".