Skip to content

feat: support MySQL TABLE query sources in CREATE TABLE - #2666

Merged
manticore-projects merged 1 commit into
JSQLParser:masterfrom
minleejae:feat/mysql-create-table-source
Sep 21, 2026
Merged

manticore-projects merged 1 commit into
JSQLParser:masterfrom
minleejae:feat/mysql-create-table-source

Conversation

@minleejae

Copy link
Copy Markdown
Contributor

MySQL accepts CREATE TABLE target [AS] TABLE source, but the CREATE TABLE grammar currently requires an AS SELECT source. This prevents tools from inspecting or rewriting valid table-copy statements.

Reuse TableStatement for the source query, including qualified and quoted names, ORDER BY and LIMIT/OFFSET. Preserve whether AS was present for both TABLE and SELECT sources. Share query-suffix rendering between CreateTable and CreateTableDeParser so AST mutations use the same punctuation in both output paths; programmatically constructed CreateTable objects still use AS by default.

Regression tests cover source AST types, table discovery, mutation, table options, temporary tables, SELECT controls and malformed source boundaries.

Syntax reference: MySQL CREATE TABLE ... SELECT/TABLE.

Validation:

  • Full Gradle check passed on Java 17, including grammar ambiguity, formatting, static analysis, coverage and the full test suite. JUnit XML totals: 7994 tests, 0 failures/errors, 25 skipped.
  • MySQL 8.4.11: 13 cases (9 valid, 4 invalid). For all 9 valid cases, the original SQL, toString() output and StatementDeParser output executed successfully with matching query results or resulting schema state. Invalid inputs were rejected by the server.

Signed-off-by: minleejae <mmj9808@gmail.com>
@manticore-projects
manticore-projects merged commit 42c4ecb into JSQLParser:master Sep 21, 2026
10 checks passed
@manticore-projects

Copy link
Copy Markdown
Contributor

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants