pub trait ProviderExecutor: Send + Sync {
// Required methods
fn query(&self, sql: &str) -> KnowledgeResult<Vec<RowData>>;
fn query_fields(
&self,
sql: &str,
params: &[DataField],
) -> KnowledgeResult<Vec<RowData>>;
fn query_row(&self, sql: &str) -> KnowledgeResult<RowData>;
fn query_named_fields(
&self,
sql: &str,
params: &[DataField],
) -> KnowledgeResult<RowData>;
}