I think ‘major’ and ‘minor’ is enough to describe compaction, there is no need to add another one, besides 'custom' is somewhat ambiguous.
As it is described in readme, ``` In Major compaction, multiple segments can be merged into one large segment. User will specify the compaction size until which segments can be merged. ``` The previous (default without condition) major compaction is size based, carbondata choose the segments by size. And for the newly major compaction (with condition), we specify the segments and let carbondata merge them into one large segment. They are no different in purpose -- merge some segments into larger one, they are only different in selecting segments -- by segment size or by condition. So we don't need an another compaction type.