Skip to content

feat(mysql): invisible column management for MySQL 8.0.23+ - #2607

Merged
openai0229 merged 12 commits into
OtterMind:mainfrom
Aias00:feature/mysql-invisible-column-2571
Sep 2, 2026
Merged

openai0229 merged 12 commits into
OtterMind:mainfrom
Aias00:feature/mysql-invisible-column-2571

Conversation

@Aias00

@Aias00 Aias00 commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add visible field to TableColumn domain model and detect "INVISIBLE" from the EXTRA column in information_schema.columns
  • Generate INVISIBLE keyword in column DDL via MysqlColumnTypeEnum.buildCreateColumnSql()
  • Frontend: add a "Visible" column to the column editor with a VISIBLE/INVISIBLE toggle, gated to MySQL

Closes #2571

Test plan

  • MySQL 8.0.23+: open a table with an invisible column — verify INVISIBLE state is shown
  • Toggle a column from INVISIBLE to VISIBLE — verify SQL preview includes MODIFY COLUMN ... VISIBLE
  • Create a new invisible column — verify SQL includes INVISIBLE
  • Verify SELECT * omits invisible columns (explain in UI tooltip)
  • MySQL 5.7 and 8.0.22 or earlier: verify the visibility control does not appear
  • mvn -B compile passes for the MySQL plugin module
  • eslint passes with zero warnings

@Aias00
Aias00 requested a review from openai0229 as a code owner August 5, 2026 13:46
Copilot AI lite review requested due to automatic review settings August 5, 2026 13:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@openai0229

openai0229 commented Aug 19, 2026 •

Copy link
Copy Markdown
Contributor

Follow-up review: changes requested before merge.

P1: the column metadata path calls FIELD_EXTRA.contains(...) without handling a NULL value. MySQL returns NULL for this metadata field on ordinary columns, so opening or refreshing column metadata can throw a NullPointerException. Please normalize nullable metadata before checking it, add a fixture/test for NULL EXTRA.

Aias00 added 4 commits August 21, 2026 02:38
Add `visible` field to TableColumn domain model, detect "INVISIBLE"
from the EXTRA column in information_schema, and generate the INVISIBLE
keyword in column DDL via MysqlColumnTypeEnum.

Frontend: add a "Visible" column to the column editor with a
VISIBLE/INVISIBLE toggle, gated to MySQL only.

Test fixtures: init.sql, grants.sql, cleanup.sql, README.md under
script/test-fixtures/mysql/MYSQL-OBJ-003/.

Closes OtterMind#2571
Replace hardcoded INVISIBLE string with SQL_INVISIBLE constant
from MysqlMetaDataConstants in MysqlColumnTypeEnum.
MySQL column grammar requires VISIBLE/INVISIBLE before the COMMENT
clause; the previous order produced ERROR 1064 for invisible columns
that carry a comment.
@Aias00
Aias00 force-pushed the feature/mysql-invisible-column-2571 branch from ee107fa to 4c6521a Compare August 21, 2026 09:39
@Aias00
Aias00 requested a review from a team as a code owner August 21, 2026 09:39
@openai0229
openai0229 merged commit 85d2e0a into OtterMind:main Sep 2, 2026
16 checks passed
@openai0229 openai0229 moved this from In Review to Done in Chat2DB Community Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[MYSQL-OBJ-003] Manage visible and invisible MySQL columns

3 participants