Listing all parts in log have no sense. 
Should be either silenced, either combined into a single line.
virt_column_names,
            settings,
            reader_settings,
            query_id);
    }
    if (!plan)
        return std::make_unique<QueryPlan>();
    if (use_sampling)
    {
        auto sampling_step = std::make_unique<FilterStep>(
                plan->getCurrentDataStream(),
                filter_expression,
                filter_function->getColumnName(),
                false);
        sampling_step->setStepDescription("Sampling");
        plan->addStep(std::move(sampling_step));
    }
    if (result_projection)
    {
        auto projection_step = std::make_unique<ExpressionStep>(plan->getCurrentDataStream(), result_projection);
        projection_step->setStepDescription("Remove unused columns after reading from storage");
        plan->addStep(std::move(projection_step));
    }
    
    if (sample_factor_column_queried)
    {
        ColumnWithTypeAndName column;
        column.name = "_sample_factor";
        column.type = std::make_shared<DataTypeFloat64>();
        column.column = column.type->createColumnConst(0, Field(used_sample_factor));