You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Fabian Hueske (JIRA)" <ji...@apache.org> on 2017/01/17 11:28:26 UTC

[jira] [Created] (FLINK-5524) Support early out for code generated conjunctive conditions

Fabian Hueske created FLINK-5524:
------------------------------------

             Summary: Support early out for code generated conjunctive conditions
                 Key: FLINK-5524
                 URL: https://issues.apache.org/jira/browse/FLINK-5524
             Project: Flink
          Issue Type: Improvement
          Components: Table API & SQL
    Affects Versions: 1.1.4, 1.2.0, 1.3.0
            Reporter: Fabian Hueske


Currently, all nested conditions for a conjunctive predicate are evaluated before the conjunction is checked.

A condition like {{(v1 == v2) && (v3 < 5)}} would be compiled into

{code}
boolean res1;
if (v1 == v2) {
  res1 = true;
} else {
  res1 = false;
}

boolean res2;
if (v3 < 5) {
  res2 = true;
} else {
  res2 = false;
}

boolean res3;
if (res1 && res2) {
  res3 = true;
} else {
  res3 = false;
}

if (res3) {
  // emit something
}
{code}

It would be better to leave the generated code as early as possible, e.g., with a {{return}} instead of {{res1 = false}}. The code generator needs a bit of context information for that.



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