Skip to content

Commit 68194bf

Browse files
ted-johnsonwumpz
authored andcommitted
make the CreateTable deparser use the accept/visit schema instead of the toString path (#663)
1 parent 44ea8bd commit 68194bf

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/main/java/net/sf/jsqlparser/util/deparser/CreateTableDeParser.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import net.sf.jsqlparser.statement.create.table.CreateTable;
2828
import net.sf.jsqlparser.statement.create.table.Index;
2929
import net.sf.jsqlparser.statement.select.PlainSelect;
30+
import net.sf.jsqlparser.statement.select.Select;
31+
3032

3133
/**
3234
* A class to de-parse (that is, tranform from JSqlParser hierarchy into a string) a
@@ -35,6 +37,7 @@
3537
public class CreateTableDeParser {
3638

3739
private StringBuilder buffer;
40+
private StatementDeParser statementDeParser;
3841

3942
/**
4043
* @param buffer the buffer that will be filled with the select
@@ -43,6 +46,12 @@ public CreateTableDeParser(StringBuilder buffer) {
4346
this.buffer = buffer;
4447
}
4548

49+
public CreateTableDeParser(StatementDeParser statementDeParser, StringBuilder buffer) {
50+
this.buffer = buffer;
51+
this.statementDeParser = statementDeParser;
52+
}
53+
54+
4655
public void deParse(CreateTable createTable) {
4756
buffer.append("CREATE ");
4857
if (createTable.isUnlogged()) {
@@ -64,7 +73,8 @@ public void deParse(CreateTable createTable) {
6473
if (createTable.isSelectParenthesis()) {
6574
buffer.append("(");
6675
}
67-
buffer.append(createTable.getSelect().toString());
76+
Select sel = createTable.getSelect();
77+
sel.accept(this.statementDeParser);
6878
if (createTable.isSelectParenthesis()) {
6979
buffer.append(")");
7080
}

src/main/java/net/sf/jsqlparser/util/deparser/StatementDeParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public void visit(CreateIndex createIndex) {
7070

7171
@Override
7272
public void visit(CreateTable createTable) {
73-
CreateTableDeParser createTableDeParser = new CreateTableDeParser(buffer);
73+
CreateTableDeParser createTableDeParser = new CreateTableDeParser(this, buffer);
7474
createTableDeParser.deParse(createTable);
7575
}
7676

0 commit comments

Comments
 (0)