now looking for optional database field.

This commit is contained in:
dal 2025-02-14 08:49:19 -07:00
parent 9e420c3201
commit e68353b61d
No known key found for this signature in database
GPG Key ID: 16F4B0E1E9F61122
6 changed files with 8 additions and 9 deletions

View File

@ -97,7 +97,7 @@ pub struct RedshiftCredentials {
pub struct SnowflakeCredentials {
pub account_id: String,
pub warehouse_id: String,
pub database_id: String,
pub database_id: Option<String>,
pub username: String,
pub password: String,
pub role: Option<String>,

View File

@ -5,12 +5,11 @@ use crate::utils::query_engine::credentials::SnowflakeCredentials;
pub async fn get_snowflake_client(
credentials: &SnowflakeCredentials,
database: Option<String>,
) -> Result<SnowflakeApi, Error> {
let snowflake_client = match SnowflakeApi::with_password_auth(
&credentials.account_id,
Some(credentials.warehouse_id.as_str()),
database.as_deref(),
Some(&credentials.warehouse_id),
credentials.database_id.as_deref(),
None,
&credentials.username,
credentials.role.as_deref(),

View File

@ -229,7 +229,7 @@ async fn route_to_query(
DataSourceType::Snowflake => {
let credentials: SnowflakeCredentials = serde_json::from_str(&credentials_string)?;
let mut snowflake_client = match get_snowflake_client(&credentials, None).await {
let mut snowflake_client = match get_snowflake_client(&credentials).await {
Ok(snowflake_client) => snowflake_client,
Err(e) => {
tracing::error!("There was an issue while establishing a connection to the parent data source: {}", e);

View File

@ -222,7 +222,7 @@ async fn get_snowflake_columns_batch(
credentials: &SnowflakeCredentials,
database: Option<String>,
) -> Result<Vec<DatasetColumnRecord>> {
let snowflake_client = get_snowflake_client(credentials, database).await?;
let snowflake_client = get_snowflake_client(credentials).await?;
// Build the IN clause for (schema, table) pairs
let table_pairs: Vec<String> = datasets
@ -647,7 +647,7 @@ async fn get_snowflake_columns(
schema_name: &String,
credentials: &SnowflakeCredentials,
) -> Result<Vec<DatasetColumnRecord>> {
let snowflake_client = get_snowflake_client(credentials, None).await?;
let snowflake_client = get_snowflake_client(credentials).await?;
let uppercase_dataset_name = dataset_name.to_uppercase();
let uppercase_schema_name = schema_name.to_uppercase();

View File

@ -345,7 +345,7 @@ async fn get_bigquery_tables_and_views(
async fn get_snowflake_tables_and_views(
credentials: &SnowflakeCredentials,
) -> Result<Vec<DatasetRecord>> {
let snowflake_client = get_snowflake_client(credentials, None).await?;
let snowflake_client = get_snowflake_client(credentials).await?;
let schema_list = credentials.schemas.clone().unwrap_or_else(|| vec![]);
let schema_string = if !schema_list.is_empty() {

View File

@ -95,7 +95,7 @@ pub async fn test_data_source_connection(
_ => return Err(anyhow!("Invalid credential type")),
};
match get_snowflake_client(&credential, None).await {
match get_snowflake_client(&credential).await {
Ok(client) => client,
Err(e) => return Err(anyhow!("Error getting snowflake client: {:?}", e)),
};