Hi Doom, Thank you for reading the code so carefullly. You are welcomed to contribute on this JIRA.
2017-11-19 16:42 GMT+08:00 doom <43535...@qq.com>: > So this issues is work in progress, and result in the two piece contradict > code. thank you for make me clear. > > > ------------------ 原始邮件 ------------------ > *发件人:* "Alberto Ramón"<a.ramonporto...@gmail.com>; > *发送时间:* 2017年11月18日(星期六) 凌晨5:59 > *收件人:* "user"<user@kylin.apache.org>; > *主题:* Re: Can hierarchyDims contain jointDims > > https://issues.apache.org/jira/browse/KYLIN-2149 > > Check this link, you need choose between use one or other > Some times would be great use both together > > On 17 November 2017 at 06:43, doom <43535...@qq.com> wrote: > >> So what's the second code segment mean in AggregationGroup build step? >> is it means replace the hierarchy dim with the joint dims witch contain >> it? >> >> >> ------------------ 原始邮件 ------------------ >> *发件人:* "ShaoFeng Shi";<shaofeng...@apache.org>; >> *发送时间:* 2017年11月17日(星期五) 下午2:02 >> *收件人:* "user"<user@kylin.apache.org>; >> *主题:* Re: Can hierarchyDims contain jointDims >> >> Joint could not be used in the hierarchy. >> >> Joint means treating multiple dimensions as one: they either all >> appeared, either all not; It is a conflict with hierarchy. >> >> 2017-11-16 21:29 GMT+08:00 doom <43535...@qq.com>: >> >>> HI ALL: >>> I read the src code of kylin 2.2, and find: >>> >>> In class CubeDes, if hierarchyDims contain jointDims will throw >>> exception. >>> public void validateAggregationGroups() { >>> ... >>> if (CollectionUtils.containsAny(hierarchyDims, jointDims)) { >>> logger.error("Aggregation group " + index + " hierarchy >>> dimensions overlap with joint dimensions"); >>> throw new IllegalStateException( >>> "Aggregation group " + index + " hierarchy >>> dimensions overlap with joint dimensions: " >>> + >>> ensureOrder(CollectionUtils.intersection(hierarchyDims, >>> jointDims))); >>> } >>> >>> But in class AggregationGroup will replace the hierarchy dim with the >>> joint dims witch contain it. >>> private void buildHierarchyMasks(RowKeyDesc rowKeyDesc) { >>> ..... >>> for (int i = 0; i < hierarchy_dims.length; i++) { >>> TblColRef hColumn = cubeDesc.getModel().findColumn >>> (hierarchy_dims[i]); >>> Integer index = rowKeyDesc.getColumnBitIndex(hColumn); >>> long bit = 1L << index; >>> >>> // combine joint as logic dim >>> if (dim2JointMap.get(bit) != null) { >>> bit = dim2JointMap.get(bit); >>> } >>> >>> mask.fullMask |= bit; >>> allMaskList.add(mask.fullMask); >>> dimList.add(bit); >>> } >>> } >>> >>> do i understand in a wrong way? >>> >>> >>> >> >> >> -- >> Best regards, >> >> Shaofeng Shi 史少锋 >> >> >