presto-main/src/main/java/io/prestosql/execution/scheduler/ScheduleResult.java/BlockedReason/combineWith
class BlockedReason:        public BlockedReason combineWith(BlockedReason other)
        {
            switch (this) {
                case WRITER_SCALING:
                    throw new IllegalArgumentException("cannot be combined");
                case NO_ACTIVE_DRIVER_GROUP:
                    return other;
                case SPLIT_QUEUES_FULL:
                    return other == SPLIT_QUEUES_FULL || other == NO_ACTIVE_DRIVER_GROUP ? SPLIT_QUEUES_FULL : MIXED_SPLIT_QUEUES_FULL_AND_WAITING_FOR_SOURCE;
                case WAITING_FOR_SOURCE:
                    return other == WAITING_FOR_SOURCE || other == NO_ACTIVE_DRIVER_GROUP ? WAITING_FOR_SOURCE : MIXED_SPLIT_QUEUES_FULL_AND_WAITING_FOR_SOURCE;
                case MIXED_SPLIT_QUEUES_FULL_AND_WAITING_FOR_SOURCE:
                    return MIXED_SPLIT_QUEUES_FULL_AND_WAITING_FOR_SOURCE;
                default:
                    throw new IllegalArgumentException("Unknown blocked reason: " + other);
            }
        }