@Override
 public OperationResult<SchemaChangeResult> addColumnFamily(final ColumnFamilyDefinition def)
     throws ConnectionException {
   return executeSchemaChangeOperation(
       new AbstractKeyspaceOperationImpl<SchemaChangeResult>(
           tracerFactory.newTracer(CassandraOperationType.ADD_COLUMN_FAMILY), def.getKeyspace()) {
         @Override
         public SchemaChangeResult internalExecute(Client client, ConnectionContext context)
             throws Exception {
           return new SchemaChangeResponseImpl()
               .setSchemaId(
                   client.system_add_column_family(
                       ((ThriftColumnFamilyDefinitionImpl) def)
                           .getThriftColumnFamilyDefinition()));
         }
       });
 }