From 2054489e930a08081e1c8f30b9c5f207199d6325 Mon Sep 17 00:00:00 2001 From: minleejae Date: Thu, 24 Sep 2026 21:40:21 +0900 Subject: [PATCH] feat: support PostgreSQL CTAS data population clauses Signed-off-by: minleejae --- .../statement/create/table/CreateTable.java | 13 +++ .../net/sf/jsqlparser/parser/JSqlParserCC.jjt | 15 +++- .../create/CreateTableDataPopulationTest.java | 86 +++++++++++++++++++ 3 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 src/test/java/net/sf/jsqlparser/statement/create/CreateTableDataPopulationTest.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 643ce8bc4..3776c5cd6 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 @@ -40,6 +40,7 @@ public class CreateTable implements Statement { private ColDataType ofType; private boolean selectParenthesis; private boolean useAsKeyword = true; + private Boolean withData; private boolean ifNotExists = false; private boolean orReplace = false; private TablePartitioning partitioning; @@ -204,6 +205,15 @@ public void setUseAsKeyword(boolean useAsKeyword) { this.useAsKeyword = useAsKeyword; } + /** Returns null for omission, true for WITH DATA, and false for WITH NO DATA. */ + public Boolean getWithData() { + return withData; + } + + public void setWithData(Boolean withData) { + this.withData = withData; + } + public StringBuilder appendSelectTo(StringBuilder builder, java.util.function.Consumer