public Boolean visitCreateTable()

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;
    }