Repository navigation
Make table option state transitions explicit - #2765
Merged
manticore-projects merged 1 commit intoOct 11, 2026
Merged
manticore-projects merged 1 commit into
manticore-projects merged 1 commit into
Conversation
Signed-off-by: minleejae <mmj9808@gmail.com>
This was referenced Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Make edits to CREATE/ALTER TABLE options observable through both their AST properties and SQL output. Replacing a typed option with raw tokens must not leave old values that reappear after another setter call.
Current design (As-is)
TableOptionkeeps raw tokens alongside its kind, name, value and structured children.setTokens()clears only some children; ordinary property setters can leave the raw tokens in control of rendering. Callers can therefore read stale typed properties or change an option without changing its emitted SQL. The storage-parameter deparser also ignores the current name and equals spelling.Target design (To-be)
setTokens()clears all structured contents and selectsOTHER; structured setters discard raw tokens. Tokens are not automatically parsed, and discarded state never returns.setForeignTableOptions()to edit the existing SERVER model directly.toString().This changes the setter contract for mixed raw/structured usage. Callers that replace tokens should set the structured properties they need explicitly. SQL grammar is unchanged.
Validation
spotlessApply check: 9,963 tests, 9,938 passed, 25 skipped, zero failures/errors. Grammar, formatting, Checkstyle, PMD, SpotBugs and coverage checks pass.master(cdbaf1ad). No fresh live database execution was performed for this AST refactor.checkpasses with 10,030 tests (10,005 passed, 25 skipped). Replaying 882 previously DB-validated fixtures preserves the AST and both SQL outputs for 875 supported cases, with the same seven existing parse gaps and no semantic regression. No fresh database execution.