Cogroups are used with protected and non-protected C/C++ and Java table operators.
Cogroups are used for table operators that contain multiple ON clauses. By default, the input from the ON clauses is pooled together into one group as long as the input has the same value as the partition key. Input that does not qualify is ignored to ensure that the results make sense.
The cogroup feature is on by default, but if necessary, you can turn off this functionality by calling FNC_TblOpDisableCoGroup() in the contract function.