mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-06-21 05:53:46 +08:00
✨ feat(starrocks): 新增 StarRocks 数据源与高级对象能力
- 后端接入:新增独立 starrocks 可选驱动,复用 MySQL wire 协议并支持默认 9030 端口 - 驱动管理:补齐 manifest、build tag、revision、driver-agent provider 和构建脚本 - 前端接入:新增 StarRocks 连接类型、图标、能力矩阵、URI 解析、保存回显和 SQL 自动 LIMIT - 方言增强:新增 StarRocks 类型、关键字、函数补全和专属建表 SQL 生成 - 高级对象:支持物化视图对象浏览、Rollup 模板、外部 Catalog 模板和高级表设计器参数 - CI 发布:将 StarRocks driver-agent 纳入 dev/release 构建与 release 资产校验
This commit is contained in:
@@ -202,6 +202,7 @@ const getDefaultPortByType = (type: string) => {
|
||||
return 2881;
|
||||
case "doris":
|
||||
case "diros":
|
||||
case "starrocks":
|
||||
return 9030;
|
||||
case "sphinx":
|
||||
return 9306;
|
||||
@@ -259,6 +260,7 @@ const sslSupportedTypes = new Set([
|
||||
"oceanbase",
|
||||
"doris",
|
||||
"diros",
|
||||
"starrocks",
|
||||
"sphinx",
|
||||
"dameng",
|
||||
"clickhouse",
|
||||
@@ -290,6 +292,7 @@ const isMySQLCompatibleType = (type: string) =>
|
||||
type === "oceanbase" ||
|
||||
type === "doris" ||
|
||||
type === "diros" ||
|
||||
type === "starrocks" ||
|
||||
type === "sphinx";
|
||||
|
||||
const supportsConnectionParamsForType = (type: string) =>
|
||||
@@ -1359,6 +1362,8 @@ const ConnectionModal: React.FC<{
|
||||
parseMultiHostUri(trimmedUri, "jdbc:mysql") ||
|
||||
parseMultiHostUri(trimmedUri, "oceanbase") ||
|
||||
parseMultiHostUri(trimmedUri, "jdbc:oceanbase") ||
|
||||
parseMultiHostUri(trimmedUri, "starrocks") ||
|
||||
parseMultiHostUri(trimmedUri, "jdbc:starrocks") ||
|
||||
parseMultiHostUri(trimmedUri, "diros") ||
|
||||
parseMultiHostUri(trimmedUri, "doris");
|
||||
if (!parsed) {
|
||||
@@ -1782,7 +1787,7 @@ const ConnectionModal: React.FC<{
|
||||
if (isMySQLCompatibleType(dbType)) {
|
||||
const defaultPort = getDefaultPortByType(dbType);
|
||||
const scheme =
|
||||
dbType === "diros" ? "doris" : dbType === "oceanbase" ? "oceanbase" : "mysql";
|
||||
dbType === "diros" ? "doris" : dbType === "starrocks" ? "starrocks" : dbType === "oceanbase" ? "oceanbase" : "mysql";
|
||||
if (dbType === "oceanbase") {
|
||||
return `${scheme}://sys%40oracle001:pass@127.0.0.1:${defaultPort}/SERVICE_NAME?protocol=oracle`;
|
||||
}
|
||||
@@ -1896,7 +1901,7 @@ const ConnectionModal: React.FC<{
|
||||
const dbPath = database ? `/${encodeURIComponent(database)}` : "/";
|
||||
const query = params.toString();
|
||||
const scheme =
|
||||
type === "diros" ? "doris" : type === "oceanbase" ? "oceanbase" : "mysql";
|
||||
type === "diros" ? "doris" : type === "starrocks" ? "starrocks" : type === "oceanbase" ? "oceanbase" : "mysql";
|
||||
return `${scheme}://${encodedAuth}${hosts.join(",")}${dbPath}${query ? `?${query}` : ""}`;
|
||||
}
|
||||
|
||||
@@ -2256,6 +2261,7 @@ const ConnectionModal: React.FC<{
|
||||
configType === "mariadb" ||
|
||||
configType === "oceanbase" ||
|
||||
configType === "diros" ||
|
||||
configType === "starrocks" ||
|
||||
configType === "sphinx"
|
||||
? normalizedHosts.slice(1)
|
||||
: [];
|
||||
@@ -3631,6 +3637,11 @@ const ConnectionModal: React.FC<{
|
||||
name: "Doris",
|
||||
icon: getDbIcon("diros", undefined, 36),
|
||||
},
|
||||
{
|
||||
key: "starrocks",
|
||||
name: "StarRocks",
|
||||
icon: getDbIcon("starrocks", undefined, 36),
|
||||
},
|
||||
{
|
||||
key: "sphinx",
|
||||
name: "Sphinx",
|
||||
|
||||
Reference in New Issue
Block a user