The unique-parameter of CJ was initially set to FALSE when introduced. The relevant item in the newsfile when 1.9.6 was released said:
CJgains logicaluniqueargument with defaultFALSE. IfTRUE, unique values of vectors are automatically computed and used. This is convenient, for example,DT[CJ(a, b, c, unique=TRUE)]instead of doingDT[CJ(unique(a), unique(b), unique(c))]. Ultimately,unique = TRUEwill be default. Closes #1148.
As CJ is probably mostly used used with unique = TRUE (see also the original issue), maybe the time has come to set this parameter to unique = TRUE ?
Anyone depending on duplicates can be badly affected. We could make 1.12.2-1.13.0 a transition period where extra check for uniqueness could be added. In case of detecting duplicates and missing(unique) a warning could be raise about changing that default from 1.13.0.
Most helpful comment
Anyone depending on duplicates can be badly affected. We could make 1.12.2-1.13.0 a transition period where extra check for uniqueness could be added. In case of detecting duplicates and
missing(unique)a warning could be raise about changing that default from 1.13.0.