Repository navigation
Kingbase - #5875
Kingbase#5875lifeng5210 wants to merge 27 commits into
Conversation
…ySQL 的 Bytes 字段标记为 Base64 编码,供 Query Interpreter 正确还原 JSON 聚合结果。
新增 Kingbase MySQL 兼容模式的原生连接器, 适配 SQL visitor、类型转换、连接配置和测试覆盖。
让 query-compiler 在 Kingbase MySQL 模式下使用 KingbaseMysql 模板 visitor, 保留参数模板和 JSONPATH 元数据,并补充相关 feature 与模板测试。
新增 Kingbase MySQL 的原生连接、Schema 内省、迁移渲染和测试覆盖。 为无法隐式转换的原生类型变更生成 USING 表达式,并完整支持 MySQL BIT 类型。
同步当前诊断输出格式,确保 Kingbase MySQL 原生类型校验的 40 项测试全部通过。
允许 Kingbase MySQL 连接器同时校验 `kingbase-mysql://` 和 `kingbase://` 两种数据源 URL。
将 MySQL 全文检索 SQL 重写为 Kingbase 的 tsvector/tsquery 语法, 使用 GIN 表达式索引完成迁移生成与 introspection,并补充 schema push 全文索引创建和幂等性测试。
补充 Kingbase MySQL 的连接、类型映射、SQL 生成、迁移与反向工程支持,修复索引排序、复合外键、默认值解析及全文查询兼容性问题,并完善相关测试。
- 修正默认端口、TLS 参数解析和错误映射 - 支持 Query Compiler 动态全文检索参数 - 修正迁移重试指数退避并补充覆盖 - 对齐 Kingbase PSL 快照与编译 feature
- 增加 kingbase-oracle provider、原生类型映射与 Schema 校验 - 实现独立的 Oracle 模式连接、类型编解码、错误处理和连接池路由 - 新增 Oracle SQL Visitor,支持 CRUD、RETURNING、分页、事务、JSON 与安全 MERGE upsert - 补充 Oracle 原生类型及真实连库测试,并保持数组和全文检索明确不支持 - 为 Query Compiler 与 Schema Engine 注册 Oracle SQL family 的显式未实现分支
接入 Kingbase Oracle 模式的 Schema Engine 迁移、内省与数据库描述能力,补充原生类型及集成测试; 同步完成 PSL、Quaint 的配套调整, 同时修复 Kingbase MySQL 动态全文检索和窄无符号整数范围处理。
- 注册 Query Compiler 与 Wasm 的 Kingbase Oracle provider 和 SQL family - 支持 Oracle 全文检索及 relation join 嵌套二进制字段的十六进制映射 - 校准 PSL 能力声明、原生类型测试和单迁移 fixture 分隔符解析 - 补充 JSON protocol、相关度排序与回归测试
- 支持 Oracle TINYINT 的 PSL、迁移渲染和数据库反射 - 修正 Oracle JSON 比较及关系连接 MERGE 参数行渲染 - 补充 Kingbase MySQL DOUBLE 参数推断的回归测试
- 更新 PSL 原生类型校验的纯文本错误快照 - 明确 DOUBLE 比较参数在预编译元数据中报告为 Text
- 使用 NUMBER 和序列生成自增值,保证主键与外键类型一致 - 将 ROWID 映射为文本,并将 TINYINT 正确解码为整数 - 补充自增外键、ROWID 和 TINYINT 的数据库回归测试
- 恢复使用驱动现有的二进制查询路径 - 移除尚未完整支持的 ROWID 和 TINYINT 类型映射 - 删除对应的原生查询测试,保留自增主外键迁移修复
- 接入共享迁移和内省测试的标签与能力筛选,新增独立的 Oracle 测试 DDL 生成器。 - 统一全大写标识符折叠和空字符串默认值处理,修复默认值引号转义及自增转普通默认值时的丢失问题。 - 区分唯一约束与独立唯一索引,保证外键引用及约束删除使用正确的 Oracle SQL。 - 完善枚举参数类型推断、结果解码与枚举变更差异计算,修正数值和时间类型转换的风险判定。 - 适配 Oracle NUMBER 结果断言、原生类型预期和诊断快照,补充失败迁移的 DDL 回滚与历史诊断回归测试。 - 更新 Kingbase 测试覆盖范围、执行统计及维护注意事项。
- 修复索引、约束、类型转换及无符号整数范围处理 - 改用 sys 接口,修正类型校验、SQL 转义及全文参数标记 - 补充实库回归,固定驱动修复版本并更新 Cargo.lock 注:驱动提交暂未推送;全文参数需配套更新 adapter。
MySQL 模式: - 修复唯一键错误暴露物理索引名,恢复用户定义的逻辑名称,并兼顾事务失败及迁移建索引失败场景。 - 修复 INCLUDE 列被误认为索引键、字符串及枚举默认值重复解码、表达式或截断 CAST 被错误简化的问题;主键 DDL 省略实例不支持的默认 ASC。 - 为显式自增 ID 参数补充编译器元数据,供 JS adapter 正确回读插入 ID;拒绝独立 SQL 数组绑定和结果读取,保留 JSON 数组及 IN 查询。 - 登记共享测试的 JSON、枚举能力,同步枚举逻辑名及基础迁移中物理索引名、逻辑名称注释的预期。 Oracle 模式: - 使用独立描述器、默认值解析及连接器元数据,移除对 PG 描述器、类型解析和枚举渲染的委托;优先使用 Oracle 字典,缺失信息通过已核实的金仓 sys 接口补充,迁移锁改用 sys_advisory_lock。 - 修复索引与约束归属、INCLUDE 键列、默认值 CAST 和字面量解析,以及错误的类型等价判断;按实例能力校验 NUMBER、字符类型及不可直接转换的类型。 - 修复枚举增删、临时类型名称冲突及外键依赖处理;完善自增序列命名、命名空间、已有数据计数校准和所有权处理,避免误删外部或仍被引用的序列。 - 统一 schema 物理名称与连接 search_path、迁移比较、反查及 reset 的处理,消除全大写名称导致的重复迁移,保留混合大小写名称的区别。 - 修复关系 JSON 中大整数及 Decimal 精度、JSON 路径键名和长字符串处理;补齐 ROWID/TINYINT 查询元数据及 JsonNull/DbNull 输入能力登记。 - 移除 Oracle feature 对 PostgreSQL 的隐式依赖,修复单独启用 Oracle native 或两种 Kingbase native 时的构建失败。 代码组织与依赖: - 按原框架布局调整两种 flavour 入口、native 模块及驱动 defaults 模块;将 MySQL 9 段、Oracle 10 段反查 SQL 提取为独立 *_query.sql,保持查询语义不变。 - Oracle 默认值解析归入 default.rs,专用编译器回归移入各自测试文件,测试模块置于文件末尾;原 PG 专用文件保持不变。 - 金仓 Rust 驱动固定到 11a0a2ed3286eb791900ff43ea02114a63937e24,同步 Cargo.lock,并更新适配与验收记录。 验证:补充并执行相关迁移、反查、描述器、驱动和编译器回归;结构整理后两模式专用 schema 实库测试共 269 项通过,四组 feature 构建、严格 Clippy 和格式检查通过。本次不表示所有共享测试及此前延期事项均已验收。
- 将适用的属性、配置、类型、关系及格式化场景接入金仓两种模式 - 按原框架组织补充能力测试和测试夹具,统一金仓完整错误快照格式 - 更新测试记录;PSL 全特性测试 1479 项通过,严格 Clippy 和格式检查通过
- 全文搜索统一使用金仓 tsquery,移除 Boolean Mode 解析及参数转换标记。 - BLOB→BIT、日期时间→数字交由金仓原生转换,失败时不删除重建源列。 - SUM 保留实际参数类型绑定,取消整数强制提升为 NUMERIC。 - 拒绝三种小无符号整数,删除域和触发器模拟;旧对象保留并反查为 Unsupported,不兼容外键要求人工迁移。 - 更新校验、迁移、反查、查询及编译器回归测试,补充 Oracle 共享测试接入说明。
- 新增金仓 MySQL、Oracle 模式的默认连接池容量与自定义 connection_limit 测试 - 将 Oracle 接入共享枚举和 JSON 列比较测试,适配自增主键与 JSON 原生类型元数据,并清理枚举测试对象 - 将 Oracle 接入字符串长度超限和外键约束错误测试,使用 VARCHAR2 列定义 - 补充 Oracle 本地测试连接环境变量
- 新增独立 Kingbase Oracle DDL 模块及 feature 登记,接入 Oracle renderer,沿用现有 DDL 构造器与 renderer 的职责组织 - 恢复通用 MySQL DDL 和 visitor 的原有输出,将金仓所需的标识符转义限定在自己的 renderer 和专用 visitor 入口 - 撤销原生 MySQL 的 SET 文本类型识别扩展,恢复原有类型识别和 NULL 解码边界 - 清理 PostgreSQL 未使用的约束跟踪标记、可见性扩展,以及共享 differ 中没有实际 override 的钩子 - 精简 AGENTS 工作约定,修正 PSL、Schema Engine、Wasm 构建及测试框架文档 验证:金仓双模式迁移、反查、描述器、Quaint 及配套 Client/类型回归通过;PSL、DDL 和相关单元测试通过。联动 Client 测试使用当前源码 Wasm。
|
|
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Tip 🎯 Customize your risk assessments
✅ Automatic approvals, with your rules
CodeRabbit Verify
|
No description provided.