From b9c9563e331498ecc38579d5b78dc7d450954ae1 Mon Sep 17 00:00:00 2001 From: minleejae Date: Mon, 21 Sep 2026 23:19:08 +0900 Subject: [PATCH] feat: support MySQL TABLE query sources in CREATE TABLE Signed-off-by: minleejae --- .../statement/create/table/CreateTable.java | 35 ++++++--- .../util/deparser/CreateTableDeParser.java | 13 +--- .../net/sf/jsqlparser/parser/JSqlParserCC.jjt | 11 ++- .../create/MySqlCreateTableSourceTest.java | 77 +++++++++++++++++++ 4 files changed, 111 insertions(+), 25 deletions(-) create mode 100644 src/test/java/net/sf/jsqlparser/statement/create/MySqlCreateTableSourceTest.java diff --git a/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java b/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java index d248f7879..643ce8bc4 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java @@ -39,6 +39,7 @@ public class CreateTable implements Statement { private Table cloneTable; private ColDataType ofType; private boolean selectParenthesis; + private boolean useAsKeyword = true; private boolean ifNotExists = false; private boolean orReplace = false; private TablePartitioning partitioning; @@ -195,6 +196,29 @@ public Select getSelect() { return select; } + public boolean isUseAsKeyword() { + return useAsKeyword; + } + + public void setUseAsKeyword(boolean useAsKeyword) { + this.useAsKeyword = useAsKeyword; + } + + public StringBuilder appendSelectTo(StringBuilder builder, + java.util.function.Consumer