1. 25 7月, 2019 1 次提交
  2. 24 7月, 2019 1 次提交
  3. 22 7月, 2019 1 次提交
    • tubocurarine's avatar
      Fix compile issue for PyGreSQL on MacOS. · 0acc22e1
      tubocurarine 提交于
      When building file `_pg.so` on MacOS platform, distutil will invoke
      clang compiler with arguments `-arch x86_64 -arch i386`. But type
      `int128` is not available for i386 architecture, thus following error occurs:
      
      ```
      In file included from pgmodule.c:32:
      In file included from include/postgres.h:47:
      include/c.h:427:9: error: __int128 is not supported on this target
      typedef PG_INT128_TYPE int128
              ^
      include/pg_config.h:838:24: note: expanded from macro 'PG_INT128_TYPE'
                             ^
      In file included from pgmodule.c:32:
      In file included from include/postgres.h:47:
      include/c.h:433:18: error: __int128 is not supported on this target
      ```
      
      By adding `['-arch', 'x86_64']` into `extra_compile_args`, distutil will
      remove `-arch i386` from compiler arguments, thus fixes compile error.
      0acc22e1
  4. 16 7月, 2019 1 次提交
    • N
      gpexpand: improve timeout tests · 41646c8d
      Ning Yu 提交于
      Some gpexpand behave tests verify the behaviors of the `--duration` and
      `--end` arguments, they expect the gpexpand data redistribution phase to
      exist after 2 seconds before all the redistribution are done.  However
      internally gpexpand check for the timeout at a 5-second interval, if the
      data redistribution completes within 5 seconds then the tests will fail.
      This is just what is happening recently.
      
      Improve these tests by queueing more tables for redistribution.
      41646c8d
  5. 12 7月, 2019 1 次提交
  6. 10 7月, 2019 1 次提交
  7. 09 7月, 2019 1 次提交
    • D
      Remove variable self-assignment in gpload · d6239081
      Daniel Gustafsson 提交于
      Setting a variable to itself is a no-op which can be removed. This
      may have been introduced in error and instead masking a real bug,
      but if it so then we have lived with it for two years so I'm opting
      for removing.
      
      Reviewed-by: Asim R P and Bhuvnesh Chaudhary
      d6239081
  8. 05 7月, 2019 1 次提交
    • H
      Re-enable gppkg behave test for both centos and ubuntu (#8066) · af73aca6
      Hao Wu 提交于
      * Revert "CI: skip CLI behave tests that currently fail on ubuntu18.04"
      
      This reverts commit 6a0cb2c6.
      This commit is to re-enable behave test for centos/ubuntu
      
      * Ouput the same error message format
      
      gppkg for rpm and deb outputs error messages when consistency is broken, but
      the message is not the same, which make a pipeline fail.
      
      * Update gppkg for behave test and fix some minor error in gppkg
      
      Now, the binary sample.gppkg is removed, instead we add sample-*.rpm and sample-*.deb.
      Because sample.gppkg is platform specific and GP major version sensitive. The uploaded
      rpm/deb files are available unless the rpm/deb file is incompatible on the specific
      platform. GP_MAJORVERSION is dynamically retrieved from a makefile installed in the gpdb
      folder, so the gp major version in the gppkg will be always correct.
      sample.gppkg will only be generated when gppkg tag is provided
      af73aca6
  9. 28 6月, 2019 2 次提交
  10. 26 6月, 2019 2 次提交
    • S
      Behave: Unset `TZ` rather than setting to empty string · 0af8d0e9
      Shoaib Lari 提交于
      In the Behave test for gpinitsystem, testing for database creation in default
      timezone was done by setting the TZ variable to an empty string. On Ubuntu this
      resulted in the `date +"%Z"` command giving `Universal` as the timezone rather
      than `UTC`.
      
      In this commit, the `TZ` variable is unset rather than set to an empty
      string. Thus giving uniform behavior on Ubuntu and other platforms. Since we
      already have a Behave step to unset a variable correctly, so we are removing
      this incorrect step.
      Co-authored-by: NJacob Champion <pchampion@pivotal.io>
      0af8d0e9
    • N
      Behave: Correctly kill processes during gprecoverseg tests · a9f4e969
      Nikolaos Kalampalikis 提交于
      We were not killing the postmaster processes because of the following reasons.
      
      1. The `$` symbols passed to `Command` was expanded on the local machine due to
      the `RemoteExecutionContext` implementation.  This made the awk filter a no-op.
      
      2. We did not catch this on Centos because the Centos implementation of
      /bin/kill will kill as many of the processes as are valid and ignoring the
      invalid ones.  However, Ubuntu fails fast if any of the arguments are invalid.
      
      3. The test step did not validate the result of `Command.run()`.  Thus ignoring
      the failure.
      
      We have replaced `Command` by `subprocess.check_call()`.
      Co-authored-by: NJacob Champion <pchampion@pivotal.io>
      Co-authored-by: NShoaib Lari <slari@pivotal.io>
      a9f4e969
  11. 25 6月, 2019 2 次提交
    • T
      Add gpdb client test cases on windows pipeline (#7926) · 12f7c139
      Tingfang Bao 提交于
      1) Run TEST_REMOTE.py of gpload
      2) Run psql SSL, gpfdist Windows pipe testing
      Co-authored-by: NPeifeng Qiu <pqiu@pivotal.io>
      Co-authored-by: NTingfang Bao <bbao@pivotal.io>
      Co-authored-by: NXiaoran Wang <xiwang@pivotal.io>
      Co-authored-by: NXiaodong Huo <xhuo@pivotal.io>
      12f7c139
    • J
      postinit: refuse dispatch-mode connections to QEs · ebc26b04
      Jamie McAtamney 提交于
      Prior to this commit, standard connections made to a primary segment
      would hang forever if that segment was not started in utility mode,
      because the call to cdb_setup() waits for a state that will never
      arrive. The hang exists in 6X as well, for slightly different reasons
      (an infinite wait on a semaphore).
      
      Some utilities make use of pg_isready to verify segment status, and a
      hung backend will report an incorrect status for the segment, which is
      how this bug was discovered. The hung backend sticks around forever in
      startup state as well.
      
      Add an explicit check on QE segments that the incoming session does not
      expect a dispatcher role, and bail out at the same place that we would
      normally complain about a mismatched utility-mode connection. (If the
      incoming session is set to the executor role, we'll raise a FATAL for
      other reasons, but at least we won't hang.)
      
      Add a regress test for the new behavior. We coopt the new
      internal_connection test file for this, and rename it gp_connections.
      We also add a more end-to-end regression test using the same
      reproduction case as the original bug.
      Co-authored-by: NJacob Champion <pchampion@pivotal.io>
      ebc26b04
  12. 21 6月, 2019 2 次提交
    • J
      gpsegstart: remove incorrect SegmentStart parameter · 2d6d9ea2
      Jacob Champion 提交于
      Commit a993ef03 inadvertently introduced gp_role=utility in the
      postmaster arguments when starting segments via gpsegstart. This is
      because the sixth argument to SegmentStart is a boolean (utilityMode,
      which defaults to False) but that commit incorrectly passes the
      master_checksum_version instead. If checksums are enabled on master
      (which sets the checksum version to 1, a truthy value), this code will
      enable utility mode for the started segments.
      
      SegmentStart does not take a checksum version argument, so remove it
      entirely.
      
      Ashwin noticed this in #6334, but we hadn't put two and two together
      until now. An ideal followup would be to remove the huge number of
      layers that make mistakes like this so easy to miss.
      Co-authored-by: NJamie McAtamney <jmcatamney@pivotal.io>
      2d6d9ea2
    • N
      CI: skip CLI behave tests that currently fail on ubuntu18.04 · 55fa7f88
      Nikolaos Kalampalikis 提交于
      We skip the following tests for the following reasons:
         - gpinitsystem: TZ interpretation difference for TZ '' vs unset
         - gppkg: underlying package zip file contains wrong OS version
         - gpactivatestandby: cause unknown
         - gprecoverseg: bash pipe interpretation difference
         - gpconfig: demo cluster has LOCALE set to POSIX, not UTF-8
      
      We plan to fix these in a subsequent commit.
      Co-authored-by: NDavid Krieger <dkrieger@pivotal.io>
      Co-authored-by: NNikolaos Kalampalikis <nkalampalikis@pivotal.io>
      55fa7f88
  13. 20 6月, 2019 1 次提交
  14. 12 6月, 2019 1 次提交
    • J
      Refactor gpstate Behave test regex · 450a21e4
      Jimmy Yih 提交于
      The PostgreSQL semver regex did not account for developer versions
      (e.g. 9.4.21 vs 9.5beta1). Relax the regex to make the test pass since
      this was an oversight when the test was written.
      450a21e4
  15. 07 6月, 2019 2 次提交
  16. 06 6月, 2019 1 次提交
  17. 05 6月, 2019 1 次提交
  18. 04 6月, 2019 1 次提交
  19. 31 5月, 2019 1 次提交
    • C
      Revert "Skip analyzing root partitions by default in analyzedb (#7081)" · dd2f2576
      Chris Hajas 提交于
      This reverts commit 9fa19b76.
      
      Analyze should update the statistics on the root partition when all the
      leaf partitions have been analyzed. However, analyzedb runs analyze on
      the leaf partitions in parallel and does not update the stats on the
      root partition. Without the correct stats on the root partition, ORCA
      ends up picking a bad plan.
      
      Additionally, add tests to analyzedb to ensure root stats are updated.
      In master/6X, the relpages/reltuples of a root partition table is not
      updated in pg_class, rather this is calculated during planning time.
      Therefore, the tests check that columns statistics in pg_statistic are
      populated.
      
      This will be backported to 6X_STABLE.
      dd2f2576
  20. 30 5月, 2019 2 次提交
    • D
      parseutils: cluster management input file refactoring · 66448a3c
      David Krieger 提交于
      We simplify and refactor the parsing for gpaddmirrors, gpmovemirrors,
      gprecoverseg and gpexpand.  This eliminates a few hundred lines of code.
      In addition, this commit changes the format of the input lines for the
      input files to these routines.  The separator is now '|' instead of ':'.
      
      <Co-Authored-By> Mark Sliva <msliva@pivotal.io>
      <Co-Authored-By> Jamie McCatamney <jmcatamney@pivotal.io>
      66448a3c
    • J
      gp_bash_functions: Improve PING_HOST logging · 6fe75453
      Jamie McAtamney 提交于
      Previously, PING_HOST swallowed any log messages from ping, and now we
      display those messages in the error message.
      Co-authored-by: NShoaib Lari <slari@pivotal.io>
      6fe75453
  21. 29 5月, 2019 8 次提交
  22. 28 5月, 2019 2 次提交
    • D
      Remove dead code and variables from bash library · 9f5b4005
      Daniel Gustafsson 提交于
      The gp_bash_functions Bash library had accumulated some dead code
      variables, left over from earlier refactorings and removal of utils.
      Remove and perform a little bit of cleaning.
      
      Reviewed-by: Jacob Champion
      9f5b4005
    • X
      Optimize explicit transactions · b43629be
      xiong-gang 提交于
      Currently, explicit 'BEGIN' creates a full-size writer gang and starts a transaction
      on it, the following 'END' will commit the transaction in a two-phase way. It can be
      optimized for some cases:
      case 1:
      BEGIN;
      SELECT * FROM pg_class;
      END;
      
      case 2:
      BEGIN;
      SELECT * FROM foo;
      SELECT * FROM bar;
      END;
      
      case 3:
      BEGIN;
      INSERT INTO foo VALUES(1);
      INSERT INTO bar VALUES(2);
      END;
      
      For case 1, it's unnecessary to create a gang and no need to have two-phase commit.
      For case 2, it's unnecessary to have two-phase commit as the executors don't write
      any XLOG.
      For case 3, don't have to create a full-size writer gang and do two-phase commit on
      a full-size gang.
      Co-authored-by: NJialun Du <jdu@pivotal.io>
      b43629be
  23. 22 5月, 2019 1 次提交
  24. 21 5月, 2019 2 次提交
  25. 19 5月, 2019 1 次提交
    • Z
      Correctly handle tablespace for GPexpand · 90357195
      Zhenghua Lyu 提交于
      GPexpand should take tablespaces into consideration. This means:
      
      1. during the interview step stage, if there are user-created
           tablespaces in GreeplumDB cluster, we should generate a
           tablespace input file for GPexpand. User can modify it to
           use customized tablespace location on each new segment (Since
           we support create tablespace ... with (contentid=loc) syntax).
      
        2. during the template generatition stage, we should pack tablespace
           files generated by pg_basebackup into the template, and saves the
           restore paths into a json config file which is also a part of the
           template.
      
        3. During the stage of config a new segment, we should restore the
           tablespace files for primary. For mirrors, we just invoke pg_basebackup
           which has already handled tablespace cases.
      
      An example of the whole process is shown below:
      
        * suppose there are tablespaces in the GreenplumDB cluster
        * tbs1 (oid1) -> location1; tbs2 (oid2) -> location2
        * and new segments are dbid1(primary), dbid2(mirror)
      
      The tablespace input file will be:
      ```
        line1: tableSpaceNameOrders=tbs1:tbs2
        line2: tableSpaceOidOrders=oid1:oid2
        dbid1:loc1:loc2
      ```
      
      The template's pg_tblspc dir will be:
        oid1
        oid2
        dumps
           |_ oid1
           |     |__ xxx_dbDummyID
           |
           |_ oid2
                 |__ xxx_dbDummyID
        newTableSpaceInfo.json
      90357195