Aman Sinha created OPTIQ-439:
--------------------------------

             Summary: SqlValidatorUtil.uniquify() may not terminate under some 
conditions
                 Key: OPTIQ-439
                 URL: https://issues.apache.org/jira/browse/OPTIQ-439
             Project: Optiq
          Issue Type: Bug
    Affects Versions: 0.9.0-incubating
            Reporter: Aman Sinha
            Assignee: Julian Hyde


The uniquify(String, Set<String>, Suggester) method in SqlValidatorUtil tries 
to create a unique name for the supplied name.  It does it inside the following 
loop which does not have an upper bound check.  If the suggester returns a name 
that already exists in the nameList, then the loop will never terminate.  I 
encountered this issue while doing some testing with a 3 way join query in 
Drill against text data. 

{code:sql}
    for (int j = 0;; j++) {
      name = suggester.apply(originalName, j, nameList.size());
      if (nameList.add(name)) {
        return name;
      }
    }
{code}




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

Reply via email to