You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Enrico Olivelli (JIRA)" <ji...@apache.org> on 2018/09/23 13:13:00 UTC
[jira] [Created] (CALCITE-2591) EnumerableDefaults#mergeJoin should
throw error and not return incorrect results when inputs are not ordered
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)