1. 04 1月, 2019 2 次提交
  2. 03 1月, 2019 8 次提交
  3. 31 12月, 2018 7 次提交
  4. 29 12月, 2018 2 次提交
  5. 28 12月, 2018 19 次提交
  6. 27 12月, 2018 2 次提交
    • P
      Fix the answer file for test rpt · 2351a0e9
      Pengzhou Tang 提交于
      This is involved unexpectedly by b120194a when resolving conflict
      with the master.
      2351a0e9
    • T
      Donot expose gp_segment_id to users for replicated table (#6342) · b120194a
      Tang Pengzhou 提交于
      * Do not expose system columns to users for replicated table
      
      for replicated table, all replica in segments should always be the same which
      make gp_segment_id ambiguous for replicated table, instead of makeing effort
      to keep gp_segment_id the same in all segments, I would like to just hide the
      gp_segment_id for replicated table to make things simpler.
      
      This commit only make gp_segment_id invisible to users at the stage of
      transforming parsetree, in the underlying storage, each segment still store
      different value for system column gp_segment_id, operations like SPLITUPDATE
      might also use gp_segment_id to do an explicit redistribution motion, this is
      fine as long as the user-visible columns have the same data.
      
      * Fixup reshuffle* test cases
      
      reshuffle.* cases used to use gp_segment_id to test that a replicated
      table is actually expanded to new segments, now gp_segment_id is
      invisible to users, some errors reports.
      
      Because replicated table has triple data, we can get enough info
      from the total count even without a group by of gp_segment_id. It's
      not 100% accurate but should be enough already.
      
      * Do dependencies check when converting a table to replicated table
      
      system columns of replicated table should not be exposed to users,
      we do the check at parser stage, however, if users create views or
      rules involve the system columns of a hash distributed table and
      then the hash distributed table is converted to a replicated table,
      then users can still access the system columns of replicated table
      through views and rules because they bypass the check in the parser
      stage. To resolve this, we add a dependencies check when altering
      a table to replicated table, users need to drop the views or rules
      first.
      
      I tried to add a recheck in later stages like planner or executor,
      but it seems that system columns like CTID are used internally for
      basic DMLs like UPDATE/DELETE and those columns are added even
      before the rewrite of views and rules, so adding a recheck will
      block basic DMLs too.
      b120194a