[ 
https://issues.apache.org/jira/browse/KYLIN-1934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15427672#comment-15427672
 ] 

Zhong Yanghong commented on KYLIN-1934:
---------------------------------------

The logic in method moveNext() may be better like follows:

public boolean moveNext() throws IOException {
        //Get a non-empty dictionary
        while (curKey > curDict.getMaxId()) {
            curDictIndex++;
            if (curDictIndex >= dictionaryList.size()) {
                curValue = null;
                return false;
            } else {
                curDict = dictionaryList.get(curDictIndex);
                curKey = curDict.getMinId();
            }
        }

        //Get the current value and increase the curKey
        byte[] buffer = new byte[curDict.getSizeOfValue()];
        int size = curDict.getValueBytesFromId(curKey++, buffer, 0);
        curValue = Bytes.copy(buffer, 0, size);

        return true;
    }

> 'Value not exist' During Cube Merging Caused by Empty Dict
> ----------------------------------------------------------
>
>                 Key: KYLIN-1934
>                 URL: https://issues.apache.org/jira/browse/KYLIN-1934
>             Project: Kylin
>          Issue Type: Bug
>          Components: Job Engine
>    Affects Versions: v1.5.4
>            Reporter: Yerui Sun
>            Assignee: Yerui Sun
>            Priority: Critical
>             Fix For: v1.5.4
>
>         Attachments: KYLIN-1934.patch
>
>
> When cube merge, new dictionary will be created which consists of all values 
> in old dictionaries.
> The values in old dicts is enumerated by MultipleDictionaryValueEnumerator. 
> However, if the first dict is empty, the Enumerator.moveNext() will return 
> false directly and ignore all values in other dicts, made the new dict is 
> also empty. 
> The cube merging will be failed because no values contained in the new dict. 
> Not sure whether this issue related with KYLIN-1834 or not.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to