@Override protected Void visitShowTables(ShowTables node, Integer context) { builder.append("SHOW TABLES"); node.getSchema().ifPresent(value -> builder.append(" FROM ") .append(formatName(value))); node.getLikePattern().ifPresent(value -> builder.append(" LIKE ") .append(formatStringLiteral(value))); node.getEscape().ifPresent(value -> builder.append(" ESCAPE ") .append(formatStringLiteral(value))); return null; }
@Override protected Void visitShowTables(ShowTables node, Integer context) { builder.append("SHOW TABLES"); node.getSchema().ifPresent(value -> builder.append(" FROM ") .append(formatName(value))); node.getLikePattern().ifPresent(value -> builder.append(" LIKE ") .append(formatStringLiteral(value))); node.getEscape().ifPresent(value -> builder.append(" ESCAPE ") .append(formatStringLiteral(value))); return null; }
@Override protected Void visitDropSchema(DropSchema node, Integer context) { builder.append("DROP SCHEMA "); if (node.isExists()) { builder.append("IF EXISTS "); } builder.append(formatName(node.getSchemaName())) .append(" ") .append(node.isCascade() ? "CASCADE" : "RESTRICT"); return null; }
@Override protected Void visitShowCreate(ShowCreate node, Integer context) { if (node.getType() == ShowCreate.Type.TABLE) { builder.append("SHOW CREATE TABLE ") .append(formatName(node.getName())); } else if (node.getType() == ShowCreate.Type.VIEW) { builder.append("SHOW CREATE VIEW ") .append(formatName(node.getName())); } return null; }
@Override protected Void visitShowCreate(ShowCreate node, Integer context) { if (node.getType() == ShowCreate.Type.TABLE) { builder.append("SHOW CREATE TABLE ") .append(formatName(node.getName())); } else if (node.getType() == ShowCreate.Type.VIEW) { builder.append("SHOW CREATE VIEW ") .append(formatName(node.getName())); } return null; }
@Override protected Void visitDropColumn(DropColumn node, Integer context) { builder.append("ALTER TABLE ") .append(formatName(node.getTable())) .append(" DROP COLUMN ") .append(formatExpression(node.getColumn(), parameters)); return null; }
@Override protected Void visitTable(Table node, Integer indent) { builder.append(formatName(node.getName())); return null; }
@Override protected Void visitAnalyze(Analyze node, Integer context) { builder.append("ANALYZE ") .append(formatName(node.getTableName())); builder.append(formatPropertiesMultiLine(node.getProperties())); return null; }
@Override protected Void visitRenameSchema(RenameSchema node, Integer context) { builder.append("ALTER SCHEMA ") .append(formatName(node.getSource())) .append(" RENAME TO ") .append(formatExpression(node.getTarget(), parameters)); return null; }
@Override protected Void visitDropSchema(DropSchema node, Integer context) { builder.append("DROP SCHEMA "); if (node.isExists()) { builder.append("IF EXISTS "); } builder.append(formatName(node.getSchemaName())) .append(" ") .append(node.isCascade() ? "CASCADE" : "RESTRICT"); return null; }
@Override protected Void visitDelete(Delete node, Integer context) { builder.append("DELETE FROM ") .append(formatName(node.getTable().getName())); if (node.getWhere().isPresent()) { builder.append(" WHERE ") .append(formatExpression(node.getWhere().get(), parameters)); } return null; }
@Override protected Void visitAnalyze(Analyze node, Integer context) { builder.append("ANALYZE ") .append(formatName(node.getTableName())); builder.append(formatPropertiesMultiLine(node.getProperties())); return null; }
@Override protected Void visitRenameSchema(RenameSchema node, Integer context) { builder.append("ALTER SCHEMA ") .append(formatName(node.getSource())) .append(" RENAME TO ") .append(formatExpression(node.getTarget(), parameters)); return null; }
@Override protected Void visitCreateSchema(CreateSchema node, Integer context) { builder.append("CREATE SCHEMA "); if (node.isNotExists()) { builder.append("IF NOT EXISTS "); } builder.append(formatName(node.getSchemaName())); builder.append(formatPropertiesMultiLine(node.getProperties())); return null; }
@Override protected Void visitDropColumn(DropColumn node, Integer context) { builder.append("ALTER TABLE ") .append(formatName(node.getTable())) .append(" DROP COLUMN ") .append(formatExpression(node.getColumn(), parameters)); return null; }
@Override protected Void visitCreateSchema(CreateSchema node, Integer context) { builder.append("CREATE SCHEMA "); if (node.isNotExists()) { builder.append("IF NOT EXISTS "); } builder.append(formatName(node.getSchemaName())); builder.append(formatPropertiesMultiLine(node.getProperties())); return null; }
@Override protected Void visitShowColumns(ShowColumns node, Integer context) { builder.append("SHOW COLUMNS FROM ") .append(formatName(node.getTable())); return null; }
@Override protected Void visitDelete(Delete node, Integer context) { builder.append("DELETE FROM ") .append(formatName(node.getTable().getName())); if (node.getWhere().isPresent()) { builder.append(" WHERE ") .append(formatExpression(node.getWhere().get(), parameters)); } return null; }
@Override protected Void visitShowColumns(ShowColumns node, Integer context) { builder.append("SHOW COLUMNS FROM ") .append(formatName(node.getTable())); return null; }
@Override protected Void visitTable(Table node, Integer indent) { builder.append(formatName(node.getName())); return null; }