Uploaded image for project: 'Apache AsterixDB'
  1. Apache AsterixDB
  2. ASTERIXDB-2354

Incorrect partition constraints propagation for binary operators

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • None
    • COMP - Compiler
    • 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)

       

      Attachments

        Activity

          People

            dlychagin-cb Dmitry Lychagin
            dlychagin-cb Dmitry Lychagin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: