1. 08 6月, 2017 1 次提交
  2. 18 5月, 2017 1 次提交
  3. 16 5月, 2017 2 次提交
  4. 15 5月, 2017 2 次提交
  5. 12 5月, 2017 1 次提交
  6. 09 5月, 2017 6 次提交
    • D
      Bump ORCA version to 2.30 · a4f89e1d
      Dhanashree Kashid 提交于
      Signed-off-by: NEkta Khanna <ekhanna@pivotal.io>
      a4f89e1d
    • J
      Retain additional conditions while translating Correlated Nested Loop Join [#144468913] · 8a0552f0
      Jemish Patel and Jesse Zhang 提交于
      For a query using a correlated subselect as predicate, such as:
      
      ```
      CREATE TABLE partitioned_table (a int, pk int) DISTRIBUTED BY (a)
      	PARTITION BY range(pk) (end(5), end(10));
      CREATE TABLE other_table (c int, d int) DISTRIBUTED BY (c);
      INSERT INTO partitioned_table VALUES (1, 1), (2, 4), (3, 9);
      ANALYZE ROOTPARTITION partitioned_table;
      
      EXPLAIN SELECT pk from partitioned_table WHERE a > (SELECT d FROM other_table WHERE c = a) AND pk < 12;
      ```
      
      ORCA will generate a Correlated Nested Loop Left Outer Join, which
      should translate to a DXL Scan under a DXL SubPlan filter. However, the
      translation happened in the following order:
      
      0. Translate outer child (which has a filter) of correlated NLJ
      0. Build a DXL SubPlan using the inner child, which is intended to serve as an
         "additional filter condition" on top of the outer child
      0. Now based on the DXL plan for the outer child, we decide whether or not to
         use the additional condition (generated in #2 or #3) as a filter in the
         final result.
      0. If the outer child is a Physical Sequence, we discarded the condition
         assuming that filter condition is already present in the partition
         selector.
      0. This code to discard the subplan was added in
         e99325cc because, previously, we were always
         inserting additional filter as "the second child" based on the assumption
         that every DXL node has a filter child in the 2nd place. As it turned out,
         the DXL Sequence node is one counterexample: it has no filter, and it's
         second child is expected to be a partition selector.
      0. We didn't catch this error in e99325cc because the test cases had a trivial
         additional filter condition of a constant true, so dropping it didn't really
         raise any eyebrows. However, the generally correct approach should be to
         retain this additional condition, either as an additional DXL Result node on
         top of the DXL for the outer child, or for appropriate types of nodes,
         inline the condition into existing filters.
      
      This patch set fixes that.
      Signed-off-by: NJemish Patel <jpatel@pivotal.io>
      Signed-off-by: NEkta Khanna <ekhanna@pivotal.io>
      8a0552f0
    • J
      More consistent ref-counting [#144468913] · b2fdaf9b
      Jemish Patel and Jesse Zhang 提交于
      We ensure all three cases of PdxlnCorrelatedNLJoin take ownership of the
      DXLProperties object
      b2fdaf9b
    • J
      54565e06
    • J
    • D
      Move predicate combination into PdxlnResultFromNLJoinOuter [#144468913] · ce347b4a
      0. There are cases where the additional scalar condition cannot be combined
         with the original condition in the DXL plan. Case in point: when the outer
         child gets translated into a DXL Sequence, we cannot put the "combined
         condition" into the sequence.
      0. Deferring the combination of conditions also gives us an optimization
         opportunity to reduce double translations.
      ce347b4a
  7. 30 4月, 2017 1 次提交
    • J
      Extend GPDB ICG with optimizer to an hour · c940456a
      Jesse Zhang 提交于
      installcheck has over the last year gotten slowly bloated. This test
      runs about 32 minutes when nothing else happens in Concourse. Given we
      also run the planner ICG in parallel, we'd better err on the safe side
      and extend this to an hour.
      
      [ci skip]
      c940456a
  8. 26 4月, 2017 11 次提交
  9. 22 4月, 2017 6 次提交
  10. 21 4月, 2017 2 次提交
  11. 13 4月, 2017 4 次提交
    • O
      Disabling a test for space size issue · 2567ef1c
      Omer Arap 提交于
      2567ef1c
    • O
      Bump ORCA version to 2.23.0 · ce63300b
      Omer Arap 提交于
      Signed-off-by: NBhunvesh Chaudhary <bchaudhary@pivotal.io>
      ce63300b
    • O
      Fixed Test Cases · 6471f12b
      Omer Arap 提交于
      With improvement in the expression de duplication algorithm, we now
      also retain the order of expression due to which the test cases required
      the order expression to be fixed.
      
      We see a lot of plan diffs and plan size changes and the reason for that
      is the we always preserve the order of deduped list.
      
      Since we output different deduped list the plan changes are expected
      specifically the way that we hash join and hash distribute.
      Signed-off-by: NBhunvesh Chaudhary <bchaudhary@pivotal.io>
      6471f12b
    • O
      Expression dedup complexity from Quad to Linear · 76467ab2
      Omer Arap 提交于
      This commit introduces a performance improvement and stability for
      deduplication process of passed expression list.
      
      Earlier the running time complexity of this operation was O(n^2). This
      commit reduces the running time to O(n) using a HashMap.
      
      In addition, previously the order of expression is not preserved, as we
      used to add the last entry for a expr in the output list, however now
      we insert the first entry which keeps the order as is.
      
      E.g. Let's assume everything in the below list is an expression:
      
      A = `a,a,b,b,c,c`
      If you run `dedup(A)` It will produce B=`a,b,c`.
      
      Then if you add another `a` to the list B, it will B'=`a,b,c,a`
      and when we run the `dedup(B')` it will generate `b,c,a` in the old
      code.
      
      With this change, it will always generate `a,b,c`.
      Signed-off-by: NBhuvnesh Chaudhary <bchaudhary@pivotal.io>
      76467ab2
  12. 12 4月, 2017 3 次提交