[ https://issues.apache.org/jira/browse/HIVE-19433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16469274#comment-16469274 ]
Vineet Garg commented on HIVE-19433: ------------------------------------ [~jcamachorodriguez] You are correct about the fix in Calcite. Attaching updated patch > HiveJoinPushTransitivePredicatesRule hangs > ------------------------------------------ > > Key: HIVE-19433 > URL: https://issues.apache.org/jira/browse/HIVE-19433 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer > Reporter: Vineet Garg > Assignee: Vineet Garg > Priority: Major > Attachments: HIVE-19433.1.patch, HIVE-19433.2.patch > > > *Reproducer* > {code:sql} > CREATE TABLE `table1`( > `idp_warehouse_id` bigint, > `idp_audit_id` bigint, > `idp_effective_date` date, > `idp_end_date` date, > `idp_delete_date` date, > `pruid` varchar(32), > `prid` bigint, > `prtimesheetid` bigint, > `prassignmentid` bigint, > `prchargecodeid` bigint, > `prtypecodeid` bigint, > `prsequence` bigint, > `prmodby` varchar(96), > `prmodtime` timestamp, > `prrmexported` bigint, > `prrmckdel` bigint, > `slice_status` int, > `role_id` bigint, > `user_lov1` varchar(30), > `user_lov2` varchar(30), > `incident_id` bigint, > `incident_investment_id` bigint, > `odf_ss_actuals` bigint, > `practsum` decimal(38,20)); > CREATE TABLE `table2`( > `idp_warehouse_id` bigint, > `idp_audit_id` bigint, > `idp_effective_date` date, > `idp_end_date` date, > `idp_delete_date` date, > `pruid` varchar(32), > `prid` bigint, > `prtimesheetid` bigint, > `prassignmentid` bigint, > `prchargecodeid` bigint, > `prtypecodeid` bigint, > `prsequence` bigint, > `prmodby` varchar(96), > `prmodtime` timestamp, > `prrmexported` bigint, > `prrmckdel` bigint, > `slice_status` int, > `role_id` bigint, > `user_lov1` varchar(30), > `user_lov2` varchar(30), > `incident_id` bigint, > `incident_investment_id` bigint, > `odf_ss_actuals` bigint, > `practsum` decimal(38,20)); > explain SELECT s.idp_warehouse_id AS source_warehouse_id > FROM table1 s > JOIN > table2 d > ON ( > s.prid = d.prid ) > JOIN > table2 e > ON > s.prid = e.prid > WHERE > concat( > CASE > WHEN s.prid IS NULL THEN 1 > ELSE s.prid > END,',', > CASE > WHEN s.prtimesheetid IS NULL THEN 1 > ELSE s.prtimesheetid > END,',', > CASE > WHEN s.prassignmentid IS NULL THEN 1 > ELSE s.prassignmentid > END,',', > CASE > WHEN s.prchargecodeid IS NULL THEN 1 > ELSE s.prchargecodeid > END,',', > CASE > WHEN (s.prtypecodeid) IS NULL THEN '' > ELSE s.prtypecodeid > END,',', > CASE > WHEN s.practsum IS NULL THEN 1 > ELSE s.practsum > END,',', > CASE > WHEN s.prsequence IS NULL THEN 1 > ELSE s.prsequence > END,',', > CASE > WHEN length(s.prmodby) IS NULL THEN '' > ELSE s.prmodby > END,',', > CASE > WHEN s.prmodtime IS NULL THEN > cast(from_unixtime(unix_timestamp('2017-12-08','yyyy-MM-dd') ) AS timestamp) > ELSE s.prmodtime > END,',', > CASE > WHEN s.prrmexported IS NULL THEN 1 > ELSE s.prrmexported > END,',', > CASE > WHEN s.prrmckdel IS NULL THEN 1 > ELSE s.prrmckdel > END,',', > CASE > WHEN s.slice_status IS NULL THEN 1 > ELSE s.slice_status > END,',', > CASE > WHEN s.role_id IS NULL THEN 1 > ELSE s.role_id > END,',', > CASE > WHEN length(s.user_lov1) IS NULL THEN '' > ELSE s.user_lov1 > END,',', > CASE > WHEN length(s.user_lov2) IS NULL THEN '' > ELSE s.user_lov2 > END,',', > CASE > WHEN s.incident_id IS NULL THEN 1 > ELSE s.incident_id > END,',', > CASE > WHEN s.incident_investment_id IS NULL > THEN 1 > ELSE s.incident_investment_id > END,',', > CASE > WHEN s.odf_ss_actuals IS NULL THEN 1 > ELSE s.odf_ss_actuals > END ) != concat( > CASE > WHEN length(d.pruid) IS NULL THEN '' > ELSE d.pruid > END,',', > CASE > WHEN d.prid IS NULL THEN 1 > ELSE d.prid > END,',', > CASE > WHEN d.prtimesheetid IS NULL THEN 1 > ELSE d.prtimesheetid > END,',', > CASE > WHEN d.prassignmentid IS NULL THEN 1 > ELSE d.prassignmentid > END,',', > CASE > WHEN d.prchargecodeid IS NULL THEN 1 > ELSE d.prchargecodeid > END,',', > CASE > WHEN (d.prtypecodeid) IS NULL THEN '' > ELSE d.prtypecodeid > END,',', > CASE > WHEN d.practsum IS NULL THEN 1 > ELSE d.practsum > END,',', > CASE > WHEN d.prsequence IS NULL THEN 1 > ELSE d.prsequence > END,',', > CASE > WHEN length(d.prmodby) IS NULL THEN '' > ELSE d.prmodby > END,',', > CASE > WHEN d.prmodtime IS NULL THEN > cast(from_unixtime(unix_timestamp('2017-12-08','yyyy-MM-dd') ) AS timestamp) > ELSE d.prmodtime > END,',', > CASE > WHEN d.prrmexported IS NULL THEN 1 > ELSE d.prrmexported > END,',', > CASE > WHEN d.prrmckdel IS NULL THEN 1 > ELSE d.prrmckdel > END,',', > CASE > WHEN d.slice_status IS NULL THEN 1 > ELSE d.slice_status > END,',', > CASE > WHEN d.role_id IS NULL THEN 1 > ELSE d.role_id > END,',', > CASE > WHEN length(d.user_lov1) IS NULL THEN '' > ELSE d.user_lov1 > END,',', > CASE > WHEN length(d.user_lov2) IS NULL THEN '' > ELSE d.user_lov2 > END,',', > CASE > WHEN d.incident_id IS NULL THEN 1 > ELSE d.incident_id > END,',', > CASE > WHEN d.incident_investment_id IS NULL > THEN 1 > ELSE d.incident_investment_id > END,',', > CASE > WHEN d.odf_ss_actuals IS NULL THEN 1 > ELSE d.odf_ss_actuals > END ); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)