58 lines
2.1 KiB
Rust
58 lines
2.1 KiB
Rust
use crate::models::connection::DatabaseType;
|
|
|
|
pub fn agent_key(db_type: &DatabaseType, driver_profile: Option<&str>) -> Option<&'static str> {
|
|
match db_type {
|
|
DatabaseType::Dameng => Some("dameng"),
|
|
DatabaseType::Kingbase => Some("kingbase"),
|
|
DatabaseType::Highgo => Some("highgo"),
|
|
DatabaseType::Vastbase => Some("vastbase"),
|
|
DatabaseType::Goldendb => Some("goldendb"),
|
|
DatabaseType::Oracle => match driver_profile {
|
|
Some("oracle-10g") => Some("oracle-10g"),
|
|
_ => Some("oracle"),
|
|
},
|
|
DatabaseType::H2 => Some("h2"),
|
|
DatabaseType::Snowflake => Some("snowflake"),
|
|
DatabaseType::Trino => Some("trino"),
|
|
DatabaseType::Hive => Some("hive"),
|
|
DatabaseType::Db2 => Some("db2"),
|
|
DatabaseType::Informix => Some("informix"),
|
|
DatabaseType::Neo4j => Some("neo4j"),
|
|
DatabaseType::Cassandra => Some("cassandra"),
|
|
DatabaseType::Bigquery => Some("bigquery"),
|
|
DatabaseType::Kylin => Some("kylin"),
|
|
DatabaseType::Sundb => Some("sundb"),
|
|
DatabaseType::Gaussdb => Some("gaussdb"),
|
|
DatabaseType::MongoDb => Some("mongodb"),
|
|
DatabaseType::Tdengine => Some("tdengine"),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
pub fn is_agent_type(db_type: &DatabaseType) -> bool {
|
|
agent_key(db_type, None).is_some()
|
|
}
|
|
|
|
pub fn is_single_connection_pool(db_type: &DatabaseType) -> bool {
|
|
matches!(
|
|
db_type,
|
|
DatabaseType::Sqlite
|
|
| DatabaseType::DuckDb
|
|
| DatabaseType::Oracle
|
|
| DatabaseType::Dameng
|
|
| DatabaseType::Kingbase
|
|
| DatabaseType::Highgo
|
|
| DatabaseType::Vastbase
|
|
| DatabaseType::Goldendb
|
|
| DatabaseType::Jdbc
|
|
)
|
|
}
|
|
|
|
pub fn is_metadata_connection_scoped(db_type: &DatabaseType) -> bool {
|
|
matches!(db_type, DatabaseType::Mysql | DatabaseType::Doris | DatabaseType::StarRocks)
|
|
}
|
|
|
|
pub fn skips_tcp_probe(db_type: &DatabaseType) -> bool {
|
|
matches!(db_type, DatabaseType::Sqlite | DatabaseType::DuckDb | DatabaseType::Jdbc) || is_agent_type(db_type)
|
|
}
|