pub struct AdbcBackend { /* private fields */ }Implementations§
Trait Implementations§
Source§impl CacheEviction for AdbcBackend
impl CacheEviction for AdbcBackend
Source§impl StorageBackend for AdbcBackend
impl StorageBackend for AdbcBackend
Source§fn init<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn init<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Initialize the storage backend.
Source§fn insert_metrics<'life0, 'async_trait>(
&'life0 self,
metrics: Vec<MetricRecord>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn insert_metrics<'life0, 'async_trait>(
&'life0 self,
metrics: Vec<MetricRecord>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Insert metrics into storage.
Source§fn query_metrics<'life0, 'async_trait>(
&'life0 self,
from_timestamp: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<MetricRecord>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn query_metrics<'life0, 'async_trait>(
&'life0 self,
from_timestamp: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<MetricRecord>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Query metrics from storage.
Source§fn prepare_sql<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn prepare_sql<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Prepare a SQL query and return a handle.
The handle is backend-specific and opaque to the caller.
Source§fn query_sql<'life0, 'life1, 'async_trait>(
&'life0 self,
statement_handle: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<MetricRecord>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_sql<'life0, 'life1, 'async_trait>(
&'life0 self,
statement_handle: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<MetricRecord>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute a prepared SQL query using its handle.
The handle must have been obtained from prepare_sql.
Source§fn aggregate_metrics<'life0, 'life1, 'async_trait>(
&'life0 self,
function: AggregateFunction,
group_by: &'life1 GroupBy,
from_timestamp: i64,
to_timestamp: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<Vec<AggregateResult>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn aggregate_metrics<'life0, 'life1, 'async_trait>(
&'life0 self,
function: AggregateFunction,
group_by: &'life1 GroupBy,
from_timestamp: i64,
to_timestamp: Option<i64>,
) -> Pin<Box<dyn Future<Output = Result<Vec<AggregateResult>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Aggregate metrics using the specified function and grouping.
Source§fn new_with_options(
connection_string: &str,
options: &HashMap<String, String>,
credentials: Option<&Credentials>,
) -> Result<Self, Status>
fn new_with_options( connection_string: &str, options: &HashMap<String, String>, credentials: Option<&Credentials>, ) -> Result<Self, Status>
Create a new instance with the given options.
The connection string and options are backend-specific.
Source§fn create_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
schema: &'life2 Schema,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_table<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
schema: &'life2 Schema,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Create a new table with the given schema
Source§fn insert_into_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
batch: RecordBatch,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert_into_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
batch: RecordBatch,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Insert data into a table
Source§fn query_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
projection: Option<Vec<String>>,
) -> Pin<Box<dyn Future<Output = Result<RecordBatch, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
projection: Option<Vec<String>>,
) -> Pin<Box<dyn Future<Output = Result<RecordBatch, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Query data from a table
Source§fn create_aggregation_view<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 AggregationView,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_aggregation_view<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 AggregationView,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create an aggregation view
Source§fn query_aggregation_view<'life0, 'life1, 'async_trait>(
&'life0 self,
view_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<RecordBatch, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_aggregation_view<'life0, 'life1, 'async_trait>(
&'life0 self,
view_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<RecordBatch, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Query data from an aggregation view
Source§fn drop_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn drop_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Drop a table
Source§fn drop_aggregation_view<'life0, 'life1, 'async_trait>(
&'life0 self,
view_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn drop_aggregation_view<'life0, 'life1, 'async_trait>(
&'life0 self,
view_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Drop an aggregation view
Source§fn table_manager(&self) -> &TableManager
fn table_manager(&self) -> &TableManager
Get the table manager instance
Source§fn update_batch_aggregations<'life0, 'life1, 'async_trait>(
&'life0 self,
batch: &'life1 [MetricRecord],
window: TimeWindow,
) -> Pin<Box<dyn Future<Output = Result<Vec<BatchAggregation>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_batch_aggregations<'life0, 'life1, 'async_trait>(
&'life0 self,
batch: &'life1 [MetricRecord],
window: TimeWindow,
) -> Pin<Box<dyn Future<Output = Result<Vec<BatchAggregation>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update batch-level aggregations.
This is called during batch writes to maintain running aggregations.
Source§fn insert_batch_aggregations<'life0, 'async_trait>(
&'life0 self,
aggregations: Vec<BatchAggregation>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn insert_batch_aggregations<'life0, 'async_trait>(
&'life0 self,
aggregations: Vec<BatchAggregation>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Insert batch-level aggregations.
This is called after update_batch_aggregations to persist the aggregations.
Auto Trait Implementations§
impl !Freeze for AdbcBackend
impl !RefUnwindSafe for AdbcBackend
impl Send for AdbcBackend
impl Sync for AdbcBackend
impl Unpin for AdbcBackend
impl !UnwindSafe for AdbcBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request