in query-builder/src/main/java/com/datastax/oss/driver/internal/querybuilder/schema/DefaultAlterTable.java [235:305]
public String asCql() {
StringBuilder builder = new StringBuilder("ALTER TABLE ");
CqlHelper.qualify(keyspace, tableName, builder);
if (columnToAlter != null) {
return builder
.append(" ALTER ")
.append(columnToAlter.asCql(true))
.append(" TYPE ")
.append(columnToAlterType.asCql(true, true))
.toString();
} else if (!allColumnsToAddInOrder.isEmpty()) {
builder.append(" ADD ");
if (allColumnsToAddInOrder.size() > 1) {
builder.append('(');
}
boolean first = true;
for (Map.Entry<CqlIdentifier, DataType> column : allColumnsToAddInOrder.entrySet()) {
if (first) {
first = false;
} else {
builder.append(',');
}
builder
.append(column.getKey().asCql(true))
.append(' ')
.append(column.getValue().asCql(true, true));
if (columnsToAddStatic.contains(column.getKey())) {
builder.append(" STATIC");
}
}
if (allColumnsToAddInOrder.size() > 1) {
builder.append(')');
}
return builder.toString();
} else if (!columnsToDrop.isEmpty()) {
boolean moreThanOneDrop = columnsToDrop.size() > 1;
CqlHelper.appendIds(
columnsToDrop,
builder,
moreThanOneDrop ? " DROP (" : " DROP ",
",",
moreThanOneDrop ? ")" : "");
return builder.toString();
} else if (!columnsToRename.isEmpty()) {
builder.append(" RENAME ");
boolean first = true;
for (Map.Entry<CqlIdentifier, CqlIdentifier> entry : columnsToRename.entrySet()) {
if (first) {
first = false;
} else {
builder.append(" AND ");
}
builder
.append(entry.getKey().asCql(true))
.append(" TO ")
.append(entry.getValue().asCql(true));
}
return builder.toString();
} else if (dropCompactStorage) {
return builder.append(" DROP COMPACT STORAGE").toString();
} else if (!options.isEmpty()) {
return builder.append(OptionsUtils.buildOptions(options, true)).toString();
}
// While this is incomplete, we should return partially build query at this point for toString
// purposes.
return builder.toString();
}