1. 16 5月, 2018 1 次提交
  2. 11 5月, 2018 1 次提交
  3. 10 5月, 2018 1 次提交
  4. 27 4月, 2018 1 次提交
  5. 17 4月, 2018 1 次提交
  6. 14 4月, 2018 1 次提交
  7. 13 4月, 2018 1 次提交
  8. 06 4月, 2018 1 次提交
  9. 04 4月, 2018 1 次提交
  10. 21 3月, 2018 1 次提交
  11. 15 3月, 2018 2 次提交
  12. 14 3月, 2018 2 次提交
  13. 13 3月, 2018 1 次提交
  14. 10 3月, 2018 3 次提交
  15. 02 3月, 2018 1 次提交
  16. 28 2月, 2018 2 次提交
  17. 27 2月, 2018 1 次提交
  18. 21 2月, 2018 2 次提交
  19. 15 2月, 2018 1 次提交
  20. 14 2月, 2018 2 次提交
  21. 08 2月, 2018 1 次提交
  22. 31 1月, 2018 1 次提交
  23. 27 1月, 2018 1 次提交
  24. 25 1月, 2018 1 次提交
  25. 19 1月, 2018 1 次提交
    • E
      Updating Memory accounting test query · addc1c44
      Ekta Khanna 提交于
      The existing memory accounting test for OOM was not able to exceed the
      OOM bound due to the plan generated by ORCA v2.53.11. Prior to that the
      it would hit the OOM limit.  This commit updates the
      test query to exceed OOM with the latest version of ORCA and also bump
      the version to 2.53.11.
      Signed-off-by: NAbhijit Subramanya <asubramanya@pivotal.io>
      addc1c44
  26. 18 1月, 2018 1 次提交
  27. 17 1月, 2018 1 次提交
  28. 12 1月, 2018 1 次提交
    • S
      Fix Filter required properties for correlated subqueries in ORCA · 59abec44
      Shreedhar Hardikar 提交于
      This commit brings in ORCA changes that ensure that a Materialize node is not
      added under a Filter when its child contains outer references.  Otherwise, the
      subplan is not rescanned (because it is under a Material), producing wrong
      results. A rescan is necessary for it evaluates the subplan for each of the
      outer referenced values.
      
      For example:
      
      ```
      SELECT * FROM A,B WHERE EXISTS (
        SELECT * FROM E WHERE E.j = A.j and B.i NOT IN (
          SELECT E.i FROM E WHERE E.i != 10));
      ```
      
      For the above query ORCA produces a plan with two nested subplans:
      
      ```
      Result
        Filter: (SubPlan 2)
        ->  Gather Motion 3:1
              ->  Nested Loop
                    Join Filter: true
                    ->  Broadcast Motion 3:3
                          ->  Table Scan on a
                    ->  Table Scan on b
        SubPlan 2
          ->  Result
                Filter: public.c.j = $0
                ->  Materialize
                      ->  Result
                            Filter: (SubPlan 1)
                            ->  Materialize
                                  ->  Gather Motion 3:1
                                        ->  Table Scan on c
                            SubPlan 1
                              ->  Materialize
                                    ->  Gather Motion 3:1
                                          ->  Table Scan on c
                                                Filter: i <> 10
      ```
      
      The Materialize node (on top of Filter with Subplan 1) has cdb_strict = true.
      The cdb_strict semantics dictate that when the Materialize is rescanned,
      instead of destroying its tuplestore, it resets the accessor pointer to the
      beginning and the subtree is NOT rescanned.
      So the entries from the first scan are returned for all future calls; i.e. the
      results depend on the first row output by the cross join. This causes wrong and
      non-deterministic results.
      
      Also, this commit reinstates this test in qp_correlated_query.sql. It also
      fixes another wrong result caused by the same issue. Note that the changes in
      rangefuncs_optimizer.out are because ORCA now no longer falls back for those
      queries. Instead it produces a plan which is executed on master (instead of the
      segments as was done by planner) which changes the error messages.
      
      Also bump ORCA version to 2.53.8.
      Signed-off-by: NEkta Khanna <ekhanna@pivotal.io>
      59abec44
  29. 03 1月, 2018 3 次提交
  30. 30 12月, 2017 1 次提交
  31. 28 12月, 2017 1 次提交
    • B
      Update ORCA version 2.53.2 · a808030f
      Bhuvnesh Chaudhary 提交于
      Test files are also updated in this commit as now we don't generate
      cross join alternative if an input join was present.
      
      cross join contains CScalarConst(1) as the join condition. if the
      input expression is as below with cross join at top level between
      CLogicalInnerJoin and CLogicalGet "t3"
      
      +--CLogicalInnerJoin
         |--CLogicalInnerJoin
         |  |--CLogicalGet "t1"
         |  |--CLogicalGet "t2"
         |  +--CScalarCmp (=)
         |     |--CScalarIdent "a" (0)
         |     +--CScalarIdent "b" (9)
         |--CLogicalGet "t3"
         +--CScalarConst (1)
      for the above expression (lower) predicate generated for the cross join
      between t1 and t3 will be: CScalarConst (1) In only such cases, donot
      generate such alternative with the lower join as cross join example:
      
      +--CLogicalInnerJoin
         |--CLogicalInnerJoin
         |  |--CLogicalGet "t1"
         |  |--CLogicalGet "t3"
         |  +--CScalarConst (1)
         |--CLogicalGet "t2"
         +--CScalarCmp (=)
            |--CScalarIdent "a" (0)
            +--CScalarIdent "b" (9)
      Signed-off-by: NShreedhar Hardikar <shardikar@pivotal.io>
      a808030f