1. 26 4月, 2019 4 次提交
    • C
      Docs - update pg_class and pg_index catalog table references (#7504) · 733e25c7
      Chuck Litzell 提交于
      * Docs - update pg_class and pg_index catalog table references
      
      * dyozie review comments
      733e25c7
    • L
      eb130b16
    • A
      6e809afd
    • H
      Adding options to generate diff files to plan comparison script (#7349) · 9b1835c0
      Hans Zeller 提交于
      The script used in pipelines that search for explain plan changes
      lists those queries that have cost, row or plan changes. In many
      cases the user will want to investigate those changes further.
      
      A new set of options generates two directories that are easy to
      compare, one contains the baseline plans, one file per plan, and
      the other contains the changed plans of the test.
      
      $ ~/workspace/gpdb/concourse/scripts/perfsummary.py --help
      usage: perfsummary.py [-h] [--baseLog BASELOG] [--diffDir DIFFDIR]
                            [--diffThreshold DIFFTHRESHOLD] [--diffLevel DIFFLEVEL]
                            [log_file]
      
      Summarize the test suite execute and explain log
      
      positional arguments:
        log_file              log file with explain/execute output
      
      optional arguments:
        -h, --help            show this help message and exit
        --baseLog BASELOG     specify a log file from a base version to compare to
        --diffDir DIFFDIR     request diff files to be created and specify a
                              directory to place diffs into
        --diffThreshold DIFFTHRESHOLD
                              specify a numerical threshold to record plan diffs
                              with a performance regression of more than n percent
        --diffLevel DIFFLEVEL
                              specify which diff files to generate: 1 = all diffs, 2
                              = ignore cost diffs, 3 = plan diffs only
      9b1835c0
  2. 25 4月, 2019 12 次提交
    • P
      Add README for building client tools on Windows · 24ea1af7
      Peifeng Qiu 提交于
      24ea1af7
    • P
      Fix windows client package script · a2571325
      Peifeng Qiu 提交于
      Connectivity and loaders are no longer vendored. Loaders will be
      merged into clients. Add script to create msi package.
      a2571325
    • P
      Compile pygresql with CMake · defab9ed
      Peifeng Qiu 提交于
      Requires a working libpq.dll. Set CMAKE_PREFIX_PATH to a successful
      client build.
      defab9ed
    • P
      Fix gpfdist pipe failure with latest windows build · f044d844
      Peifeng Qiu 提交于
      Behavior of stat() is not stable across C Runtime versions.
      Implementation of msvcrt.dll calls FindFirstFile(), while in normal
      CRT that omes with Visual Studio or Redistribute packages, it calls
      CreateFile().
      CreateFile() is problematic here, if path is a pipe, it will open
      the pipe once then close, causing the other side to connect to the
      wrong pipe. Skip stat() if the name is pipe and pretend there is one.
      f044d844
    • P
      Compile gpfdist on windows with CMake · 4a4e4bbf
      Peifeng Qiu 提交于
      - Don't include strings.h when build with MSVC
      - C99 Syntax fix for struct initializer.
      - Call event_set to initialize event struct. Later libevent version
      expect this behavior.
      - Use recv instead of read. Latest CRT implementation of read only
      works on files, not sockets.
      4a4e4bbf
    • P
      Fix 64-bit kerberos lib path · 6b4621ec
      Peifeng Qiu 提交于
      6b4621ec
    • P
      Fix msvc build for client tools · 8a5ad4bf
      Peifeng Qiu 提交于
      - Fix upstream build system for MSVC, add option to build.pl to
      only build client tools.
      - Add detection for MSVC SDK version. If this field is missing,
      8.1 is assumed. The latest compiler will complain about this.
      - Various small fixes
      8a5ad4bf
    • C
      Add a list of SQL keywords to the ref guide (#7449) · 052bdb22
      Chuck Litzell 提交于
      * Add a list of SQL keywords to the ref guide
      
      * Fix error from review
      
      * Update from review comment
      052bdb22
    • T
      Add the gpdb clients release candidates (#7531) · 48bdaf2a
      Tingfang Bao 提交于
      Story: https://www.pivotaltracker.com/story/show/164917628
      
         The gp-integration-testing pipeline needs the gp-clients RC
         package as a input, and then create the clients RPM base on it.
         The custom installer patch also need it to build client bin installer.
      Co-authored-by: NXiaoran Wang <xiwang@pivotal.io>
      Co-authored-by: NShaoqi Bai <sbai@pivotal.io>
      Co-authored-by: NBob Bao <bbao@pivotal.io>
      48bdaf2a
    • C
      Rename instances of "PQO" to "Pivotal Optimizer (GPORCA)" (#7511) · 5212dba1
      Chris Hajas 提交于
      ORCA Explain plans will now contain:
      `Optimizer: Pivotal Optimizer (GPORCA) version 3.35.0`
      
      instead of:
      `Optimizer: PQO version 3.35.0`
      
      Authored-by: Chris Hajas chajas@pivotal.io
      5212dba1
    • J
      behave: install patchelf to get around RPATH problems · e5e91bdc
      Jacob Champion 提交于
      Follow-up to the previous commit, which worked fine for CentOS6 but fell
      apart with CentOS7.
      
      Because our vendored Python doesn't contain an RPATH/RUNPATH pointer to
      the location of its libpython, trying to execute it directly will result
      in failures at link time. The previous commit took the approach that
      greenplum_path.sh takes, which is to hardcode an LD_LIBRARY_PATH that
      makes up for this bug. This approach works for CentOS6, which is running
      Python 2.6 as its system version. On CentOS7, which has Python 2.7, the
      LD_LIBRARY_PATH causes the system Python to use the vendored
      libpython.so.2.7, and virtualenv fails.
      
      Instead of forcing a cross-linking situation with LD_LIBRARY_PATH, fix
      the problem in the vendored Python binary, by using patchelf to set up a
      proper RUNPATH. (We originally tried to build our vendored Python with
      an RPATH set at compile time, but the only way to do that without
      knowing the eventual installation prefix is by setting a relative RPATH
      using the `$ORIGIN` construct, and virtualenv is unfortunately
      incompatible with that.) We do this on any platforms that provide a
      patchelf binary, and do our best to limp along on all others.
      
      Along the way, get rid of the run_behave.yml task, which has been
      confusing us for the entirety of this work. CCP jobs now use
      run_behave_on_ccp_cluster.yml consistently.
      Co-authored-by: NKalen Krempely <kkrempely@pivotal.io>
      e5e91bdc
    • K
      CI: unvendor behave · 358ce512
      Kalen Krempely 提交于
      To run behave tests, behave now needs to be installed in the PATH. The
      correct version of behave can be installed with pip using
      
          pip install -r gpMgmt/requirements-dev.txt
      
      For the CI tests, use virtualenv, which allows behave to be installed
      while still using greenplum PYTHONPATH for our vendored python modules.
      This is more of a problem for platforms like centos6 where the system
      python is a different version than the vendored version.
      Co-authored-by: NKalen Krempely <kkrempely@pivotal.io>
      Co-authored-by: NMark Sliva <msliva@pivotal.io>
      Co-authored-by: NDavid Krieger <dkrieger@pivotal.io>
      Co-authored-by: NJacob Champion <pchampion@pivotal.io>
      358ce512
  3. 24 4月, 2019 9 次提交
  4. 23 4月, 2019 10 次提交
    • D
      Update docs for gp_recursive_cte enabled by default · 86552d03
      Daniel Gustafsson 提交于
      Commit 4e337a33 enabled RECURSIVE
      CTEs by default, update the docs to reflect the current state of
      the GUC.
      Reviewed-by: NLisa Owen <lowen@pivotal.io>
      Reviewed-by: NDavid Yozie <dyozie@pivotal.io>
      86552d03
    • D
      Reflect that gp_recursive_cte is enabled by default · 58343e3c
      Daniel Gustafsson 提交于
      Commit 4e337a33 enabled RECURSIVE
      CTEs by default, so let's remove the final instances where we did
      override the previous default value.
      Reviewed-by: NLisa Owen <lowen@pivotal.io>
      Reviewed-by: NDavid Yozie <dyozie@pivotal.io>
      58343e3c
    • D
      Align disabled contrib modules with upstream · 2f325ac9
      Daniel Gustafsson 提交于
      The contrib/ directory in Greenplum had over the years had multiple
      files removed for various reasons. This tends to create confusion
      and pointless merge conflicts as we merge with upstream. This brings
      back a lot of files we generally don't really care about, to align
      us with upstream. See below for discussions on the various files:
      
      * adminpack is already imported into Greenplum core in order to
        better support pgAdmin3
      * earthdistance isn't supported as it relies on upstream features
        not present in Greenplum
      * lo is not supported in Greenplum as large objects are disabled
      * chkpass and intagg are uninteresting and obsolete modules which
        are being removed from upstream
      2f325ac9
    • J
      Fix bug missing initializing timeout · 57ae7186
      Jialun 提交于
      We found that if gp_segment_configuration is locked, then it will
      fail by triggering FTS. We got the stack below
      	#2  0x0000000000a6bb29 in ExceptionalCondition at assert.c:66
      	#3  0x0000000000aac19a in enable_timeout timeout.c:143
      	#4  0x0000000000aacb6c in enable_timeout_after timeout.c:473
      	#5  0x00000000008e86ef in ProcSleep at proc.c:1300
      	#6  0x00000000008deb70 in WaitOnLock at lock.c:1894
      	#7  0x00000000008e019e in LockAcquireExtended at lock.c:1205
      	#8  0x00000000008dd2d8 in LockRelationOid at lmgr.c:102
      	#9  0x000000000051c928 in heap_open at heapam.c:1083
      	#10 0x0000000000b7feaf in getCdbComponentInfo at cdbutil.c:173
      	#11 0x0000000000b81365 in cdbcomponent_getCdbComponents at cdbutil.c:606
      	#12 0x00000000007603e1 in ftsMain at fts.c:351
      	#13 0x0000000000760715 in ftsprobe_start at fts.c:121
      	#14 0x00000000004cc7b0 in ServerLoop ()
      	#15 0x00000000008769bf in PostmasterMain at postmaster.c:1531
      	#16 0x000000000079098b in main ()
      So it is that FTS hasn't initialized timeout. Any process that
      wants to use timeout must call initilization first. This is the
      root cause gpexpand job fails on master pipeline in build 71 and 79.
      We added this initialization in FTS and GDD.
      57ae7186
    • H
      fix gpfdist build error on USE_SSL off (#7522) · 1e7ef6d2
      Huiliang.liu 提交于
      1e7ef6d2
    • H
      Shutdown gpfdist SSL connection gracefully (#7470) · bd13e8f7
      Huiliang.liu 提交于
      GPDB uses libcurl-gnutls.so.4 as default libcurl on ubuntu. gpfdist SSL
      connection reports error (56 - Failure when receiving data from the peer)
      on handling POST message. We find it shutdown socket directly without sending
      close_notify to client. So we call SSL_shutdown() before socket shutdown.
      
      But SSL_accept() will return error with above patch on Centos, because
      GPDB curl reuses SSL session ID in the second client hello, but server considers
      that session is shutdown, so it won't accept that session ID.
      The solution is disabling SSL session ID cache by setting curl option.
      Then both Centos and ubuntu work well.
      
      Enable gpfdist SSL test case.
      bd13e8f7
    • X
      Remove transaction state DTX_STATE_ACTIVE_NOT_DISTRIBUTED · 72828c27
      xiong-gang 提交于
      DTX_STATE_ACTIVE_NOT_DISTRIBUTED indicates the transaction is started on QD and
      two-phase commit is not required yet, in this state, distributed transaction ID
      is also generated. If this transaction is not a two-phase transaction, e.g. implicit
      select-only transaction, it will also need to acquire the ProcArrayLock to clear
      the distributed transaction ID, and that leads to unnecessary lock contention.
      72828c27
    • M
      PrepareTempTablespaces directly before making temp file · d6ef4234
      Melanie Plageman 提交于
      PrepareTempTablespaces is called by almost all callers of
      BufFileCreateTemp* and seems like it would be easier from a readability
      perspective and as a developer when writing some code that is going to
      make temp files, I would prefer not to have to remember to check and set
      the value that the user set for temp tablespaces GUC. It seems like that
      is an unnecessary chore that is easily forgotten.
      
      For example, for HashAgg, we have our own spilling implementation and
      forgot to call PrepareTempTablespaces, so spill files were not getting
      created in the temp tablespace specified by the user.
      
      Note that in the workfile_mgr_test, we use SetConfigOption to set the
      temp_tablespaces GUC. It would also have worked to redeclare the
      variable in the test file and then assign to it. However, SetConfigOption
      is used when a user sets a GUC, so it seems more intuitive for the
      reader of the test to use this.
      Co-authored-by: NAshwin Agrawal <aagrawal@pivotal.io>
      d6ef4234
    • J
      gppkg: remove special Concourse task for GPHOME copying · e6b40a71
      Jacob Champion 提交于
      concourse/scripts/gppkg_behave.sh, which installs an identical copy of
      GPHOME into a new location, existed for exactly one test. Modify that
      test to perform its own copy-install.
      e6b40a71
    • J
      CI: fix Concourse template for gpexpand · 52a21767
      Jacob Champion 提交于
      gpexpand requires centos6, ICW, and CLI jobs to be enabled, but it was
      being included in the groups when only a subset of those requirements
      was met, so fly refused the pipeline. With this change, centos6/CLI
      pipelines should work again.
      52a21767
  5. 22 4月, 2019 3 次提交
  6. 21 4月, 2019 1 次提交
    • D
      contrib: Add missing code and testcases for ltree · 8682589d
      Daniel Gustafsson 提交于
      Add the missing code and testcases from upstream to make the ltree
      contrib module complete. With this the module builds and tests.
      
      The ignore block in the test case is to avoid a large diff in the
      expected file since the test in question fails on the below error
      in Greenplum:
      
        ERROR:  UNIQUE and DISTRIBUTED RANDOMLY are incompatible
      8682589d
  7. 20 4月, 2019 1 次提交