pub enum DatabaseConnection {
Disconnected,
}Expand description
Handle a database connection depending on the backend enabled by the feature
flags. This creates a database pool. This will be Clone unless the feature
flag mock is enabled.
Variants§
Disconnected
The connection to the database has been severed
Implementations§
Source§impl DatabaseConnection
impl DatabaseConnection
Sourcepub fn set_metric_callback<F>(&mut self, _callback: F)
pub fn set_metric_callback<F>(&mut self, _callback: F)
Sets a callback to metric this connection
Sourcepub async fn ping(&self) -> Result<(), DbErr>
pub async fn ping(&self) -> Result<(), DbErr>
Checks if a connection to the database is still valid.
Sourcepub async fn close(self) -> Result<(), DbErr>
pub async fn close(self) -> Result<(), DbErr>
Explicitly close the database connection.
See Self::close_by_ref for usage with references.
Sourcepub async fn close_by_ref(&self) -> Result<(), DbErr>
pub async fn close_by_ref(&self) -> Result<(), DbErr>
Explicitly close the database connection
Trait Implementations§
Source§impl Clone for DatabaseConnection
impl Clone for DatabaseConnection
Source§fn clone(&self) -> DatabaseConnection
fn clone(&self) -> DatabaseConnection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ConnectionTrait for DatabaseConnection
impl ConnectionTrait for DatabaseConnection
Source§fn get_database_backend(&self) -> DatabaseBackend
fn get_database_backend(&self) -> DatabaseBackend
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
stmt: Statement,
) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
stmt: Statement,
) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
Source§fn execute_unprepared<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
DatabaseConnection: 'async_trait,
fn execute_unprepared<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
DatabaseConnection: 'async_trait,
Source§fn query_one<'life0, 'async_trait>(
&'life0 self,
stmt: Statement,
) -> Pin<Box<dyn Future<Output = Result<Option<QueryResult>, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
fn query_one<'life0, 'async_trait>(
&'life0 self,
stmt: Statement,
) -> Pin<Box<dyn Future<Output = Result<Option<QueryResult>, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
Source§fn query_all<'life0, 'async_trait>(
&'life0 self,
stmt: Statement,
) -> Pin<Box<dyn Future<Output = Result<Vec<QueryResult>, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
fn query_all<'life0, 'async_trait>(
&'life0 self,
stmt: Statement,
) -> Pin<Box<dyn Future<Output = Result<Vec<QueryResult>, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
Source§fn support_returning(&self) -> bool
fn support_returning(&self) -> bool
RETURNING syntax on insert and updateSource§fn is_mock_connection(&self) -> bool
fn is_mock_connection(&self) -> bool
Source§impl DatasetConfigDb for DatabaseConnection
impl DatasetConfigDb for DatabaseConnection
fn get_by_dataset_id<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<DatasetConfiguration>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn upsert<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
patch: DatasetConfigurationPatch,
) -> Pin<Box<dyn Future<Output = Result<DatasetConfiguration, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl Debug for DatabaseConnection
impl Debug for DatabaseConnection
Source§impl Default for DatabaseConnection
impl Default for DatabaseConnection
Source§fn default() -> DatabaseConnection
fn default() -> DatabaseConnection
Source§impl DeleteDb for DatabaseConnection
impl DeleteDb for DatabaseConnection
fn get_data<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Data>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_data<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_data_dataset_links<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_datasets_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_dataset_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
owner_id: Uuid,
tenant_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<Option<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_dataset_data<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Data>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn count_dataset_data<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_dataset_data<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_datasets_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_datasets<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_dataset<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn detach_data_from_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
data_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn delete_pipeline_runs_by_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_pipeline_runs_by_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
pipeline_runs rows for a given dataset. Read moreSource§fn clear_pipeline_status_for_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear_pipeline_status_for_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
pipeline_status JSON entries keyed by dataset_id from all
Data records linked to that dataset. Read moreSource§fn clear_cognify_pipeline_status_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear_cognify_pipeline_status_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
cognify_pipeline key from the pipeline_status JSON
of a single Data record, removing only the entry keyed by dataset_id.Source§fn get_nodes_by_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphNode>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_nodes_by_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphNode>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_edges_by_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphEdge>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_edges_by_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphEdge>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_unique_nodes_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphNode>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_unique_nodes_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphNode>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
(data_id, dataset_id) whose slug is NOT shared
with other data items in the same dataset. Safe for targeted deletion.Source§fn get_unique_edges_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphEdge>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_unique_edges_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<GraphEdge>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
(data_id, dataset_id) whose slug is NOT shared
with other data items in the same dataset.Source§fn delete_provenance_nodes_for_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_provenance_nodes_for_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn delete_provenance_edges_for_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_provenance_edges_for_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn delete_provenance_nodes_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_provenance_nodes_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
(data_id, dataset_id) pair.Source§fn delete_provenance_edges_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_provenance_edges_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
(data_id, dataset_id) pair.Source§fn get_provenance_node_count_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_provenance_node_count_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
(data_id, dataset_id) pair.Source§fn get_provenance_edge_count_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_provenance_edge_count_for_data<'life0, 'async_trait>(
&'life0 self,
data_id: Uuid,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<usize, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
(data_id, dataset_id) pair.Source§fn delete_search_history_for_user<'life0, 'async_trait>(
&'life0 self,
user_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_search_history_for_user<'life0, 'async_trait>(
&'life0 self,
user_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn delete_all_search_history<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_all_search_history<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn count_search_history_for_user<'life0, 'async_trait>(
&'life0 self,
user_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_search_history_for_user<'life0, 'async_trait>(
&'life0 self,
user_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn count_all_search_history<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_all_search_history<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl IngestDb for DatabaseConnection
impl IngestDb for DatabaseConnection
fn get_dataset_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
owner_id: Uuid,
tenant_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<Option<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_dataset<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_dataset<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_dataset<'life0, 'async_trait>(
&'life0 self,
dataset: Dataset,
) -> Pin<Box<dyn Future<Output = Result<Dataset, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn list_datasets_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_datasets_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Dataset>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_data<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Data>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_data<'life0, 'async_trait>(
&'life0 self,
d: Data,
) -> Pin<Box<dyn Future<Output = Result<Data, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn attach_data_to_dataset<'life0, 'async_trait>(
&'life0 self,
dataset_id: Uuid,
data_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn update_last_accessed<'life0, 'life1, 'async_trait>(
&'life0 self,
data_ids: &'life1 [Uuid],
timestamp: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_last_accessed<'life0, 'life1, 'async_trait>(
&'life0 self,
data_ids: &'life1 [Uuid],
timestamp: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
last_accessed timestamp on the given Data records. Read moreSource§fn get_latest_pipeline_status<'life0, 'life1, 'async_trait>(
&'life0 self,
pipeline_name: &'life1 str,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<PipelineRunStatus>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_latest_pipeline_status<'life0, 'life1, 'async_trait>(
&'life0 self,
pipeline_name: &'life1 str,
dataset_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<PipelineRunStatus>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl<'c> IntoSchemaManagerConnection<'c> for &'c DatabaseConnection
impl<'c> IntoSchemaManagerConnection<'c> for &'c DatabaseConnection
fn into_schema_manager_connection(self) -> SchemaManagerConnection<'c>
Source§impl NotebookDb for DatabaseConnection
impl NotebookDb for DatabaseConnection
Source§fn list_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Notebook>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_by_owner<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Notebook>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
owner_id, ordered by created_at asc.Source§fn create<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
name: String,
cells: Value,
deletable: bool,
) -> Pin<Box<dyn Future<Output = Result<Notebook, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
name: String,
cells: Value,
deletable: bool,
) -> Pin<Box<dyn Future<Output = Result<Notebook, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn create_seeded<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
owner_id: Uuid,
name: String,
cells: Value,
deletable: bool,
) -> Pin<Box<dyn Future<Output = Result<Notebook, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_seeded<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
owner_id: Uuid,
name: String,
cells: Value,
deletable: bool,
) -> Pin<Box<dyn Future<Output = Result<Notebook, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_by_id_and_owner<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Notebook>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_by_id_and_owner<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Notebook>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn update<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
owner_id: Uuid,
patch: NotebookUpdatePatch,
) -> Pin<Box<dyn Future<Output = Result<Option<Notebook>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
owner_id: Uuid,
patch: NotebookUpdatePatch,
) -> Pin<Box<dyn Future<Output = Result<Option<Notebook>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
None when not
found (ownership check included).Source§impl SearchHistoryDb for DatabaseConnection
impl SearchHistoryDb for DatabaseConnection
fn log_query<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
query_text: &'life1 str,
query_type: &'life2 str,
user_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<Uuid, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn log_result<'life0, 'life1, 'async_trait>(
&'life0 self,
query_id: Uuid,
serialized_result: &'life1 str,
user_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<Uuid, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_history<'life0, 'async_trait>(
&'life0 self,
user_id: Option<Uuid>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<Vec<SearchHistoryEntry>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl SessionLifecycleDb for DatabaseConnection
impl SessionLifecycleDb for DatabaseConnection
Source§fn ensure_and_touch_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
user_id: Uuid,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ensure_and_touch_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
user_id: Uuid,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
last_activity_at if the row is
already running. Mirrors metrics.py:62-130.Source§fn accumulate_usage<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
user_id: Uuid,
model: Option<&'life2 str>,
tokens_in: i64,
tokens_out: i64,
cost_usd: f64,
errored: bool,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn accumulate_usage<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
user_id: Uuid,
model: Option<&'life2 str>,
tokens_in: i64,
tokens_out: i64,
cost_usd: f64,
errored: bool,
) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
metrics.py:133-241.Source§fn get_session_row<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
user_id: Uuid,
permitted_dataset_ids: &'life2 [Uuid],
prefer_other_owner: bool,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionRowWithStatus>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_session_row<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
user_id: Uuid,
permitted_dataset_ids: &'life2 [Uuid],
prefer_other_owner: bool,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionRowWithStatus>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
metrics.py:295-333.Source§fn list_session_rows<'life0, 'async_trait>(
&'life0 self,
filters: SessionListFilters,
) -> Pin<Box<dyn Future<Output = Result<SessionListPage, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_session_rows<'life0, 'async_trait>(
&'life0 self,
filters: SessionListFilters,
) -> Pin<Box<dyn Future<Output = Result<SessionListPage, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
effective_status filter support. Mirrors
metrics.py:365-438.Source§fn aggregate_stats<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: Uuid,
permitted_dataset_ids: &'life1 [Uuid],
since: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = Result<SessionStats, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn aggregate_stats<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: Uuid,
permitted_dataset_ids: &'life1 [Uuid],
since: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = Result<SessionStats, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
GET /sessions/stats. Mirrors
get_sessions_router.py:112-196.Source§fn cost_by_model<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: Uuid,
permitted_dataset_ids: &'life1 [Uuid],
since: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<CostByModelRow>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn cost_by_model<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: Uuid,
permitted_dataset_ids: &'life1 [Uuid],
since: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<CostByModelRow>, DatabaseError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
GET /sessions/cost-by-model.
Mirrors get_sessions_router.py:198-252.Source§impl StreamTrait for DatabaseConnection
impl StreamTrait for DatabaseConnection
Source§type Stream<'a> = QueryStream
type Stream<'a> = QueryStream
Source§impl TransactionTrait for DatabaseConnection
impl TransactionTrait for DatabaseConnection
Source§fn transaction<'life0, 'async_trait, F, T, E>(
&'life0 self,
_callback: F,
) -> Pin<Box<dyn Future<Output = Result<T, TransactionError<E>>> + Send + 'async_trait>>
fn transaction<'life0, 'async_trait, F, T, E>( &'life0 self, _callback: F, ) -> Pin<Box<dyn Future<Output = Result<T, TransactionError<E>>> + Send + 'async_trait>>
Execute the function inside a transaction. If the function returns an error, the transaction will be rolled back. If it does not return an error, the transaction will be committed.
Source§fn transaction_with_config<'life0, 'async_trait, F, T, E>(
&'life0 self,
_callback: F,
_isolation_level: Option<IsolationLevel>,
_access_mode: Option<AccessMode>,
) -> Pin<Box<dyn Future<Output = Result<T, TransactionError<E>>> + Send + 'async_trait>>
fn transaction_with_config<'life0, 'async_trait, F, T, E>( &'life0 self, _callback: F, _isolation_level: Option<IsolationLevel>, _access_mode: Option<AccessMode>, ) -> Pin<Box<dyn Future<Output = Result<T, TransactionError<E>>> + Send + 'async_trait>>
Execute the function inside a transaction. If the function returns an error, the transaction will be rolled back. If it does not return an error, the transaction will be committed.
Source§fn begin<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<DatabaseTransaction, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
fn begin<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<DatabaseTransaction, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
BEGIN transaction.
Returns a Transaction that can be committed or rolled backSource§fn begin_with_config<'life0, 'async_trait>(
&'life0 self,
_isolation_level: Option<IsolationLevel>,
_access_mode: Option<AccessMode>,
) -> Pin<Box<dyn Future<Output = Result<DatabaseTransaction, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
fn begin_with_config<'life0, 'async_trait>(
&'life0 self,
_isolation_level: Option<IsolationLevel>,
_access_mode: Option<AccessMode>,
) -> Pin<Box<dyn Future<Output = Result<DatabaseTransaction, DbErr>> + Send + 'async_trait>>where
'life0: 'async_trait,
DatabaseConnection: 'async_trait,
BEGIN transaction with isolation level and/or access mode.
Returns a Transaction that can be committed or rolled back