Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
Partition constraints are not computed correctly for binary operators in JobBuilder.setPartitionConstraintsBottomup()
Currently the constraint from the second branch overrides the one from the first branch even if the second branch constraint is 'null'. This leads to the following exception from this query:
create type tpch.OrderType as closed
{ o_orderkey : bigint, _custkey : bigint, o_orderstatus : string, o_totalprice : double, o_orderdate : string, o_orderpriority : string, o_clerk : string, o_shippriority : bigint, o_comment : string };
create dataset Orders(OrderType) primary key o_orderkey;
create index OrdersIdx on Orders (o_custkey) type btree;
SELECT ds.DatasetName as v1
FROM Metadata.`Dataset` ds
WHERE ds.DatasetName LIKE "Orders%"
UNION ALL
SELECT ds.DatasetName v1, idx.DatasetName v2, idx.IndexName v3
FROM Metadata.`Index` idx, Metadata.`Dataset` ds
WHERE ds.DatasetName LIKE "Orders%" and idx.DatasetName LIKE "Orders%"
ORDER BY v1, v2, v3
------------------------------
Exception in thread "Worker:ClusterController" java.lang.AssertionError: Dependency activity partitioned differently from dependent: 1 != 4
at org.apache.hyracks.control.cc.executor.ActivityClusterPlanner.buildActivityPlanMap(ActivityClusterPlanner.java:109)
at org.apache.hyracks.control.cc.executor.ActivityClusterPlanner.planActivityCluster(ActivityClusterPlanner.java:71)
at org.apache.hyracks.control.cc.executor.JobExecutor.findRunnableTaskClusterRoots(JobExecutor.java:173)
at org.apache.hyracks.control.cc.executor.JobExecutor.findRunnableTaskClusterRoots(JobExecutor.java:149)
at org.apache.hyracks.control.cc.executor.JobExecutor.findRunnableTaskClusterRoots(JobExecutor.java:139)
at org.apache.hyracks.control.cc.executor.JobExecutor.startRunnableActivityClusters(JobExecutor.java:198)
at org.apache.hyracks.control.cc.executor.JobExecutor.notifyTaskComplete(JobExecutor.java:668)
at org.apache.hyracks.control.cc.work.TaskCompleteWork.performEvent(TaskCompleteWork.java:56)
at org.apache.hyracks.control.cc.work.AbstractTaskLifecycleWork.runWork(AbstractTaskLifecycleWork.java:72)