`Selected 13 parts by date, 13 parts by key, 26 marks by primary key .... `

This message is confusing for new users.

I suggest to replace it with

`Selected 13 parts by partition key, 13 parts by primary key, 26 marks by primary key...`
if (adaptive_parts >= parts.size() / 2)
        index_granularity_bytes = data_settings->index_granularity_bytes;
    const size_t max_marks_to_use_cache = roundRowsOrBytesToMarks(
        settings.merge_tree_max_rows_to_use_cache,
        settings.merge_tree_max_bytes_to_use_cache,
        data_settings->index_granularity,
        index_granularity_bytes);
    if (sum_marks > max_marks_to_use_cache)
        use_uncompressed_cache = false;
    Pipe pipe;
    {
        Pipes pipes;
        for (const auto & part : parts)
        {
            auto source_processor = std::make_shared<MergeTreeSelectProcessor>(
                    data, metadata_snapshot, part.data_part, max_block_size, settings.preferred_block_size_bytes,
                    settings.preferred_max_column_in_block_size_bytes, column_names, part.ranges,
                    use_uncompressed_cache,
                    query_info.prewhere_info, true, reader_settings,
                    virt_columns, part.part_index_in_query);
            pipes.emplace_back(std::move(source_processor));
        }
        pipe = Pipe::unitePipes(std::move(pipes));
    }
    
    if (!out_projection)
        out_projection = createProjection(pipe, data);
    pipe.addSimpleTransform([&metadata_snapshot](const Block & header)
    {
        return std::make_shared<ExpressionTransform>(header, metadata_snapshot->getSortingKey().expression);