Execute a parameterized query
(
&self,
sql: &str,
params: &[&dyn rusqlite::ToSql],
session_state: &SessionState,
)
| 93 | |
| 94 | /// Execute a parameterized query |
| 95 | pub async fn execute_query_with_params( |
| 96 | &self, |
| 97 | sql: &str, |
| 98 | params: &[&dyn rusqlite::ToSql], |
| 99 | session_state: &SessionState, |
| 100 | ) -> Result<DbResponse, RouterError> { |
| 101 | let route = self.determine_route(sql, session_state).await; |
| 102 | debug!("Parameterized query route: {:?}", route); |
| 103 | |
| 104 | match route { |
| 105 | QueryRoute::ReadOnly => { |
| 106 | let result = self.read_handler.query_with_params(sql, params).await?; |
| 107 | Ok(result) |
| 108 | } |
| 109 | QueryRoute::Write | QueryRoute::WriteTransaction => { |
| 110 | // For now, use the write handler for parameterized queries |
| 111 | // TODO: Implement parameterized queries in write handler |
| 112 | let result = self.write_handler.query(sql).await?; |
| 113 | Ok(result) |
| 114 | } |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | /// Determine which route to use for a query |
| 119 | pub async fn determine_route(&self, sql: &str, session_state: &SessionState) -> QueryRoute { |
nothing calls this directly
no test coverage detected