1. 09 5月, 2019 9 次提交
    • A
      Fix typo in Makefile for installcheck-resgroup target · 028bf0eb
      Asim R P 提交于
      The --load-extension option was misspelt as load_extension.  Resource group
      tests are difficult to run locally, neither are they run in PR pipeline.  That
      makes it difficult to catch such errors.
      028bf0eb
    • A
      Make pg_terminate_backend test more reliable · 63bed5eb
      Asim R P 提交于
      This test has failed at least once due to the terminate query being executed
      before the to be terminated 'create table' statement.  This was evident from
      master logs.  The commit makes it more reliable by injecting a fault and
      waiting for the fault to be trigggered before executing pg_terminate_backend().
      As a side benefit, we no longer need to create any additional table.
      63bed5eb
    • A
      Create gp_inject_fault extension as part of pg_regress and isolation2 · b95b5425
      Asim R P 提交于
      The extension is created by the test harness, after creating the regression /
      isolation2test databases.  Tests should directly start using the extension and
      not attempt to create it.  In addition to simplifying tests a little bit, this
      change avoids an error (duplicate key value violates unique constraint on
      pg_extension) when two or more tests execute create extension command
      concurrently.  The error is not a problem in practice, it expected because of
      the way create extension DDL works.  It is, however, unacceptable for
      regress-style tests that expect a deterministic response to each SQL command.
      b95b5425
    • S
      Bump ORCA version to v3.40.0 · 9d8565cc
      Sambitesh Dash 提交于
      9d8565cc
    • P
      Extend pg_get_expr() to hold a lock for parallel access · afd39491
      Pengzhou Tang 提交于
      In pg_get_expr(), after getting the relname, if the table that the relid tells
      is dropped, an error will raise later when opening the relation to get column
      names.
      
      pg_get_expr() is used by GPDB add-on view 'pg_partitions' which is widely used
      by regression tests for partition tables. Lots of parallel test cases issue view
      pg_partitions and drop partition tables concurrently, so those cases are very
      flaky. Serialize test cases will cost more testing time and be fragile, so GPDB
      holds a AccessShareLock here to make tests stable.
      afd39491
    • P
      Fix a permission denied issue · c5d6078d
      Pengzhou Tang 提交于
      Assume user1 has the privilege to database db1 and user2 has not, when
      user1 try to create a schema in db1 and authorize it to user2, a
      permission denied error is reported in QE. The RCA is QD set current
      user to user2 before dispatching the query to QEs, so QE will also
      set current user to user2, however, user2 has no provilege to create
      schema in database db1.
      
      To fix this, we delay setting the current user to user2 until the query
      is dispatched to QEs.
      c5d6078d
    • P
      Fix error that master and standby are never synchronized · a460975d
      Pengzhou Tang 提交于
      GPDB used to allow command like "START_REPLICATION %X/%X [SYNC]" to
      start a replication, user can specify SYNC option to skip waiting
      synchronous in replications. Now start replication command is made
      similar to upstream, the SYNC option is not supported, however, the
      internal flag "synchronous" is still used and always be false which
      make master and standby never synchronized.
      a460975d
    • K
      concourse: Remove unused orca and conan tasks and scripts · 0d8221a8
      Karen Huddleston 提交于
      Some of the task files were used by jobs in the orca pipeline, but those
      jobs have been removed so the files are not being used anymore.
      Co-authored-by: NKaren Huddleston <khuddleston@pivotal.io>
      Co-authored-by: NDavid Sharp <dsharp@pivotal.io>
      0d8221a8
    • D
      ca2f0272
  2. 08 5月, 2019 13 次提交
    • D
      Align backend/parser error messages to upstream · 8adcea8e
      Daniel Gustafsson 提交于
      Ensure that error messages in src/backend/parser follow the upstream
      guidelines for formatting, styling and content.
      
       * Start hints and details with uppercase and end with period
       * Start messages with lowercase with no ending period
       * Avoid breaking messages in code to make grepping easier
      
      This also cleans up the worst whitespace offences around error
      messages.
      Reviewed-by: NTang Pengzhou <ptang@pivotal.io>
      8adcea8e
    • D
      Fix typos in code comments · bbe1ddc3
      Daniel Gustafsson 提交于
      bbe1ddc3
    • D
      Remove C99 struct initialize to avoid warning · 155796b3
      Daniel Gustafsson 提交于
      Initializing a struct with zeroes using {0} is legal in C99, but cause
      a warning in Clang when the first member of the struct isn't a scalar
      variable:
      
      gpfdist.c:1299:44: warning: suggest braces around initialization of subobject
                         [-Wmissing-braces]
              struct fstream_filename_and_offset fos = {0};
                                                        ^
                                                        {}
      This is a bug in Clang, but we also don't want to turn off this class
      of warnings due to a this trivial false positive, as that might hide
      actual warnings somewhere. Since the struct in question is guaranteed
      to be set before being read, we can avoid the explicit initialization.
      155796b3
    • D
      Remove unused variable in ATPExecPartSplit · dd5dd346
      Daniel Gustafsson 提交于
      The value set in default_pos was never used, so remove the variable
      entirely. The consumers were most likely removed in a refactoring at
      some point.
      Reviewed-by: NJimmy Yih <jyih@pivotal.io>
      dd5dd346
    • D
      Fix potential NULL pointer dereference · 23d9b875
      Daniel Gustafsson 提交于
      Allocating memory manually with malloc() requires checking that the
      allocation was granted before dereferencing the pointer. To fix use
      pg_malloc() which is guaranteed to return a valid pointer or error
      out. Also update the reclaim to use a matching pg_free() call.
      Reviewed-by: NJimmy Yih <jyih@pivotal.io>
      23d9b875
    • P
      Fix windows client package script (#7623) · 2e292578
      Peifeng Qiu 提交于
      - Copy and package dependency DLLs
      - Add gpload.bat to make gpload runnable in cmd
      - Fix pygresql build script
      - Replace gpload version variable
      2e292578
    • Z
      Fix lockmode issuses · 54551db4
      Zhenghua Lyu 提交于
      Lockmode of Update|Delete or Select-for-update Statement
      is controlled by: whether the table is AO or heap and the
      GUC gp_enable_global_deadlock_detector.
      
      The logic for lockmode is:
        1. Select-for-update always hold ExclusiveLock
        2. UPDATE|DELETE on AO tables always hold ExclusiveLock
        3. UPDATE|DELETE on heap tables hold ExclusiveLock when
           gp_enable_global_deadlock_detector is off, otherwise
           hold RowExclusiveLock
      
      We hold locks in parser stage and Initplan before executing,
      the lockmode should be the same at the two stages.
      
      This commit fixes lockmode issues to make things correct.
      Co-authored-by: NShujie Zhang <shzhang@pivotal.io>
      54551db4
    • D
      Docs gporca utility notice (#7630) · 26695ad3
      David Yozie 提交于
      * Docs: fixing several broken links
      
      * Docs: fixing several broken links
      
      * Adding info about GPORCA support notice
      
      * add missing comma
      26695ad3
    • T
      isolation2: Fix race condition in mirror_promotion · b946f18d
      Taylor Vesely 提交于
      Force the mirror to create a restartpoint, and as a side-effect replay
      the DROP TABLESPACE DDL before removing the tablespace directory.
      Co-authored-by: NSoumyadeep Chakraborty <sochakraborty@pivotal.io>
      b946f18d
    • S
      pg_basebackup: Fix incorrectly passing TAP test for tablespaces · a7631165
      Soumyadeep Chakraborty 提交于
      The test was intended to confirm that pg_basebackup wouldn't overwrite
      and existing tablespace directory (without --force-overwrite)
      Before: The command was failing because -1 is an invalid dbid
      Now: The command is failing as originally intended.
      Co-authored-by: NTaylor Vesely <tvesely@pivotal.io>
      a7631165
    • A
      pg_basebackup: Use new tablespace layout · ccfa3ab7
      Alexandra Wang 提交于
      The server now removes the source dbid from the end of any tablespace symlink
      target found in its response to BASE_BACKUP: This means that it removes it from
      the tablespace header as well as any tar directory entries for a given
      tablespace.  The pg_basebackup client now adds the target dbid at the end of
      the symlink target returned from the server response in order to create the
      correct symlink:
      <target_datadir>/pg_tblspc/<tablespace_oid> -> <tablespace_location>/<target_db_id>
      
      Note: All of the above is applicable to user-defined tablespaces.
      
      Also, we renamed some of the ddl objects in the isolation2 tests for
      tablespaces as they were too long. Also, reducing the length of the LOCATION
      clause of the tablespace object helped us avoid the tar header limit of 100
      characters for symlinks.
      Co-authored-by: NSoumyadeep Chakraborty <sochakraborty@pivotal.io>
      Co-authored-by: NTaylor Vesely <tvesely@pivotal.io>
      Co-authored-by: NAdam Berlin <aberlin@pivotal.io>
      ccfa3ab7
    • T
      Introduce new tablespace directory layout. · 42b915a2
      Taylor Vesely 提交于
      This commit includes changes to the server to ensure that the utilities:
      pg_rewind and pg_basebackup can be changed to support recovery in a
      multi-segment-singular-host setting. We link pg_tblspc to a <dbid>
      subdirectory of the tablespace, rather than to the path of the
      tablespace directly, and we remove the <dbid> from the tablespace
      version directory. At the same time, we have designed towards preserving
      the response to pg_tablespace_location(<tablespace_oid>) such that it
      does not return the dbid suffix. The design is such that it is the
      responsibility of the utilities to append the dbid as and when required.
      
      Before this commit:
        * the symlink to the tablespace directory looks like:
            pg_tblspc/spcoid/ -> /<tablespace_location>/
        * Under the symlink target, we would have the following:
          GPDB_MAJORVER_CATVER_db<dbid>/dboid/relfilenode
        * pg_tablespace_location(tsoid) returns: <tablespace_location>
      e.g.
        * pg_tblspc/20981/ -> /data1/tsp1
        * Under /data1/tsp1: GPDB_6_201902061_db1/19849/192814
        * pg_tablespace_location(20981) returns: /data1/tsp1
      
      After this commit:
        * the symlink to the tablespace directory looks like:
            pg_tblspc/spcoid/ -> /<tablespace_location>/<dbid>
        * Under the symlink target, we would have the following:
            GPDB_MAJORVER_CATVER/dboid/relfilenode
        * pg_tablespace_location(tsoid) returns: <tablespace_location>
      
      e.g.
        * pg_tblspc/20981/ -> /data1/tsp1/1
        * Under /data1/tsp1/1: GPDB_6_201902061/19849/192814
        * pg_tablespace_location(20981) returns: /data1/tsp1
      
      Motivation:
      
      When tablespaces were aligned to upstream postgres, while removing
      filespaces, we added the `tablespace_version_directory()` function to
      supply each segment with a unique tablespace directory name. This was
      accomplished by appending the 'magic' `GpIdentity.dbid` global variable
      to the `GP_TABLESPACE_VERSION_DIRECTORY` in `tablespace_version_directory()`.
      
      This is problematic for several reasons- but perhaps most severely is
      the fact that in order to use any code in libpgcommon.so that references
      this value, you need to first set the `GpIdentity.dbid` global,
      otherwise any functions that deal with tablespaces will be broken in
      unpredictable ways.
      
      An example is pg_rewind- where `GetRelationPath()` will not return a valid
      relation unless you repeatedly toggle the `GpIdentity.dbid` between the
      value of the source or target segment dependant on the context of which
      relfiles are being examined.
      
      This commit bumps the catalog version here we have made breaking changes
      in the tablespace filesystem layout.
      Co-authored-by: NAdam Berlin <aberlin@pivotal.io>
      Co-authored-by: NTaylor Vesely <tvesely@pivotal.io>
      Co-authored-by: NSoumyadeep Chakraborty <sochakraborty@pivotal.io>
      42b915a2
    • D
      concourse: Remove ubuntu16 build · 8af57a90
      David Sharp 提交于
      Co-authored-by: NDavid Sharp <dsharp@pivotal.io>
      Co-authored-by: NGoutam Tadi <gtadi@pivotal.io>
      8af57a90
  3. 07 5月, 2019 8 次提交
  4. 06 5月, 2019 1 次提交
    • H
      Fix auto explain init file · 1348afc0
      Hao Wu 提交于
      Fix auto_explain init file for #7195
      
      This patch includes
      
      1. fix init_file
      2. use float number for memory usage
      3. Update the last SQL whose running time may be less than 1ms
      4. Update test case: use newly created table other than pg_class
      5. Add answer file for orca & enable nestloop
      1348afc0
  5. 04 5月, 2019 4 次提交
    • H
      Add test cases for auto_explain and enable it in GNUmakefile.in (#7195) · 73ca7e77
      Hao Wu 提交于
      1. Add test cases for auto_explain
      	* Add init_file to filter out random numbers
      	* set CLIENT_MIN_MESSAGES to show `LOG` message to result file
      2. Add auto_explain item in gpdb/GNUmakefile.in
      73ca7e77
    • J
      Remove gpseginstall · 64014685
      Jamie McAtamney 提交于
      Now that the enterprise version of GPDB is only provided via RPM, including
      gpseginstall in the distribution would cause conflicts if users try to install
      GPDB with RPMs and with gpseginstall on the same cluster.  While it could be
      preserved for use by the OSS community, there are several standard tools for
      copying GPDB files to segment hosts in a cluster, and recommendations for using
      one or more of those tools will be included in the GPDB documentation.
      
      In addition to removing gpseginstall itself, this commit removes references to
      it in other utilities' documentation and removes code in gppylib that was only
      called by gpseginstall.
      Co-authored-by: NJamie McAtamney <jmcatamney@pivotal.io>
      Co-authored-by: NKalen Krempely <kkrempely@pivotal.io>
      64014685
    • A
      Zero out padding bytes for memtuple. · 0b6f15b8
      Ashwin Agrawal 提交于
      heaptuple_form_to() zero's out the buffer, so this commit does same
      for memtuple_form_to(). This is done to have zeros in padding areas
      and hence help get good compression for AO tables.
      
      This also helps to eliminate the flakiness seen in appendonly test for
      compression ratio. Now given same input the compression ratio will be
      same.
      
      Discussion:
      https://groups.google.com/a/greenplum.org/d/msg/gpdb-dev/1N5Qi-4WPis/EAIdwvy9CAAJ
      0b6f15b8
    • L
      docs - clarify pxf filter partitioning support for hive (#7580) · 4a684535
      Lisa Owen 提交于
      * docs - clarify pxf filter partitioning support for hive
      
      * clarify the hadoop cfg update content
      
      * remove cluster start
      
      * edits requested by david
      
      * remove disable statement per shivram
      4a684535
  6. 03 5月, 2019 5 次提交