Skip to content

Commit f126d15

Browse files
committed
fix parsing and rendering of Truncate
1 parent 6cd5481 commit f126d15

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

src/main/java/net/sf/jsqlparser/statement/truncate/Truncate.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
public class Truncate implements Statement {
3232

3333
private Table table;
34+
boolean cascade; // to support TRUNCATE TABLE ... CASCADE
3435

3536
@Override
3637
public void accept(StatementVisitor statementVisitor) {
@@ -45,8 +46,19 @@ public void setTable(Table table) {
4546
this.table = table;
4647
}
4748

49+
public boolean getCascade(){
50+
return cascade;
51+
}
52+
53+
public void setCascade(boolean c){
54+
cascade=c;
55+
}
56+
4857
@Override
4958
public String toString() {
59+
if(cascade==true){
60+
return "TRUNCATE TABLE " + table+" CASCADE";
61+
}
5062
return "TRUNCATE TABLE " + table;
5163
}
5264
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,11 @@ public void visit(Select select) {
144144

145145
@Override
146146
public void visit(Truncate truncate) {
147+
buffer.append("TRUNCATE TABLE ");
148+
buffer.append(truncate.getTable());
149+
if(truncate.getCascade()){
150+
buffer.append(" CASCADE");
151+
}
147152
}
148153

149154
@Override

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3448,7 +3448,7 @@ Truncate Truncate():
34483448
}
34493449
{
34503450
<K_TRUNCATE> <K_TABLE>
3451-
table=Table() { truncate.setTable(table); }
3451+
table=Table() { truncate.setTable(table); truncate.setCascade(false); } [ <K_CASCADE> {truncate.setCascade(true);} ]
34523452
{
34533453
return truncate;
34543454
}

0 commit comments

Comments
 (0)