Commit Graph
113 Commits
Author SHA1 Message Date
Abeautifulsnow 310cc22b37 Fix/disable table comment for unsupported db (#518)
* fix(structure-editor): disable table comment input for databases that don't support comments (e.g. SQLite)

## 背景说明
SQLite 不支持表注释(COMMENT),但表注释输入框始终可编辑。用户修改注释后,SQL 预览显示暂无变更且应用变更按钮不可用,造成困惑的 UX。

## 修改内容
- 新增 isTableCommentDisabled 计算属性,基于 structureCapabilities.comment 控制禁用状态
- 表注释 Input 添加 :disabled 绑定,禁用时输入框变灰不可编辑
- 禁用时在输入框右侧显示 Info 图标,hover 显示 Tooltip 说明
- 三语言(zh-CN / en / es)新增 tableCommentUnsupported 翻译

## 影响范围
- SQLite、DuckDB 及未知数据库类型:输入框被禁用 + Tooltip 提示
- MySQL、PostgreSQL、ClickHouse 等支持注释的数据库:完全不受影响
- 后端 generate_comment_ddl 已有对等过滤(仅 Postgres/Oracle/ClickHouse 生成 COMMENT SQL)

## 测试
- 建议补充:dbType 为 sqlite 时 isTableCommentDisabled 为 true 的单元测试

* test(structure-editor): add tests for table comment disabled state and unsupported DB capabilities
2026-05-29 12:29:50 +08:00
t8y2 c7b7bed140 feat(editor): add extended column properties support for MySQL, PostgreSQL, and SQL Server
MySQL: AUTO_INCREMENT, ON UPDATE CURRENT_TIMESTAMP
PostgreSQL: GENERATED AS IDENTITY (BY DEFAULT / ALWAYS)
SQL Server: IDENTITY(seed, increment)
2026-05-29 00:41:51 +08:00
t8y2 ab12ab5c11 feat(editor): add keyboard navigation to type selector and column resize to structure editor
- SearchableSelect: support ArrowUp/Down to navigate filtered options, Enter to select, Escape to dismiss
- TableStructureEditor: add drag-to-resize column widths and horizontal scrolling for the columns table
2026-05-29 00:22:08 +08:00
t8y2 9aae48d089 feat(structure): auto-switch column length default based on data type
When changing a column's data type in the table structure editor, the
length parameter now updates to a sensible default for the new type
(e.g. int→11, tinyint→4) instead of preserving the old value.
2026-05-28 21:36:28 +08:00
t8y2 634e8bf5ac feat(sqlserver): enable table structure editing for existing columns and comments
- Enable renameColumn, alterExistingColumn, alterType, alterNullability,
  alterDefault, comment, and indexComment capabilities for SQL Server
- Implement build_sqlserver_existing_column_sql() with sp_rename for column
  rename, ALTER TABLE ALTER COLUMN for type/nullability changes, and dynamic
  SQL for default constraint management
- Add sp_addextendedproperty/sp_dropextendedproperty DDL generation for table,
  column, and index comments
- Fetch table and column comments from sys.extended_properties via OUTER APPLY
  in list_tables, list_objects, and get_columns SQL queries
- Fix table comment placeholder text (was showing column comment placeholder)
2026-05-27 22:28:31 +08:00
t8y2 551339cd22 fix: only refresh sidebar tree when table comment actually changed
Previously the sidebar tree refresh was skipped entirely in EDIT mode because
the check was gated on activeTab.mode === 'data', which is never true when
the structure editor is open. Now we pass a commentChanged flag through the
event chain and only refresh the tree when the comment was modified.
2026-05-26 16:21:54 +08:00
t8y2 32a4a5b1ec fix: normalize temporal column precision 2026-05-26 14:38:53 +08:00
t8y2 ce22d6a046 fix: focus new structure column input 2026-05-26 12:30:12 +08:00
t8y2 309c2d1555 fix: restore structure editor vertical scrolling 2026-05-26 12:26:21 +08:00
t8y2 75e97001ec style: fix formatting (oxfmt + cargo fmt) 2026-05-24 22:38:16 +08:00
t8y2 3f119cc9cf fix: use fixed column widths for type/length columns in table structure editor 2026-05-24 22:32:59 +08:00
t8y2 62b4905e54 feat: split data type into type+length columns with SearchableSelect, add Shiki SQL highlighting
- Separate data type input into type dropdown (SearchableSelect with allowCustom)
  and length input, Navicat-style
- Add comprehensive DATA_TYPE_OPTIONS for all 6 database engines, validated
  against official docs
- Add Shiki SQL syntax highlighting to the SQL preview panel
- Add i18n keys for new UI elements (typePlaceholder, length, noMatchingType)
2026-05-24 21:43:03 +08:00
t8y2 801434e423 refactor: convert table structure editor from modal dialog to tab
Replace the dialog-based TableStructureEditorDialog with a tab-based
TableStructureEditor, making it consistent with query editors, data
viewers, and object browsers. Users can now switch between editing
table structure and running queries freely.
2026-05-24 21:17:35 +08:00