diff --git a/common/src/enums.rs b/common/src/enums.rs index 7b706df..2188200 100644 --- a/common/src/enums.rs +++ b/common/src/enums.rs @@ -4,6 +4,7 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Copy, Serialize, Deserialize, Default)] pub enum Drivers { + BIGQUERY, #[default] PGSQL, } @@ -11,6 +12,7 @@ pub enum Drivers { impl Display for Drivers { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { + Drivers::BIGQUERY => write!(f, "BIGQUERY"), Drivers::PGSQL => write!(f, "PGSQL"), } } @@ -19,6 +21,7 @@ impl Display for Drivers { impl AsRef for Drivers { fn as_ref(&self) -> &str { match self { + Drivers::BIGQUERY => "BIGQUERY", Drivers::PGSQL => "PGSQL", } } diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index c475b5c..6693e6e 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -26,6 +26,7 @@ tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["fmt"] } ahash = { version = "0.8.11", features = ["serde"] } bincode = "1.3.3" +gcp-bigquery-client = "0.20.0" diff --git a/src-tauri/src/drivers/bigquery.rs b/src-tauri/src/drivers/bigquery.rs new file mode 100644 index 0000000..6ebab0f --- /dev/null +++ b/src-tauri/src/drivers/bigquery.rs @@ -0,0 +1,5 @@ +#[tauri::command] +pub async fn bigquery_connector() -> Result<(), String> { + todo!() +} + diff --git a/src-tauri/src/drivers/mod.rs b/src-tauri/src/drivers/mod.rs index 173f9d2..2b934e5 100644 --- a/src-tauri/src/drivers/mod.rs +++ b/src-tauri/src/drivers/mod.rs @@ -1,2 +1,3 @@ +pub mod bigquery; pub mod pgsql; diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 795e666..33bb8d6 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -71,6 +71,7 @@ fn main() { dbs::query::query_db_select, dbs::query::query_db_insert, dbs::query::query_db_delete, + drivers::bigquery::bigquery_connector, drivers::pgsql::pgsql_connector, drivers::pgsql::pgsql_load_relations, drivers::pgsql::pgsql_load_schemas, diff --git a/src/databases/bigquery/driver.rs b/src/databases/bigquery/driver.rs new file mode 100644 index 0000000..3aa0a4d --- /dev/null +++ b/src/databases/bigquery/driver.rs @@ -0,0 +1,3 @@ +#[derive(Debug, Clone, Copy)] +pub struct BigQuery; + diff --git a/src/databases/bigquery/mod.rs b/src/databases/bigquery/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/databases/mod.rs b/src/databases/mod.rs index 173f9d2..2b934e5 100644 --- a/src/databases/mod.rs +++ b/src/databases/mod.rs @@ -1,2 +1,3 @@ +pub mod bigquery; pub mod pgsql; diff --git a/src/invoke.rs b/src/invoke.rs index 296910e..a4917e5 100644 --- a/src/invoke.rs +++ b/src/invoke.rs @@ -11,10 +11,11 @@ pub enum Invoke { QueryDbInsert, QueryDbDelete, + BigQueryConnector, + PgsqlConnector, PgsqlLoadSchemas, PgsqlLoadTables, - #[allow(dead_code)] PgsqlLoadRelations, PgsqlRunQuery, } @@ -30,6 +31,8 @@ impl Display for Invoke { Invoke::QueryDbInsert => write!(f, "query_db_insert"), Invoke::QueryDbDelete => write!(f, "query_db_delete"), + Invoke::BigQueryConnector => write!(f, "bigquery_connector"), + Invoke::PgsqlConnector => write!(f, "pgsql_connector"), Invoke::PgsqlLoadRelations => write!(f, "pgsql_load_relations"), Invoke::PgsqlLoadTables => write!(f, "pgsql_load_tables"), @@ -50,6 +53,8 @@ impl AsRef for Invoke { Invoke::QueryDbInsert => "query_db_insert", Invoke::QueryDbDelete => "query_db_delete", + Invoke::BigQueryConnector => "bigquery_connector", + Invoke::PgsqlConnector => "pgsql_connector", Invoke::PgsqlLoadSchemas => "pgsql_load_schemas", Invoke::PgsqlLoadTables => "pgsql_load_tables",