Enrico Olivelli created CALCITE-2591:
----------------------------------------

             Summary: EnumerableDefaults#mergeJoin should throw error and not 
return incorrect results when inputs are not ordered
                 Key: CALCITE-2591
                 URL: https://issues.apache.org/jira/browse/CALCITE-2591
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.17.0
            Reporter: Enrico Olivelli
            Assignee: Julian Hyde
             Fix For: 1.18.0


The merge join implementation should throw a runtime error in case of unsorted 
inputs.

 

The assertion  is already present but it is done with Java 'assert' keywork, 
this makes the assertion not to be evaluated in production.

It happened in production that due to a bug (out of the scope of this issue) a 
merge join was fed by an input which was not sorted according to the merge sort 
keys

This is current code in 1.17
{code:java}
int c = leftKey.compareTo(leftKey2);
        if (c != 0) {
          assert c < 0 : "not sorted";
          break;
        }{code}
 

This change will enable that assertion even when Java assertions are not 
enabled.

The impact is not very significant (a few CPU cycles) but prevents invalid 
results to be returned by the query.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to