1. 10 8月, 2017 15 次提交
    • H
      Leave out some object files from mock test programs. · 9d46d892
      Heikki Linnakangas 提交于
      This cuts down the size of each test program from about 45 MB to 41 MB on
      my laptop, with debug-enabled builds. That should help to speed up the tests
      a little bit.
      9d46d892
    • H
      Replace low-level mock test with pg_regress regression test. · 748f8abe
      Heikki Linnakangas 提交于
      One less test program makes the tests to go a tiny bit faster. This also
      tests more directly the problem with the GUCs that the low-level function
      was added for, rather than the low-level function.
      
      Arguably we don't need a test for any of this at all anymore, as this fix
      for the ALTER USER RESET ALL bug was backported from PostgreSQL a long time
      ago, but at this point, we have caught up with that PostgreSQL code and
      the GPDB code is identical to the upstream. But OTOH, it's easy and quick to
      test as a pg_regress test, so might as well.
      748f8abe
    • D
      Set correct version for non-git tree releases · 816d2508
      Daniel Gustafsson 提交于
      Record the version in configure.in for releases which are not full
      Git trees.
      816d2508
    • P
      Organize all resgroup tests to the same directory · d837c305
      Pengzhou Tang 提交于
      resource group tests are messing up isolation2 directory, this commits
      move them all to the same directory to be tidy and organized, it also
      handle the sub directory in input/output directory for resgroup.
      d837c305
    • M
      DOCS: PostGIS docs - add new install script information (#2847) · 7789b1a5
      Mel Kiyama 提交于
      * DOCS: PostGIS docs - add new install script information
      
      * Updates from review.
      7789b1a5
    • J
      Docs: Updates to ANALYZE (#2901) · a5e63e92
      Jane Beckman 提交于
      a5e63e92
    • J
      Update COPY ref page with FROM ON SEGMENT (#2834) · b9e05449
      Jane Beckman 提交于
      * Preliminary changes for COPY FROM ON SEGMENT
      
      * Rework note on redistributing data
      
      * codeph tags
      
      * Review input
      
      * STDIN/STDOUT with ON SEGMENT nonsupport
      
      * Edits from David
      b9e05449
    • K
    • J
      Convert the pg_terminate_backend from TINC to ICW · 40a1e76b
      Jacob Champion 提交于
      Signed-off-by: NXin Zhang <xzhang@pivotal.io>
      40a1e76b
    • A
      Fix the non-deterministic PGTerminateBackendTincTestCase · f74755db
      Ashwin Agrawal 提交于
      Occationally, the test failed saying syntax error of pg_terminate_backend, due
      to the bug in test fetching multiple procpid if there are multiple `create temp
      table t%` statements, which do happen occationally with ORCA on separate
      slices.
      
      The fix is to always pick the oldest procpid, and also double check the process
      is the one test started. We are leveraging the new feature in
      pg_terminate_backend to provide additional message to verify the proper process
      is terminated.
      Signed-off-by: NXin Zhang <xzhang@pivotal.io>
      Signed-off-by: NJacob Champion <pchampion@pivotal.io>
      f74755db
    • J
      Revise reference doc for CREATE OPERATOR (#2867) · 99d74c7f
      Jane Beckman 提交于
      * Remove obsolete options, update syntax
      
      * Updates for merge strategy
      
      * Revise for better clarity.
      
      * Rephrasing for clarity, reformats.
      99d74c7f
    • C
      Remove deprecation from ALTER/CREATE/DROP USER commands (#2890) · 3d7032db
      Chuck Litzell 提交于
      * Remove deprecation from ALTER/CREATE/DROP USER commands
      
      * Remove deprecation/obsolete notices from CREATE/ALTER/DROP GROUP.
      3d7032db
    • O
      bec4705e
    • K
      Fix Relcache Translator to send CoercePath info (#2842) · cc799db4
      khannaekta 提交于
      Fix Relcache Translator to send CoercePath info
      
      Currently ORCA crashes while executing following query:
      ```
      CREATE TABLE FOO(a integer NOT NULL, b double precision[]);
      SELECT b FROM foo
      UNION ALL
      SELECT ARRAY[90, 90] as Cont_features;
      ```
      
      In the query, we are appending an integer array (ARRAY[90, 90]) to a double
      precision array (foo.b) and hence we need to apply a cast on ARRAY[90, 90] to
      generate ARRAY[90, 90]::double precision[].
      In gpdb5 there is not direct function available that can cast array of any type
      to array of any other type.
      So in relcache to dxl translator we look into the array elements and get their type
      and try to find a cast function for them.  For this query, source type is 23 i.e.
      integer and destination type is 701 i.e. double precision and we try to find if
      we have a conversion function for 23 -> 701. Since that is available we send
      that function to ORCA as follows:
      ```
      <dxl:MDCast Mdid="3.1007.1.0;1022.1.0"
      Name="float8" BinaryCoercible="false" SourceTypeId="0.1007.1.0"
      DestinationTypeId="0.1022.1.0" CastFuncId="0.316.1.0"/>
      ```
      Here we are misinforming ORCA by specifying that function with id 316 is available
      to convert type 1007 i.e. integer array to 1022 i.e. double precision array.
      However Function id 316 is simple int4 to float8 conversion function and it CAN NOT
      convert an array of int4 to array of double precision. ORCA generates a plan
      using this function but executor crashes while executing this function because
      this function can not handle arrays.
      
      This commit fixes this issue by passing a ArrayCoercePath info to ORCA.
      In Relcache Translator, The appropriate cast function is retrieved in `gpdb::FCastFunc()`
      which relies on `find_coercion_pathway()` to provide the cast function oid given the src
      and dest types.
      
      `find_coercion_pathway()` does not just determines the cast function to be used but
      also determines the coercion path; however we ignored the coercision path
      and generate a simple Cast Metadata Object.
      
      With this commit, we now pass the pathtype to relcache translator and
      generate ArrayCoerceCast Metadata object depending on the coercion path.
      
      In ORCA, when the dxl is translated to expression, we check the path type along with
      the cast function and generate `CScalarArrayCoerceExpr` if the path type is
      array coerce path; otherwise we generate simple `CScalaraCast`.
      
      Please check the corresponding ORCA PR.
      
      Bump ORCA version to 2.40
      Signed-off-by: NBhuvnesh Chaudhary <bchaudhary@pivotal.io>
      cc799db4
    • H
      Also restore gpdiff rule to ignore differences in PIDs. · e4cd1422
      Heikki Linnakangas 提交于
      I don't understand why gpdiff didn't pick this rule up from the
      src/test/regress/init_file file. But this seems to fix it, so let's get this
      in for now, to make the pipeline green.
      e4cd1422
  2. 09 8月, 2017 24 次提交
    • H
      Restore gpdiff ignore rules for gpfaultinjector in isolation2 suite. · f2244273
      Heikki Linnakangas 提交于
      Commit f52fbe57 removed these gpdiff rules rules from src/test/regress,
      because all the tests there now use the gp_inject_fault extension instead
      of the gpfaultinjector command-line tool. But I didn't realize that the
      isolation2 test suite shares the same ignore rules, and they still use
      gpfaultinjector.
      f2244273
    • D
      Remove unused headers from orca_debug contrib module · d6299287
      Daniel Gustafsson 提交于
      The gpos version.h header is no longer installed, and the inclusion
      thus caused a compiler error. The gpopt header is still available,
      however the contents of which isn't actually used in orca_debug so
      remove that as well.
      d6299287
    • H
      Replace gpfaultinject binary with gp_inject_fault extension in tests. · 5104ca08
      Heikki Linnakangas 提交于
      This replaces all places in regression tests, where the gpfaultinject binary
      was used, with the SQL-callable function in the new gp_inject_fault
      extension. The SQL function is more forgivin about the dev environemnt, and
      doesn't need gpfaultinject to be in $PATH, for starters. Also, it's just
      good to harmonize and have just one way of injecting faults.
      
      More uses of gpfaultinject remain in the TINC tests, so we cannot get rid
      of it any time soon, but this is a step in that direction, anyway.
      5104ca08
    • H
      Enhance gp_inject_fault. · f52fbe57
      Heikki Linnakangas 提交于
      * Turn it into an extension, for easier installation.
      
      * Add a simpler variant of the gp_inject_fault function, with less options.
        This is applicable to almost all the calls in the regression suite, so it's
        nice to make them less verbose.
      
      * Change the dbid argument from smallint to int4. For convenience, so that
        you don't need a cast when calling the function.
      f52fbe57
    • P
      Include gp-libpq-int.h in cdbcopy.c · fdb5d6c3
      Pengzhou Tang 提交于
      cf7cddf7 has conflict with cc38f526, struct PQExpBufferData is
      needed by structure SegmentDatabaseDescriptor, so bring gp-libpq-int.h back
      fdb5d6c3
    • P
      Do not include gp-libpq-fe.h and gp-libpq-int.h in cdbconn.h · cf7cddf7
      Pengzhou Tang 提交于
      The whole cdb directory was shipped to end users and all header files
      that cdb*.h included are also need to be shipped to make checkinc.py
      pass. However, exposing gp_libpq_fe/*.h will confuse customer because
      they are almost the same as libpq/*, as Heikki's suggestion, we should
      keep gp_libpq_fe/* unchanged. So to make system work, we include
      gp-libpg-fe.h and gp-libpq-int.h directly in c files that need them
      cf7cddf7
    • P
      Install src/include/cdb server-side dev · ae759a5d
      Pengzhou Tang 提交于
      Formarly, GPDB are not allowed to expose gpdb-specified headers in
      cdb to the end users, so some public headers depend
      on those headers need to do some additional work like re-typedef,
      adjusting the header order in c files to pass checkinc.py. Now the
      limitation is unnecessary, so we expose them too for relief.
      cdbicudpfaultinjection.h may include sys/poll.h, so add it to the
      hard code standard includes
      ae759a5d
    • P
      Add debug info for interconnect network timeout · 9a9cd48b
      Pengzhou Tang 提交于
      It was very difficult to verify if interconnect is stucked in resending
      phase or if there is udp resending latency within interconnect. To improve
      it, this commit record a debug message every Gp_interconnect_debug_retry_interval
      times when gp_log_interconnect is set to DEBUG.
      9a9cd48b
    • P
      Fix intermittent testcase as_alias · e2e852d4
      Pengzhou Tang 提交于
      This case assumed that 'now' in bellow queries will produce
      different results.
      -- insert into xxx values (timestamp(2) without time zone 'now');
      -- select timestamp(2) without time zone 'now';
      However, the results are undetermined and may be equal on powerful
      agents, the test is all about as alias so it's ok to add 2 seconds
      to the second 'now' to guarantee they are never equal.
      e2e852d4
    • B
      [#149699023] Handle interrupts in ORCA to avoid crashes · 17322684
      Bhuvnesh Chaudhary 提交于
      In ORCA, we donot process interrupts during planning stage, however
      if there are elog/ereport (which further calls errfinish) statements to
      print additional messages we prematurely exit out the planning stage
      without cleaning up the memory pools leading to inconsistent memory pool
      state. This results in crashes for the subsequent queries.
      
      This commit fixes the issue by handling interrupts while
      printing messages using elog/ereport in ORCA.
      Signed-off-by: NEkta Khanna <ekhanna@pivotal.io>
      17322684
    • M
      gpinitsystem: Fix gpinitsystem -I with mixed case names · ae86afac
      Marbin Tan 提交于
      We are hitting an issue where gpinitsystem sends a gpstop command that
      has the data directory in all lower case. This causes an issue in
      Linux, but is fine with macOS; linux platforms are case sensitive vs
      macOS is not.
      
      Remove the lower casing part of the code as it doesn't seem necessary.
      gpinitsystem -c command eventually overwrites the SEG_PREFIX variable in a
      different function to use the mixed case, while the gpinitsystem -I does not.
      
      Fix: keep the mixed case segment names
      ae86afac
    • X
      Add behave test for gpinitsystem to CI · 3e96667f
      Xin Zhang 提交于
      Signed-off-by: NMarbin Tan <mtan@pivotal.io>
      3e96667f
    • S
      Adds HEAP_CHECKSUM functionality to gpinitsystem · 71c62b2c
      Shoaib Lari 提交于
      gpinitsystem did not check for HEAP_CHECKSUM in the cluster
      configuration file with a -c switch. This commit accepts the
      HEAP_CHECKSUM setting, and additionally exports it to an
      output_configuration_file when specified with the -O switch.
      
      This commit also adds behave tests for the above, and for
      reading the input_configuration_file with the -I switch.
      Signed-off-by: NLarry Hamel <lhamel@pivotal.io>
      Signed-off-by: NXin Zhang <xzhang@pivotal.io>
      71c62b2c
    • L
      add MM_analyzedb task to concourse · 213aaff2
      Larry Hamel 提交于
      Signed-off-by: NNadeem Ghani <nghani@pivotal.io>
      213aaff2
    • N
      Synchronize writes for concurrent analyzedb runs · 75e0070d
      Nadeem Ghani 提交于
      Bug fix for a scenario with multiple analyzedb processes running
      concurrently: the resulting report files were incorrect and/or
      overwritten.
      
      This commit adds a lock (a file semaphore) for synchronization between analyzedb processes.
      Each process will acquire an exclusive lock, per database, read the most recent report
      files (possibly written by concurrently running analyzedb processes) and
      incorporate that latest information into its own report.
      Signed-off-by: NLarry Hamel <lhamel@pivotal.io>
      75e0070d
    • L
      Whitespace reformat and handle lint warnings · 3040c387
      Larry Hamel 提交于
      Signed-off-by: NNadeem Ghani <nghani@pivotal.io>
      Signed-off-by: NLarry Hamel <lhamel@pivotal.io>
      3040c387
    • H
      Whitespace fixes, to remove unnecessary differences from upstream. · a14fa2f5
      Heikki Linnakangas 提交于
      Will hopefully reduce silly merge conflicts in the future.
      a14fa2f5
    • H
      Remove list_find_* functions. · 0340f543
      Heikki Linnakangas 提交于
      They don't exist in the upstream. All but one of the callers actually just
      needed list_member_*().
      0340f543
    • H
      Move function prototype to where it belongs. · 15ae5084
      Heikki Linnakangas 提交于
      These functions are defined in cdbpartition.c, not tablecmds.c. The
      prototypes should be in matching header file.
      15ae5084
    • H
      Remove unnecessary #includes · 4d573999
      Heikki Linnakangas 提交于
      4d573999
    • H
      Remove unused function. · 9637bb1d
      Heikki Linnakangas 提交于
      9637bb1d
    • H
      Remove unnecessary forward declarations. · 06719101
      Heikki Linnakangas 提交于
      To match the upstream code.
      06719101
    • H
      Set Natts_pg_appendonly correctly. · 25001e8a
      Heikki Linnakangas 提交于
      Seems harmless, in this direction, but let's be tidy.
      25001e8a
    • H
      Replace special "QE details" protocol message with standard ParameterStatus msg. · d85257f7
      Heikki Linnakangas 提交于
      This gets rid of the GPDB-specific "QE details" message, that was only sent
      once at QE backend startup, to notify the QD about the motion listener port
      of the QE backend. Use a standard ParameterStatus message instead, pretending
      that there is a GUC called "qe_listener_port". This reduces the difference
      between the gp_libpq_fe copy of libpq, and libpq proper. I have a dream that
      one day we will start using the standard libpq also for QD-QE communication,
      and get rid of the special gp_libpq_fe copy altogether, and this is a small
      step in that direction.
      
      In the passing, change the type of Gp_listener_port variable from signed to
      unsigned. Gp_listener_port actually holds two values: the TCP and UDP
      listener ports, and there is bit-shifting code to store those two 16-bit
      port numbers in the single 32-bit integer. But the bit-shifting was a bit
      iffy, on a signed integer. Making it unsigned makes it more clear what's
      happening.
      d85257f7
  3. 08 8月, 2017 1 次提交