Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-12331

Analytic functions can't be planned with filter.

Details

    • Bug
    • Status: Open
    • P3
    • Resolution: Unresolved
    • None
    • None
    • dsl-sql
    • None

    Description

      Example query: "SELECT item, purchases, category, sum(purchases) over (PARTITION BY category ORDER BY purchases ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as total_purchases  FROM PCOLLECTION WHERE purchases > 3"
       
      Caused by: org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptPlanner$CannotPlanException: There are not enough rules to produce a node with desired properties: convention=BEAM_LOGICAL. All the inputs have relevant nodes, however the cost is still infinite.
      Root: rel#11:Subset#2.BEAM_LOGICAL
      Original rel:
      LogicalProject(subset=rel#11:Subset#2.BEAM_LOGICAL, item=[$0], purchases=[$2], category=[$1], total_purchases=[SUM($2) OVER (PARTITION BY $1 ORDER BY $2 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)]): rowcount = 50.0, cumulative cost = {inf}, id = 9
        LogicalFilter(subset=rel#8:Subset#1.NONE, condition=[>($2, 3)]): rowcount = 50.0, cumulative cost = {inf}, id = 7
          BeamIOSourceRel(subset=rel#6:Subset#0.BEAM_LOGICAL, table=[[beam, PCOLLECTION]]): rowcount = 100.0, cumulative cost = {100.0 cpu, 0.0 cpuRate }, id = 3

      Attachments

        Activity

          People

            Unassigned Unassigned
            ibzib Kyle Weaver
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: