1. 15 6月, 2016 2 次提交
    • H
      Porting optimizer functional tests to ICG [#120031461] · af5e4bcf
      Haisheng Yuan and Omer Arap 提交于
          Port `dml/triggers`
          Port `olap/groupingfunction`
          Port `functions/builtin`
          Port `dml/functional`
          Port `dml/functional/sql_partiton`
          Port `functions/functionProperty`
      
          Update optfunctional_schedule with ported tests
      
          Update the Makefile for optimizer functional tests
      af5e4bcf
    • N
      Allocate tuples retrieved by a SharedScan in a longer living memory context · c36ecd6f
      Nikos Armenatzoglou 提交于
      When SharedScan requests a tuple from the underlying Sort, and the Sort has spilled to disk, the mk_sort code (also the regular sort) makes a copy of the memtuple, but places it in the sortcontext.
      When hitting a QueryFinishPending (e.g., master received enough tuples, so stop the execution), EagerFree is called for the entire tree. When reaching the sort node, the sortcontext is deleted, even though the SharedScan above it still has a pointer to a memtuple allocated in this context.
      
      The solution is: pass a memory context for the mk_sort and regular sort to use (change the API and implementation of the following two functions: tuplesort_gettupleslot_pos_mk and tuplesort_gettupleslot_pos). Those functions should use the context provided by the caller to make a copy of the memtuple.
      Signed-off-by: NGeorge Caragea <gcaragea@pivotal.io>
      c36ecd6f
  2. 13 6月, 2016 2 次提交
    • K
      Dispatch exactly same text string for all slices. · 4b360942
      Kenan Yao 提交于
      Include a map from sliceIndex to gang_id in the dispatched string,
      and remove the localSlice field, hence QE should get the localSlice
      from the map now. By this way, we avoid duplicating and modifying
      the dispatch text string slice by slice, and each QE of a sliced
      dispatch would get same contents now.
      
      The extra space cost is sizeof(int) * SliceNumber bytes, and the extra
      computing cost is iterating the SliceNumber-size array. Compared with
      memcpy of text string for each slice in previous implementation, this
      way is much cheaper, because SliceNumber is much smaller than the size
      of dispatch text string. Also, since SliceNumber is so small, we just
      use an array for the map instead of a hash table.
      
      Also, clean up some dead code in dispatcher, including:
      (1) Remove primary_gang_id field of Slice struct and DispatchCommandDtxProtocolParms
      struct, since dispatch agent is deprecated now;
      (2) Remove redundant logic in cdbdisp_dispatchX;
      (3) Clean up buildGpDtxProtocolCommand;
      4b360942
    • P
      Fix bugs when a SET command is executed within init plan · 2cda812c
      Pengzhou Tang 提交于
      In commit d2725929, GPDB marked all allocatedReaderGangs with noReuse flag. When plan contains
      init plan and a SET command executed within it, GPDB will mark pre-assigned gangs to noReuse and
      destroy them which make query crash
      2cda812c
  3. 11 6月, 2016 1 次提交
    • J
      [#120984085] Adds GUC for array expansion. · 53230187
      Jesse Zhang and Marc Spehlmann 提交于
      This GUC will be used to control the MEMO size as well as optimization
      time for large IN list or large array comparison expressions.
      
      Only the Array with less number of elements than the GUC will be
      expanded and participate in constraint derivation.
      
      Trade-off of using this GUC is loss of potential benefits from the
      constraint derivation (e.g. conflict detection, partition elimination)
      with shorter optimization time and less memory utilization.
      53230187
  4. 09 6月, 2016 1 次提交
    • H
      Bump check on regression database size to 5 GB. · 2ba36ba6
      Heikki Linnakangas 提交于
      The regression database has grown over time, so that it's just above the
      1 GB size that the regression test used as a "sanity check". I think the
      new zlib regression test broke the camel's back. Bump it up to 5 GB, giving
      us about 4 GB of headroom to grow.
      2ba36ba6
  5. 08 6月, 2016 2 次提交
  6. 07 6月, 2016 3 次提交
  7. 06 6月, 2016 3 次提交
    • H
      Fix ORCA alternative expected outputs. · d4506033
      Heikki Linnakangas 提交于
      I neglected these in previous commit.
      d4506033
    • H
      Backport b153c092 from PostgreSQL 8.4 · 78b0a42e
      Heikki Linnakangas 提交于
      This is a partial backport of a larger body of work which also already have
      been partially backported.
      
      Remove the GPDB-specific "breadcrumbs" mechanism from the parser. It is
      made obsolete by the upstream mechanism. We lose context information from
      a few errors, which is unfortunate, but seems acceptable. Upstream doesn't
      have context information for those errors either.
      
      The backport was originally done by Daniel Gustafsson, on top of the
      PostgreSQL 8.3 merge. I tweaked it to apply it to master, before the
      merge.
      
      Upstream commit:
      
        commit b153c092
        Author: Tom Lane <tgl@sss.pgh.pa.us>
        Date:   Mon Sep 1 20:42:46 2008 +0000
      
          Add a bunch of new error location reports to parse-analysis error messages.
          There are still some weak spots around JOIN USING and relation alias lists,
          but most errors reported within backend/parser/ now have locations.
      78b0a42e
    • H
      Revert contain_vars_of_level() to match the upstream. · 756241e2
      Heikki Linnakangas 提交于
      The function was rewritten in GPDB, and its behaviour was changed to also
      return 'true' if the expression contains an Aggref of the given level.
      That change in behaviour was made back in 2006, as part of a commit
      containing a lot of subquery optimization changes. I could not find an
      explanation for that particular change, and all the regression tests pass
      without so I assume that it has become obsolete at some point over they
      years.
      
      This smoothens the way for future merges with upstream, by reducing the
      diff in both code and behaviour. Also, you get a more accurate error
      message in a few cases, as seen by the changes to expected output.
      756241e2
  8. 05 6月, 2016 1 次提交
  9. 04 6月, 2016 1 次提交
  10. 03 6月, 2016 7 次提交
  11. 02 6月, 2016 3 次提交
  12. 01 6月, 2016 1 次提交
  13. 27 5月, 2016 2 次提交
  14. 19 5月, 2016 1 次提交
  15. 13 5月, 2016 10 次提交