Trait TableHandle
Source pub trait TableHandle: Send + Sync {
// Required methods
fn table_ref(&self) -> &TableReference;
fn schema(&self) -> SchemaRef;
fn table_heap(&self) -> Arc<TableHeap>;
fn full_scan(&self) -> QuillSQLResult<Box<dyn TupleStream>>;
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)>>;
}