[ https://issues.apache.org/jira/browse/HIVE-11405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14648081#comment-14648081 ]
Prasanth Jayachandran commented on HIVE-11405: ---------------------------------------------- [~gopalv] is the column stats available for this query? If not your patch will early terminate because of data size becoming 0 and AND evaluation terminating early. Also I am not sure if this assumption is correct {code} final long branch2Rows = (newNumRows <= branchRows) ? 0 : (newNumRows - branchRows); {code} I am still evaluating this change. The idea of mirroring the tree and passing the branchRows to sibling branch looks good so far. > Add early termination for recursion in > StatsRulesProcFactory$FilterStatsRule.evaluateExpression for OR expression > ------------------------------------------------------------------------------------------------------------------ > > Key: HIVE-11405 > URL: https://issues.apache.org/jira/browse/HIVE-11405 > Project: Hive > Issue Type: Bug > Reporter: Hari Sankar Sivarama Subramaniyan > Assignee: Prasanth Jayachandran > > Thanks to [~gopalv] for uncovering this issue as part of HIVE-11330. Quoting > him, > "The recursion protection works well with an AND expr, but it doesn't work > against > (OR a=1 (OR a=2 (OR a=3 (OR ...) > since the for the rows will never be reduced during recursion due to the > nature of the OR. > We need to execute a short-circuit to satisfy the OR properly - no case which > matches a=1 qualifies for the rest of the filters. > Recursion should pass in the numRows - branch1Rows for the branch-2." -- This message was sent by Atlassian JIRA (v6.3.4#6332)