Uh oh!
There was an error while loading. Please reload this page.
fix: add 'K_TYPE' to KeywordOrIdentifier to allow 'type' as a column name - #2448
Merged
manticore-projects merged 1 commit intoAug 5, 2026
Merged
Conversation
…name TYPE is a non-reserved keyword in MySQL, so statements like 'ALTER TABLE tbl DROP COLUMN type' are valid without quoting. Follows the same approach as JSQLParser#2340 (K_DATA). FixesJSQLParser#2447
minleejaeforce-pushed
the
fix/drop-column-type-keyword
branch
from
August 5, 2026 09:06
9c29b1f to
f9b5537CompareUh oh!
There was an error while loading. Please reload this page.
manticore-projects
commented
Aug 5, 2026
Contributor
Thank you much! |
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 freeto 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.
Fixes#2447
Problem
TYPEis a non-reserved keyword in MySQL 8.0, so this is valid MySQL syntax without quoting:but it fails with
ParseException: Encountered unexpected token: "type" "TYPE", while the same identifier parses fine in aSELECT(viaRelObjectName(), sinceK_TYPEis inside the non-reserved word range).Fix
Adds
K_TYPEtoKeywordOrIdentifier(), following the exact same approach as #2340 (which addedK_DATAfor the same class of bug, see #2339).This covers all
KeywordOrIdentifier()call sites:DROP [COLUMN],RENAME [COLUMN], andCHANGE [COLUMN].Tests
testAlterTableDropColumnIssue2447—ALTER TABLE test DROP COLUMN typetestAlterTableChangeColumnIssue2447—ALTER TABLE tb_test CHANGE type INT (10)testAlterTableRenameColumnIssue2447—ALTER TABLE test_table RENAME COLUMN type TO type2Full test suite passes (4646 tests, 0 failures). JavaCC parser generation reports the same pre-existing warnings as master (#2403) with no new choice conflicts.