1. 22 4月, 2017 5 次提交
  2. 21 4月, 2017 2 次提交
  3. 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
  4. 12 4月, 2017 4 次提交
  5. 11 4月, 2017 5 次提交
  6. 05 4月, 2017 2 次提交
  7. 04 4月, 2017 1 次提交
    • H
      Remove dead code about SharedScan · c6838425
      Haisheng Yuan 提交于
      When I was trying to understand how does Orca generate plan for CTE using
      shared input scan, I found that the share input scan is generated during CTE
      producer & consumer DXL node to PlannedStmt translation stage, instead of Expr
      to DXL  stage inside Orca. It turns out CDXLPhysicalSharedScan is not used
      anywhere, so remove all the related dead code.
      c6838425
  8. 01 4月, 2017 1 次提交
    • H
      Refactor Expr to DXL translator for list partition selector predicates · cdc45d92
      Haisheng Yuan 提交于
      Previously when the final plan is translated into DXL, Orca uses range
      predicates to represent the values of the list partition (range start and end
      value equal a single list value), which is error-prone and redundant for the
      query executor.
      
      In this patch, we use the following way to translate the predicates of the list
      partition selector in DXL (range based partition remain unchanged):
      1. PK op Scalar -> Scalar reverse(op) Any(PartListValues)
      For partition selector predicate `pk1 < 5`, will be translated to `ArrayComp(5 >
      Any(PartListValues))`, which means as long as any value of list partition values
      is less than 5, the partition will be selected.
      2. PK is (not) NULL -> PartListNullTest
      3. Propagation Expression ->
         Const1 = Any(PartListValues) or Const2 = Any(PartListValues) ...
      
      [#140699737]
      Closes #149
      cdc45d92
  9. 31 3月, 2017 5 次提交
  10. 30 3月, 2017 1 次提交
  11. 29 3月, 2017 3 次提交
  12. 21 3月, 2017 1 次提交
  13. 17 3月, 2017 1 次提交
    • H
      Fix bug that can't generate equality partition filters for multilevel partition table · e99b9fef
      Haisheng Yuan 提交于
      The equality parition filter of partition selector works very well for single
      level partition table, but if the table has multilevel partitions, e.g. 2
      levels with pk1, pk2 as the partition key for level 1 and 2, and there is a
      equality predicate in the query, say pk1 = 2, then level 2 equality filter is null,
      the function `FEqPartFiltersAllLevels` will return false, causing the equality
      predicate put into PartFilters instead of PartEqFilters. This bug has been
      fixed in the patch.
      
      [#141826453]
      e99b9fef
  14. 16 3月, 2017 2 次提交
  15. 11 3月, 2017 1 次提交
    • O
      [#141511349] Improve HashMap iterator implementation · 4d9e03a8
      Omer Arap 提交于
      Currently, the HashMapIter implementation scans through all hash map
      buckets to get the next existing hash chain. This degrades performance
      significantly.
      
      This commit improves the iterator implementation by maintaining a
      dynamic key array which holds the existing keys in HashMap. The
      iteration is done using this array.
      Signed-off-by: NDhanashree Kashid <dkashid@pivotal.io>
      4d9e03a8
  16. 08 3月, 2017 2 次提交