🐛 fix(oceanbase): 修复 Oracle 协议保存与连接链路

- 测试连接统一走 RPC 配置构造,确保 OceanBase Oracle 协议生效

- 保存连接时同步写入 oceanBaseProtocol 与 protocol 参数

- 编辑回显支持从显式字段、连接参数和 URI 恢复协议

- 双击连接时清理旧树缓存,避免复用 MySQL 协议子节点

- 补充 OceanBase 协议解析与缓存 key 隔离测试
This commit is contained in:
Syngnat
2026-04-30 17:27:17 +08:00
parent 5f9adcac37
commit 3c68325132
14 changed files with 289 additions and 31 deletions

View File

@@ -167,13 +167,14 @@ export function buildRpcConnectionConfig(
httpTunnel: mergedHttpTunnel,
};
const rpcMerged = withOceanBaseProtocolParam(merged);
const { oceanBaseProtocol: _oceanBaseProtocol, ...rpcPayload } = rpcMerged;
const baseId = toStringValue(config.id).trim() || toStringValue(overrides.id).trim() || undefined;
const timeout = toOptionalInteger(rpcMerged.timeout, toOptionalInteger(config.timeout));
const redisDB = toOptionalInteger(rpcMerged.redisDB, toOptionalInteger(config.redisDB));
const rpcConfig = new connection.ConnectionConfig({
...rpcMerged,
...rpcPayload,
type: toStringValue(rpcMerged.type),
host: toStringValue(rpcMerged.host),
port: toOptionalInteger(rpcMerged.port, toOptionalInteger(config.port, 0)) ?? 0,