[ https://issues.apache.org/jira/browse/HIVE-22074?focusedWorklogId=290787&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-290787 ]
ASF GitHub Bot logged work on HIVE-22074: ----------------------------------------- Author: ASF GitHub Bot Created on: 07/Aug/19 21:34 Start Date: 07/Aug/19 21:34 Worklog Time Spent: 10m Work Description: vineetgarg02 commented on pull request #746: HIVE-22074: Slow compilation due to IN to OR transformation URL: https://github.com/apache/hive/pull/746#discussion_r311773334 ########## File path: ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java ########## @@ -1220,16 +1220,26 @@ protected ExprNodeDesc getXpathOrFuncExprNodeDesc(ASTNode expr, } outputOpList.add(nullConst); } + if (!ctx.isCBOExecuted()) { - ArrayList<ExprNodeDesc> orOperands = TypeCheckProcFactoryUtils.rewriteInToOR(children); - if (orOperands != null) { - if (orOperands.size() == 1) { - orOperands.add(new ExprNodeConstantDesc(TypeInfoFactory.booleanTypeInfo, false)); + + HiveConf conf; + try { + conf = Hive.get().getConf(); Review comment: @jcamachor `ctx` is passed on to `genExprNode` by the callers. There are several callers which uses `genExprNode`. For this we will have to update all of these callers to set the config in `TypeCheckCtx`. Fetching HiveConf only occurs if the expression at hand is `GenericUDFIn` and CBO wasn't executed therefore this shouldn't add much overhead. Let me know if you think otherwise ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 290787) Time Spent: 40m (was: 0.5h) > Slow compilation due to IN to OR transformation > ----------------------------------------------- > > Key: HIVE-22074 > URL: https://issues.apache.org/jira/browse/HIVE-22074 > Project: Hive > Issue Type: Improvement > Components: Logical Optimizer > Reporter: Vineet Garg > Assignee: Vineet Garg > Priority: Major > Labels: pull-request-available > Attachments: HIVE-22074.1.patch, HIVE-22074.2.patch, > HIVE-22074.3.patch, HIVE-22074.4.patch > > Time Spent: 40m > Remaining Estimate: 0h > > Currently Hive transform IN expressions to OR to apply various CBO rules. > This incur significant performance hit if IN consist of large number of > expressions. > It is better to not transform IN expressions to OR in such cases because > overall benefit of various optimizations/transformations is unrealized due to > the compilation overhead -- This message was sent by Atlassian JIRA (v7.6.14#76016)