in fastmodel-transform/fastmodel-transform-oceanbase/src/main/java/com/aliyun/fastmodel/transform/oceanbase/format/OceanBaseMysqlOutVisitor.java [82:137]
public Boolean visitCreateTable(CreateTable node, Integer indent) {
builder.append("CREATE");
if (node.getCreateOrReplace() != null && node.getCreateOrReplace()) {
builder.append(" OR REPLACE");
}
builder.append(" TABLE ");
if (node.isNotExists()) {
builder.append("IF NOT EXISTS ");
}
String tableName = getCode(node.getQualifiedName());
builder.append(tableName);
int newIndent = indent + 1;
if (!node.isColumnEmpty()) {
builder.append(" \n(\n");
String elementIndent = indentString(newIndent);
builder.append(formatColumnList(node.getColumnDefines(), elementIndent));
if (!node.isConstraintEmpty()) {
Iterator<BaseConstraint> iterator = node.getConstraintStatements().stream()
.iterator();
while (iterator.hasNext()) {
builder.append(",\n");
process(iterator.next(), newIndent);
}
}
if (!node.isIndexEmpty()) {
Iterator<TableIndex> iterator = node.getTableIndexList().iterator();
while (iterator.hasNext()) {
builder.append(",\n");
process(iterator.next(), newIndent);
}
}
builder.append(newLine(")"));
}
if (node.getComment() != null) {
builder.append(formatComment(node.getComment(), isEndNewLine(builder.toString())));
}
if (node.getPartitionedBy() != null) {
if (!isEndNewLine(builder.toString())) {
builder.append("\n");
}
PartitionedBy partitionedBy = node.getPartitionedBy();
process(partitionedBy);
} else {
String propertyValue = PropertyUtil.getPropertyValue(node.getProperties(), TABLE_PARTITION_RAW.getValue());
if (StringUtils.isNotBlank(propertyValue)) {
if (!isEndNewLine(builder.toString())) {
builder.append("\n");
}
builder.append(propertyValue);
}
}
List<Property> properties = node.getProperties();
builder.append(formatProperty(properties));
removeNewLine(builder);
return true;
}