Commit Graph

284 Commits

Author SHA1 Message Date
Syngnat
2254b76232 🐛 fix(duckdb): 修复无主键结果无法安全编辑
- 为 DuckDB 查询结果和表预览补充隐藏 rowid 定位列,允许无主键表安全提交修改
- DataGrid 提交变更时仅将 rowid 用作定位条件,避免把隐藏定位列写回业务字段
- DuckDB ApplyChanges 对 duckdb-rowid 改用未加引号的 rowid 条件,修复更新和删除失效
- 补充前后端回归测试,覆盖 QueryEditor、DataViewer、rowLocator 与 ApplyChanges 链路
2026-06-05 14:05:18 +08:00
Syngnat
53811969c5 🐛 fix(driver-manager): 修复驱动 revision 错配与安装卡住
- 修复 revision 生成文件变更未触发 driver-agent 构建的问题
- 检测脚本自身变更时保守触发全量 driver-agent 构建
- 调整 dev 构建驱动安装策略为发布包优先、源码构建兜底
- 为驱动总包下载和源码构建增加超时边界
- 为驱动管理安装流程增加前端看门狗并补充回归测试
2026-06-05 08:34:38 +08:00
Syngnat
2438899ff5 🐛 fix(driver-manager): 修复驱动安装交互与 DuckDB Windows 发布链路
- 修复单驱动安装期间右侧目录操作被错误禁用的问题
- 调整 DuckDB Windows 优先下载专属 zip 并兼容带 query 的签名链接
- 补齐本地构建与 CI 发布的 duckdb-driver.zip 产物及回归测试
2026-06-05 07:15:16 +08:00
Syngnat
a718c41d5d test(app): 补强 DuckDB 定义刷新与主键回归
- 补充 DuckDB 对象修改链路的真实 DDL 刷新回归测试

- 为 app 层连接门禁增加可替换测试 seam,避免 fake metadata 测试被驱动校验拦截

- 修正 DuckDB metadata 测试的串行与断言稳定性
2026-06-04 22:25:08 +08:00
Syngnat
274c32ebdd 🐛 fix(frontend): 修复 DuckDB 对象编辑与安全修改回归
- 修复 DuckDB qualified table 在查询结果页丢失 schema 导致无法识别主键的问题

- 打开对象修改前强制刷新最新定义,并避免切换对象失败时沿用旧定义

- 为 DuckDB 元数据链路补充前后端回归测试,并给 app 层真实 runtime 测试增加环境门槛
2026-06-04 22:00:55 +08:00
Syngnat
a664f1a869 🐛 fix(driver): 精简驱动安装失败日志
驱动代理 revision 校验失败时不再在内外层重复拼接同一下载来源。

统一安装尝试错误格式,并折叠完全相同的失败条目。

补充 URL 前缀去重和安装尝试错误去重回归测试。
2026-06-04 17:02:46 +08:00
Syngnat
455813e53c 🐛 fix(driver): 修复驱动安装进度回退
驱动安装进度按单次会话做单调归一,避免旧下载事件覆盖新进度。

有单文件预编译资产时跳过驱动总包兜底,减少进度回退和安装失败面。

补充前端进度状态机与后端总包兜底回归测试。
2026-06-04 16:57:00 +08:00
Syngnat
8f7c790700 🐛 fix(sql-editor): 修复存储过程定义执行截断 2026-06-04 15:46:09 +08:00
Syngnat
5b602bff75 🐛 fix(duckdb): 修复唯一索引元数据安全编辑定位
- DuckDB 显式唯一索引表达式返回字符串包裹标识符时,统一归一化为真实列名

- 补充 DuckDB 主键、唯一约束、显式唯一索引的真实驱动回归测试

- 将 duckdb_metadata.go 纳入 DuckDB driver-agent revision 计算,确保重装驱动后加载新元数据逻辑
2026-06-04 13:52:05 +08:00
Syngnat
4ad1d15781 🐛 fix(driver/sidebar): 修复驱动代理 revision 校验与外部SQL目录重复显示
- driver:下载或总包中的 driver-agent revision 过旧时跳过该候选并继续 fallback

- driver:新增发布资产 revision 校验脚本并接入 dev/release CI

- sidebar:修复 v2 表/视图等筛选下重复显示外部 SQL 目录

- test:补充 driver-agent fallback 与侧栏筛选回归测试
2026-06-04 13:37:09 +08:00
Syngnat
02faa4586b 🐛 fix(metadata): 修复多数据源主键唯一索引识别
- 统一 PG-like 数据源字段和索引元数据查询,支持 search_path 可见表

- 兼容 snake_case、布尔别名和字符串唯一索引标记

- 修复 DuckDB main/memory 路径解析,避免误判外部 catalog

- 补充前后端回归测试,覆盖可编辑结果定位和元数据重试路径
2026-06-04 10:49:16 +08:00
Syngnat
37a094c351 🐛 fix(duckdb): 修复元数据兼容与在线安装回退 2026-06-04 08:27:25 +08:00
Syngnat
f5166ac3fc 🐛 fix(sql-editor): 修复结果消息展示与数据目录迁移稳定性 2026-06-04 07:09:42 +08:00
Syngnat
23ac30086f 🐛 fix(tdengine): 修复低版本驱动连接与表元数据兼容问题
- 修复 TDengine 历史驱动源码构建未按所选版本切换依赖的问题
- 为 DESCRIBE 与 SHOW CREATE 增加旧版本语法降级,避免表详情加载报错
- 为表概览补充 TDengine 专用查询分支,避免误查 information_schema
- 补充 TDengine 兼容性与驱动构建回归测试

Refs #531
2026-06-03 21:33:15 +08:00
Syngnat
c6f6f76489 Merge pull request #530 from origin/pr-530 2026-06-03 20:41:49 +08:00
Syngnat
1ae44941dd 🐛 fix(sql-editor): 修复脚本执行拆分与元数据只读提示
- Oracle 匿名块:识别 BEGIN/DECLARE...END 块,避免按内部分号错误拆分
- 执行路径:PL/SQL 块跳过批量写入路径,保持单条语句语义
- SQL 文件:同步修复流式 SQL 文件拆分逻辑
- 查询结果:系统元数据表保持只读但不再弹业务表主键提示
- 测试覆盖:补充前后端拆分、执行和 information_schema 回归用例
2026-06-03 17:11:05 +08:00
lixiaodong
cf9b7d9d10 feat(elasticsearch): 生产级 ES 驱动 — 写入支持、分页、多版本兼容
- go-elasticsearch/v8 官方 SDK,支持 ES 6.x/7.x/8.x
- SQL → ES DSL 转换、DevTools 查询、JSON DSL
- _bulk API 批量写入(INSERT/UPDATE/DELETE)
- 别名写入、精确分页、COUNT 统计
- API Key / SSH / SSL 连接支持
- 表设计器只读适配、ES 品牌图标
- 30+ 单元测试全部通过
2026-06-03 10:15:38 +08:00
Syngnat
eeaf3c658b 🐛 fix(duckdb): 修复唯一索引识别与多库对象解析
- 合并 DuckDB 约束与索引元数据,恢复唯一索引表的可编辑判定
- 修复 attach 多库场景下 catalog/schema/table 定位混乱问题
- 统一前后端 qualified name 解析,支持带点和带引号对象名
- 补充 DuckDB 元数据与编辑链路回归测试
2026-06-02 21:12:59 +08:00
Syngnat
c315ea9c96 feat(elasticsearch): 补齐新建连接入口
- 前端连接弹窗新增 Elasticsearch 入口、默认端口、URI 示例和默认索引配置

- 补齐 Elasticsearch 图标、数据源能力、SQL dialect 和只读查询策略

- 后端驱动管理注册 Elasticsearch 版本、模块路径、构建标签和默认安装入口

- 增加连接展示、能力识别和驱动定义测试覆盖
2026-06-02 15:31:00 +08:00
Syngnat
864ad8a371 ♻️ refactor(elasticsearch): 改用轻量 REST 客户端
- 使用标准库 HTTP 客户端实现 ES ping、索引、mapping 和查询请求

- 保留代理、TLS、超时和 BasicAuth 配置能力

- 移除 go-elasticsearch SDK 及间接依赖,降低 dev 构建下载风险

- 更新 Elasticsearch 后端单测适配 REST 客户端
2026-06-02 15:30:32 +08:00
Syngnat
05d1bc22c6 🐛 fix(driver-agent): 修复 ES 驱动代理 revision 同步
- 补齐 Elasticsearch 在 revision 生成、变更检测和发布补齐脚本中的注册

- 生成 Elasticsearch 真实 driver-agent revision,避免 src-local 占位通过

- 本地测试版本改用 dev-latest driver-agent,避免退到旧 latest 包

- 增加 revision 测试覆盖,禁止可选驱动使用本地占位 revision
2026-06-02 15:30:02 +08:00
Syngnat
c72542c92c feat(ai): upgrade MiniMax default model to M3 2026-06-02 13:42:48 +08:00
Syngnat
7f83954714 feat(elasticsearch): 新增 Elasticsearch 驱动支持 2026-06-02 13:42:22 +08:00
octo-patch
f6877ecfef feat(ai): upgrade MiniMax default model to M3
Add MiniMax-M3 to the MiniMax (Anthropic-compatible) provider model
list and set it as the new default. Retain MiniMax-M2.7 and
MiniMax-M2.7-highspeed for compatibility, and remove the deprecated
M2.5 / M2.5-highspeed / M2.1 / M2.1-highspeed / M2 entries.

Updates the matching backend static-model unit test and the frontend
provider preset (default model + model list).
2026-06-02 12:51:10 +08:00
lixiaodong
17ebc50b83 feat(elasticsearch): 新增 Elasticsearch 驱动支持
- 新增 ElasticsearchDB 实现 Database 接口全部 13 个方法
- 支持 HTTP/HTTPS 连接、Basic Auth、SSH 隧道、代理、SSL 回退
- 查询支持 JSON DSL 和 query_string 两种模式
- 元数据浏览:索引列表、mapping 字段、settings、aliases
- 完整单元测试覆盖(httptest mock,33+ 子测试)
- 注册为可选 Go 驱动,遵循现有 driver-agent 架构

Closes #521
2026-06-02 12:35:46 +08:00
Syngnat
e6dd986115 feat(external-sql): 完善外部 SQL 目录文件管理
- 新增外部 SQL 文件的新建、重命名、删除和目录管理接口

- 后端限制 SQL 目录只加载 .sql 文件并补充目录操作测试

- 前端补齐 Wails 类型、浏览器 mock 和外部 SQL 树过滤逻辑

- 支持从外部 SQL 文件标签定位到侧栏目录节点
2026-06-02 11:15:30 +08:00
Syngnat
5ffaa4361e 🐛 fix(metadata): 修复 Oracle 字段元数据显示缺失
- Oracle 元数据查询为字段名、类型、默认值、注释等列补齐稳定别名

- 新增字段定义归一化工具,兼容 name/Name/COLUMN_NAME 等返回形态

- 修复 DataGrid、DataViewer、QueryEditor、TableDesigner 对字段元数据的读取

- 补充 Oracle 字段注释、表头元数据和主键定位回归测试
2026-06-01 11:59:36 +08:00
Syngnat
63db9fecb3 feat(query-editor): 支持查询重命名导出与保存快捷键
- 支持已保存查询重命名并同步当前标签标题

- 新增 SQL 文件导出接口、Wails 绑定和浏览器 mock

- 补充 Ctrl/Cmd+S 保存查询与 Ctrl+, 快捷键入口修复

- 覆盖 SQL 编辑器保存、导出和快捷键回归测试
2026-05-31 22:32:48 +08:00
Syngnat
6f132db328 🐛 fix(iris): 修复 InterSystems IRIS 连接后表元数据为空
- 兼容 IRIS INFORMATION_SCHEMA 返回的紧凑列名格式
- 修复表、列、索引元数据读取时字段取值为空的问题
- 保持系统 schema 过滤逻辑,避免误展示内置对象
- 补充 IRIS metadata 回归测试覆盖表列表与列索引解析
- Refs #505
2026-05-31 14:18:40 +08:00
Syngnat
fdcbadf918 🐛 fix(connection-modal): 支持编辑态回填已保存密码并保持默认遮罩
- 编辑连接前主动拉取可编辑配置,恢复主密码与 SSH 等已保存密钥
- 支持 AI 供应商编辑态回填 API Key,并保持默认遮罩展示
- 修正 AI 设置长错误提示换行展示,避免测试连接报错被裁切

Refs #489
2026-05-30 17:25:58 +08:00
Syngnat
a7f8ce36df feat(font): 新增系统字体枚举与全局字体配置能力
- 新增 Go 侧已安装字体扫描接口,支持前端读取系统真实字体列表
- 接入 Wails 字体查询导出,补齐 App.d.ts 与 App.js 调用声明
- 新增字体选项构建与匹配工具,区分 UI 字体与等宽字体候选
- 外观设置支持按平台加载字体列表,并支持搜索匹配与默认字体回退
- Store 增加自定义 UI 字体与代码字体配置,持久化全局字体选择
2026-05-29 14:41:56 +08:00
Syngnat
17695c361d 🐛 fix(metadata): 修复列索引读取连接失效重试
- 为 DBGetColumns 和 DBGetIndexes 增加缓存连接失效后的重建与重试逻辑

- 补充 metadata 读取失败与重建失败日志,便于定位大表同步和主键识别异常

- 新增 metadata retry 单测覆盖列定义与索引定义两条读取链路
2026-05-27 08:44:33 +08:00
Syngnat
5ab50db51c ️ perf(sync): 优化大表同步分页与批量写入
- 同步分析和预览改为分页扫描差异,避免一次性加载源表和目标表

- 直接导入与源查询同步支持分页读取和分批提交,降低低内存机器 OOM 风险

- 各数据库 ApplyChanges 统一使用参数化批量 INSERT,减少大表同步 SQL 超时

- MySQL 批量写入按行数和参数数量拆分,兼容超宽表场景

- 补充批量插入、分页差异和源查询同步回归测试
2026-05-26 08:27:15 +08:00
Syngnat
654178c8cd 🐛 fix(ui): 修复新版 UI 布局回归并恢复切换样式
- 修复 v2 下 App 外层旧版左侧控件叠加问题,由新版 Sidebar 完整接管左侧布局
- 隔离旧版 AI 悬浮入口和 SQL 日志入口,避免影响新版 UI
- 恢复主题设置中界面版本切换的双卡片样式,移除胶囊分段控件
- 补齐 v2 主题样式、全局字体变量和弹窗按需挂载逻辑
- 增加回归测试锁定新版左侧布局和界面版本切换样式
2026-05-25 10:09:05 +08:00
Syngnat
d414a38877 🐛 fix(shardingsphere): 修复代理分片表展示为物理表
- 元数据取表接入 ShardingSphere 逻辑表规则

- 兼容 PostgreSQL、MySQL、MariaDB 协议入口

- 补充分片表折叠和降级测试

Refs #410
2026-05-24 12:00:48 +08:00
Syngnat
358d799af8 🐛 fix(mysql): 兼容 allowMultiQueries 连接参数
- 将 JDBC allowMultiQueries 参数映射为 MySQL driver 支持的 multiStatements

- 修复自定义 MySQL DSN 透传导致旧版本 MySQL 连接失败的问题

- 更新 MySQL 兼容 driver-agent revision

Refs #441
2026-05-24 10:59:52 +08:00
Syngnat
cf0a216329 🐛 fix(datasource): 修复 SQL Server 分页与 ClickHouse 22.8 连接兼容
- SQL Server 表数据分页改用旧版本兼容语法,避免 FETCH NEXT 报错

- ClickHouse HTTP 连接支持移除 client_protocol_version 后兼容重试

- 补充 SQL 分页与 ClickHouse 连接兼容回归测试

Refs #479
2026-05-23 19:14:40 +08:00
Syngnat
8615265ee1 feat(postgres): 新增数据库节点新建模式功能
- 后端新增 CreateSchema 接口,支持在选中 PostgreSQL 数据库下创建 schema

- 侧边栏旧版菜单和新版菜单均增加新建模式入口

- 创建成功后刷新对象树,并支持空模式显示

- 补充 Wails 绑定与创建模式相关测试

Refs #480
2026-05-23 18:32:51 +08:00
Syngnat
56b3112a07 🐛 fix(oracle): 修复表结构注释读取与保存报错
- 补齐 Oracle 表字段注释元数据读取

- 在表结构 DDL 中追加表和字段注释信息

- 规范表设计器 Oracle DDL 执行前的分号处理

Refs #482
2026-05-23 17:41:46 +08:00
Syngnat
b9c743d67e feat(query-editor): 增强 SQL 编辑器执行与历史体验
- 支持仅执行选中 SQL、光标所在语句和增量新增语句

- 持久化查询草稿,避免重启后丢失历史 SQL

- 在表字段提示中展示注释信息

- 修复清空默认 SQL 后被自动回填的问题

Refs #483
2026-05-23 17:07:47 +08:00
Syngnat
872b089b15 ️ perf(sql-import): 优化 SQL 文件流式导入性能
- 使用批量执行减少大 SQL 文件导入的数据库往返

- 引入独立导入会话,保留导入过程中的会话状态

- 批量失败时回滚并降级逐条执行,避免中断后续导入

- 补充 SQL 文件导入与流式拆分回归测试

Refs #487
2026-05-23 12:58:38 +08:00
Syngnat
b880b5416f 🐛 fix(connection): 修复 IRIS 连接类型保存后回退为 MySQL
- 将 IRIS 纳入前端连接类型白名单与默认端口配置

- 补齐常见数据源类型别名归一化,避免未知别名回退为 MySQL

- 增加 IRIS 连接保存、导入、自动 Limit 和表数据清空回归测试

- 补齐前后端 IRIS truncate 支持

Refs #476
2026-05-18 20:14:31 +08:00
Syngnat
e3515b9eb2 🐛 fix(windows): 修复闪退与驱动代理安装失败
- 修复 WebView2 zoom factor 跨线程调用风险,切回窗口线程执行并增加 recover 与超时保护
- 完善 Redis 命令结果 JSON-safe 兜底,避免复杂返回值格式化触发程序崩溃
- 调整 Windows driver-agent 校验逻辑,仅读取 PE Machine 字段判断架构兼容性
- 避免 COFF string table EOF 被误判为无效 Windows 可执行文件,修复驱动在线安装和本地导入失败
- 补充窗口缩放、Redis 返回值和驱动代理 PE 校验回归测试
2026-05-18 10:28:18 +08:00
Syngnat
992d2dee45 feat(iris): 新增 InterSystems IRIS 数据源支持
- 后端新增 IRIS 连接、查询、DDL、索引元数据和 DataGrid 编辑能力
- 接入 optional driver-agent、构建标签、revision 生成和变更检测流程
- 前端新增 IRIS 连接入口、方言映射、能力配置和图标展示
- 修复 IRIS 主键识别、事务开启错误处理和驱动连接关闭问题
- 补充后端、前端和构建脚本相关回归测试
Refs #408
2026-05-17 10:32:08 +08:00
Syngnat
0cde96844d 🐛 fix(windows): 修复在线更新挂起与 WebView2 启动闪退
- 隐藏并释放 Windows 更新脚本进程,避免在线更新打开 cmd 并挂起
- 为更新脚本等待宿主进程退出增加超时保护
- 收窄自动 WebView2 zoom reset 触发条件并补充异常兜底
- 补充 Windows 更新启动与窗口缩放回归测试
Refs #468
2026-05-16 22:13:24 +08:00
Syngnat
1dd1cb9e44 🐛 fix(sqlserver): 修复表 DDL 与索引创建语句生成
- DDL:为 SQL Server 表结构补充 CREATE TABLE fallback 生成
- 索引:在已有索引选择和新增索引弹窗中展示 CREATE INDEX 语句
- 测试:补充 SQL Server DDL fallback 与索引 SQL 预览回归测试
2026-05-16 08:46:51 +08:00
Syngnat
71fca7fb86 🐛 fix(export): 修复 PostgreSQL 布尔字段备份类型错误
- 导出修复:PostgreSQL 系列 bool 字段 INSERT 输出 true/false
- 兼容处理:支持 bool、boolean、pg_catalog.bool 类型识别
- 回归覆盖:补充备份 SQL 布尔字段导出测试
Refs #444
2026-05-15 22:23:41 +08:00
Syngnat
b707c74203 feat(connection): 支持连接 SSL 证书文件配置
- 新增 CA 证书、客户端证书和私钥路径配置
- 为 MySQL、PostgreSQL、ClickHouse、MongoDB、Redis 等连接接入 TLS 证书
- 修正 SSL 模式下证书校验、明文回退和 DER 证书兼容问题
- 补充证书路径保存、RPC 传递和 DSN 生成回归测试
Refs #463
2026-05-15 22:04:20 +08:00
Syngnat
b9f9a8fca2 feat(sync): 扩展跨库迁移自动建表能力
- 新增 MySQL、PG-like、ClickHouse、MongoDB 同类库迁移规划器
- 支持可映射库对自动建表、补字段及兼容索引迁移
- 修复 MongoDB 创建集合时建表 SQL 为空的执行判断
- 避免 PG-like 主键索引重复迁移并保留默认值表达式
- 更新 Data Sync 自动建表能力提示与回归测试
Refs #465
2026-05-15 20:33:42 +08:00
Syngnat
f2c8122c46 🐛 fix(starrocks): 修复主键元数据识别导致表只读
- 改用 information_schema.columns 读取 StarRocks COLUMN_KEY
- 将主键列规范标记为 PRI,恢复安全行定位能力
- 补充 StarRocks 列元数据解析测试并刷新 driver agent revision
2026-05-15 19:51:33 +08:00