mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-07 23:23:52 +08:00
🐛 fix(oceanbase): 修复 OceanBase 协议模式识别与缓存隔离
- 支持 MySQL/Oracle 租户协议在前后端统一解析 - 拒绝 Native 协议并避免误回退为 MySQL - 修复 Oracle 模式下元数据、DDL、SQL 方言识别 - 修复连接缓存键与实际协议解析优先级不一致问题 - 补充前后端协议解析与缓存隔离回归测试
This commit is contained in:
@@ -110,6 +110,31 @@ describe('buildRpcConnectionConfig', () => {
|
||||
expect(result.connectionParams).toBe('protocol=mysql');
|
||||
});
|
||||
|
||||
it('rejects unsupported OceanBase native protocol instead of falling back to MySQL', () => {
|
||||
expect(() => buildRpcConnectionConfig({
|
||||
id: 'conn-oceanbase-native',
|
||||
type: 'oceanbase',
|
||||
host: 'ob.local',
|
||||
port: 2881,
|
||||
user: 'root@test',
|
||||
database: 'app',
|
||||
connectionParams: 'protocol=native',
|
||||
} as any)).toThrow(/不支持.*native/);
|
||||
});
|
||||
|
||||
it('rejects unsupported OceanBase protocol even when form protocol is explicit MySQL', () => {
|
||||
expect(() => buildRpcConnectionConfig({
|
||||
id: 'conn-oceanbase-native-masked',
|
||||
type: 'oceanbase',
|
||||
host: 'ob.local',
|
||||
port: 2881,
|
||||
user: 'root@test',
|
||||
database: 'app',
|
||||
oceanBaseProtocol: 'mysql',
|
||||
connectionParams: 'protocol=native',
|
||||
} as any)).toThrow(/不支持.*native/);
|
||||
});
|
||||
|
||||
it('preserves extra connection params for RPC calls', () => {
|
||||
const result = buildRpcConnectionConfig({
|
||||
id: 'conn-mysql',
|
||||
|
||||
Reference in New Issue
Block a user