pub trait TableHandle: Send + Sync {
// Required methods
fn table_ref(&self) -> &TableReference;
fn schema(&self) -> SchemaRef;
fn full_scan(&self) -> QuillSQLResult<Box<dyn TupleStream>>;
fn full_tuple(&self, rid: RecordId) -> QuillSQLResult<(TupleMeta, Tuple)>;
fn insert(
&self,
txn: &mut TxnContext<'_>,
tuple: &Tuple,
indexes: &[Arc<dyn IndexHandle>],
) -> QuillSQLResult<()>;
fn delete(
&self,
txn: &mut TxnContext<'_>,
rid: RecordId,
prev_meta: TupleMeta,
prev_tuple: Tuple,
indexes: &[Arc<dyn IndexHandle>],
) -> QuillSQLResult<()>;
fn update(
&self,
txn: &mut TxnContext<'_>,
rid: RecordId,
new_tuple: Tuple,
prev_meta: TupleMeta,
prev_tuple: Tuple,
indexes: &[Arc<dyn IndexHandle>],
) -> QuillSQLResult<RecordId>;
fn prepare_row_for_write(
&self,
txn: &mut TxnContext<'_>,
rid: RecordId,
observed_meta: &TupleMeta,
) -> QuillSQLResult<Option<(TupleMeta, Tuple)>>;
fn undo_insert(
&self,
rid: RecordId,
txn_id: TransactionId,
) -> QuillSQLResult<()>;
fn undo_delete(
&self,
rid: RecordId,
prev_meta: TupleMeta,
prev_tuple: Tuple,
) -> QuillSQLResult<()>;
}Required Methods§
fn table_ref(&self) -> &TableReference
fn schema(&self) -> SchemaRef
fn full_scan(&self) -> QuillSQLResult<Box<dyn TupleStream>>
fn full_tuple(&self, rid: RecordId) -> QuillSQLResult<(TupleMeta, Tuple)>
fn insert( &self, txn: &mut TxnContext<'_>, tuple: &Tuple, indexes: &[Arc<dyn IndexHandle>], ) -> QuillSQLResult<()>
fn delete( &self, txn: &mut TxnContext<'_>, rid: RecordId, prev_meta: TupleMeta, prev_tuple: Tuple, indexes: &[Arc<dyn IndexHandle>], ) -> QuillSQLResult<()>
fn update( &self, txn: &mut TxnContext<'_>, rid: RecordId, new_tuple: Tuple, prev_meta: TupleMeta, prev_tuple: Tuple, indexes: &[Arc<dyn IndexHandle>], ) -> QuillSQLResult<RecordId>
fn prepare_row_for_write( &self, txn: &mut TxnContext<'_>, rid: RecordId, observed_meta: &TupleMeta, ) -> QuillSQLResult<Option<(TupleMeta, Tuple)>>
fn undo_insert( &self, rid: RecordId, txn_id: TransactionId, ) -> QuillSQLResult<()>
fn undo_delete( &self, rid: RecordId, prev_meta: TupleMeta, prev_tuple: Tuple, ) -> QuillSQLResult<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".