Listing all parts in log have no sense. 
Should be either silenced, either combined into a single line.
relative_sample_size = 1;
            relative_sample_size /= settings.parallel_replicas_count.value;
            relative_sample_offset += relative_sample_size * RelativeSize(settings.parallel_replica_offset.value);
        }
        if (relative_sample_offset >= RelativeSize(1))
            no_data = true;
        
        bool has_lower_limit = false;
        bool has_upper_limit = false;
        RelativeSize lower_limit_rational = relative_sample_offset * size_of_universum;
        RelativeSize upper_limit_rational = (relative_sample_offset + relative_sample_size) * size_of_universum;
        UInt64 lower = boost::rational_cast<ASTSampleRatio::BigNum>(lower_limit_rational);
        UInt64 upper = boost::rational_cast<ASTSampleRatio::BigNum>(upper_limit_rational);
        if (lower > 0)
            has_lower_limit = true;
        if (upper_limit_rational < size_of_universum)
            has_upper_limit = true;
        /*std::cerr << std::fixed << std::setprecision(100)
            << "relative_sample_size: " << relative_sample_size << "\n"
            << "relative_sample_offset: " << relative_sample_offset << "\n"
            << "lower_limit_float: " << lower_limit_rational << "\n"
            << "upper_limit_float: " << upper_limit_rational << "\n"
            << "lower: " << lower << "\n"
            << "upper: " << upper << "\n";*/
        if ((has_upper_limit && upper == 0)
            || (has_lower_limit && has_upper_limit && lower == upper))
            no_data = true;
        if (no_data || (!has_lower_limit && !has_upper_limit))
        {
            use_sampling = false;