use of org.teiid.query.sql.lang.Create.CommitAction in project teiid by teiid.
the class SQLStringVisitor method visit.
@Override
public void visit(Create obj) {
append(CREATE);
append(SPACE);
if (obj.getTableMetadata() != null) {
append(FOREIGN);
append(SPACE);
append(TEMPORARY);
append(SPACE);
append(TABLE);
append(SPACE);
new DDLVisitor().addTableBody(obj.getTableMetadata());
append(SPACE);
append(ON);
append(SPACE);
outputLiteral(String.class, false, obj.getOn());
return;
}
append(LOCAL);
append(SPACE);
append(TEMPORARY);
append(SPACE);
append(TABLE);
append(SPACE);
visitNode(obj.getTable());
append(SPACE);
// Columns clause
List<Column> columns = obj.getColumns();
// $NON-NLS-1$
append("(");
Iterator<Column> iter = columns.iterator();
while (iter.hasNext()) {
Column element = iter.next();
outputDisplayName(element.getName());
append(SPACE);
if (element.isAutoIncremented()) {
append(NonReserved.SERIAL);
} else {
append(element.getRuntimeType());
if (element.getNullType() == NullType.No_Nulls) {
append(SPACE);
append(NOT);
append(SPACE);
append(NULL);
}
}
if (iter.hasNext()) {
// $NON-NLS-1$
append(", ");
}
}
if (!obj.getPrimaryKey().isEmpty()) {
// $NON-NLS-1$
append(", ");
append(PRIMARY);
// $NON-NLS-1$
append(" ");
append(NonReserved.KEY);
append(Tokens.LPAREN);
Iterator<ElementSymbol> pkiter = obj.getPrimaryKey().iterator();
while (pkiter.hasNext()) {
outputShortName(pkiter.next());
if (pkiter.hasNext()) {
// $NON-NLS-1$
append(", ");
}
}
append(Tokens.RPAREN);
}
append(Tokens.RPAREN);
CommitAction commitAction = obj.getCommitAction();
if (commitAction != null) {
append(Tokens.SPACE);
append(Reserved.ON);
append(Tokens.SPACE);
append(Reserved.COMMIT);
append(Tokens.SPACE);
switch(commitAction) {
case PRESERVE_ROWS:
append(NonReserved.PRESERVE);
append(Tokens.SPACE);
append(Reserved.ROWS);
break;
}
}
}
Aggregations