Listing all parts in log have no sense. 
Should be either silenced, either combined into a single line.
else if (name == "_part_index")
        {
            virt_column_names.push_back(name);
        }
        else if (name == "_partition_id")
        {
            virt_column_names.push_back(name);
        }
        else if (name == "_part_uuid")
        {
            part_uuid_column_queried = true;
            virt_column_names.push_back(name);
        }
        else if (name == "_sample_factor")
        {
            sample_factor_column_queried = true;
            virt_column_names.push_back(name);
        }
        else
        {
            real_column_names.push_back(name);
        }
    }
    NamesAndTypesList available_real_columns = metadata_snapshot->getColumns().getAllPhysical();
    
    if (real_column_names.empty())
        real_column_names.push_back(ExpressionActions::getSmallestColumn(available_real_columns));
    
    Block virtual_columns_block = getBlockWithVirtualPartColumns(parts, part_uuid_column_queried);
    if (part_column_queried || part_uuid_column_queried)