Skip to content

Commit e9939fd

Browse files
committed
unlogged inlucded in deparser
1 parent 36a8e34 commit e9939fd

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
public class CreateTable implements Statement {
3737

3838
private Table table;
39-
private Boolean unlogged;
39+
private boolean unlogged = false;
4040
private List<String> tableOptionsStrings;
4141
private List<ColumnDefinition> columnDefinitions;
4242
private List<Index> indexes;
@@ -60,10 +60,11 @@ public void setTable(Table table) {
6060

6161
/**
6262
* Whether the table is unlogged or not (PostgreSQL 9.1+ feature)
63+
* @return
6364
*/
64-
public Boolean isUnlogged() { return unlogged; }
65+
public boolean isUnlogged() { return unlogged; }
6566

66-
public void setUnlogged(Boolean unlogged) { this.unlogged = unlogged; }
67+
public void setUnlogged(boolean unlogged) { this.unlogged = unlogged; }
6768

6869
/**
6970
* A list of {@link ColumnDefinition}s of this table.
@@ -113,7 +114,7 @@ public void setSelect(Select select) {
113114
public String toString() {
114115
String sql = "";
115116

116-
sql = "CREATE " + (unlogged != null && unlogged ? "UNLOGGED " : "") + "TABLE " + table;
117+
sql = "CREATE " + (unlogged ? "UNLOGGED " : "") + "TABLE " + table;
117118

118119
if (select != null) {
119120
sql += " AS " + select.toString();

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ public CreateTableDeParser(StringBuilder buffer) {
4343
}
4444

4545
public void deParse(CreateTable createTable) {
46-
buffer.append("CREATE TABLE ").append(createTable.getTable().getFullyQualifiedName());
46+
buffer.append("CREATE ");
47+
if (createTable.isUnlogged()) {
48+
buffer.append("UNLOGGED ");
49+
}
50+
buffer.append("TABLE ").append(createTable.getTable().getFullyQualifiedName());
4751
if (createTable.getSelect() != null) {
4852
buffer.append(" AS ").append(createTable.getSelect().toString());
4953
} else {

src/test/java/net/sf/jsqlparser/test/create/CreateTableTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,19 @@ public void testCreateTableAsSelect2() throws JSQLParserException {
4747
}
4848

4949
public void testCreateTable() throws JSQLParserException {
50+
String statement = "CREATE TABLE mytab (mycol a (10, 20) c nm g, mycol2 mypar1 mypar2 (23,323,3) asdf ('23','123') dasd, "
51+
+ "PRIMARY KEY (mycol2, mycol)) type = myisam";
52+
CreateTable createTable = (CreateTable) parserManager.parse(new StringReader(statement));
53+
assertEquals(2, createTable.getColumnDefinitions().size());
54+
assertFalse(createTable.isUnlogged());
55+
assertEquals("mycol", ((ColumnDefinition) createTable.getColumnDefinitions().get(0)).getColumnName());
56+
assertEquals("mycol2", ((ColumnDefinition) createTable.getColumnDefinitions().get(1)).getColumnName());
57+
assertEquals("PRIMARY KEY", ((Index) createTable.getIndexes().get(0)).getType());
58+
assertEquals("mycol", ((Index) createTable.getIndexes().get(0)).getColumnsNames().get(1));
59+
assertEquals(statement, "" + createTable);
60+
}
61+
62+
public void testCreateTableUnlogged() throws JSQLParserException {
5063
String statement = "CREATE UNLOGGED TABLE mytab (mycol a (10, 20) c nm g, mycol2 mypar1 mypar2 (23,323,3) asdf ('23','123') dasd, "
5164
+ "PRIMARY KEY (mycol2, mycol)) type = myisam";
5265
CreateTable createTable = (CreateTable) parserManager.parse(new StringReader(statement));
@@ -58,6 +71,11 @@ public void testCreateTable() throws JSQLParserException {
5871
assertEquals("mycol", ((Index) createTable.getIndexes().get(0)).getColumnsNames().get(1));
5972
assertEquals(statement, "" + createTable);
6073
}
74+
75+
public void testCreateTableUnlogged2() throws JSQLParserException {
76+
String statement = "CREATE UNLOGGED TABLE mytab (mycol a (10, 20) c nm g, mycol2 mypar1 mypar2 (23,323,3) asdf ('23','123') dasd, PRIMARY KEY (mycol2, mycol))";
77+
assertSqlCanBeParsedAndDeparsed(statement);
78+
}
6179

6280
public void testCreateTableForeignKey() throws JSQLParserException {
6381
String statement = "CREATE TABLE test (id INT UNSIGNED NOT NULL AUTO_INCREMENT, string VARCHAR (20), user_id INT UNSIGNED, PRIMARY KEY (id), FOREIGN KEY (user_id) REFERENCES ra_user(id))";

0 commit comments

Comments
 (0)