1. 16 2月, 2018 1 次提交
    • A
      Update answer files in vacuumFaults TINC tests. · f0021af6
      Asim R P 提交于
      The source file and line number is removed from the answer files because
      of a code change that replaced elog(ERROR) with ereport(ERROR) in commit
      89b4365e.
      
      Also removed the step to create extension for fault injector from
      setUp() method.  That was causing the check_connection() method to
      report assert failure if master was recovering from PANIC.
      
      This is a quick fix to make the CI green.  The tests need to be moved
      from TINC to isolation2 but that's a separate commit.
      f0021af6
  2. 15 2月, 2018 11 次提交
  3. 14 2月, 2018 8 次提交
  4. 13 2月, 2018 2 次提交
  5. 12 2月, 2018 4 次提交
  6. 10 2月, 2018 1 次提交
  7. 09 2月, 2018 11 次提交
    • H
      Merge with PostgreSQL 9.0devel, to the point just before Hot Standby. · 5ec5c30a
      Heikki Linnakangas 提交于
      This is the first batch of commits from PostgreSQL 9.0. This takes us almost
      up to 8.5alpha3, to the point just before the Hot Standby commit. (The
      development branch was labeled 8.5devel at the time, because it was decided
      only later in the release cycle, to bump the version number to 9.0.)
      
      Notable upstream changes in this batch, from a GPDB point of view:
      
      * EXPLAIN code was heavily refactored. You can now specify JSON (or YAML
        or XML) format output. To make that work with all the GPDB addons and
        changes to EXPLAIN, cdbexplain.c was moved to
        src/backend/commands/explain_gp.c, and it is now #included from
        explain.c. In EXPLAIN ANALYZE, the actual costs and row counts are now
        printed on the same line as the estimated costs, like in upstream,
        instead of separate lines with "Rows in" and "Rows Out" etc. fields.
        A lot of the extra GPDB information printed in the text format, is not
        yet present in the JSON or other formats. Some GPDB specific information
        which was previously always printed, now requires EXPLAIN (VERBOSE). The
        work remaining on this refactoring is to convert the GPDB EXPLAIN GUCs to
        EXPLAIN options, and to ensure that the formats are valid when these
        options are turned on.
      
      * EXPLAIN (COSTS OFF) option was added. We could start using this in all
        the GPDB-added tests too, that currently rely on 'gpdiff' to mask out the
        costs from the plans.
      
      * Deferred unique constraints. These work, but if a deferred constraint
        violation is caught at COMMIT time, the error message is not very nice.
        To fix that, some work is required in the error handling of errors during
        distributed commit.
      
      * PL/python test files were rearranged. This required moving around quite a
        few GPDB-added parts, too.
      
      * So-called "flat files", used internally to store information about
        crucial catalog tables like pg_database and pg_authid, were removed. We
        had also used a flat file for the GPDB-specific 'pg_auth_time_constraint'
        catalog, so the code to enforce those time constraints had to be
        rewritten accordingly, to also not use a flat file. As a result, you no
        longer get the "WARNING: time constraints added on superuser role"
        message when you modify the pg_auth_time_constraints table directly DML
        commands, instead of the normal ALTER ROLE commands.
      
      * Another side-effect of the "flat file" removal was that the
        in-shared-memory values for XID wraparound limits, xidWarnLimit and
        xidStopLimit, are no longer updated at postmaster startup, nor when a
        database is DROPped or CREATEd. They used to be updated whenever the flat
        file was updated, but now it's only done at a VACUUM. That required
        adding additional VACUUM commands to the 'xid_limits' TINC test. It's a
        bit questionable, whether the behaviour, when a new database is created
        from 'template0' is appropriate anymore. But refactoring all that is a
        bigger, and separate, job. (In the upstream, autovacuum takes care of
        vacuuming template0, and also takes care of updating the in-memory limits
        soon after postmaster startup.)
      
      * DML commands are now handled by adding a ModifyTable node on top of the
        plan. We had quite a few GPDB-specific changes in the ExecInsert /
        ExecUpdate / ExecDelete code, that was now moved to be part of the
        ModifyTable implementation. The new ModifyTable node is very similar to
        the DML node used by ORCA-generated plans. In the future, we should
        remove the DML node type, and use the normal ModifyTable node in ORCA
        plans as well. Similarly, locking of rows in FOR SHARE/UPDATE queries, as
        well as actual UPDATEs, is now handled by the new LockRows node type.
      
      * bytea_output default changed to 'hex'. We had already backported the
        bytea_output setting, but left the default to 'escape'. It is now
        changed to 'hex'. That caused quite a few changes in expected outputs.
      
      * Whitespace is now significant in regression test output. This required
        fixing quite a expected output files. Most of this was done already as
        separate commits before this merge, but there was still plenty left here.
      
      * psql now prints newlines in datums differently. We had already
        backported the code for the new format from 9.1, along with all the rest
        of psql code, but now the default is changed to the new format.
      
      This merge also includes cherry-picks of some upstream commits from later
      in the 9.0 series, or from later PostgreSQL versions, mostly to fix bugs
      that the regression tests happened to hit:
      
      * Update PL/perl tests for multi-dimensional arrays, to match PostgreSQL
        v10. We had backported the feature earlier, so let's keep the tests in
        sync. Also update one related error message to match upstream.
      
      * To fix join removal bugs, src/backend/optimizer/plan/analyzejoins.c was
        cherry-picked in whole from the tip of Postgres REL9_0_STABLE branch.
        Also, commits b78f6264 and bab9f1d.
      
      * Commit c45841f, to fix bug with whole-row references to append subplans.
      
      * Commit 894fc6b7, to fix bug in aclexplode function.
      
      * Commit ea46000a, to "Arrange for client authentication to occur before we
        select a specific database to connect to". We had backported this earlier
        already, this brings in more parts that are now applicable to GPDB. This
        allows us to remove some hacks in place that worked around the lack of
        BKI_ROWTYPE_OID, which we now have.
      
      * Commit b220b5a, to avoid crashing when we have problems unlinking files
        post-commit.
      
      Co-Author: Jacob Champion <pchampion@pivotal.io>
      Co-Author: Daniel Gustafsson <dgustafsson@pivotal.io>
      Co-Author: Max Yang <myang@pivotal.io>
      Co-Author: Xiaoran Wang <xiwang@pivotal.io>
      5ec5c30a
    • H
      Remove the custom_variable_classes parameter. · 4237a7a5
      Heikki Linnakangas 提交于
      In the upcoming PostgreSQL 9.0 merge, validating the custom variable
      classes was causing grief in with the new plpgsql.variable_conflict GUC.
      If you set that GUC after loading plpgsql in the QD, plpgsql migh still not
      be loaded in QE processes. If the GUC was changed in the QD, the QD would
      dispatch the new value to QE processes, which threw an error because the
      'plpgsql' custom variable class was not defined.
      
      In principle, we would have the same problem with any other GUC added by
      a loadable module.
      
      To fix,  cherry-pick upstream commit from 9.2, to remove the GUC and the
      validation of custom variable classes altogether. Might as well do that
      now, rather than make some temporary work-arounds, since it's a sensible
      change that we'll get eventually from upstream anyway.
      
      Upstream commit:
      
      commit 1a00c0ef
      Author: Tom Lane <tgl@sss.pgh.pa.us>
      Date:   Tue Oct 4 12:36:18 2011 -0400
      
          Remove the custom_variable_classes parameter.
      
          This variable provides only marginal error-prevention capability (since
          it can only check the prefix of a qualified GUC name), and the consensus
          is that that isn't worth the amount of hassle that maintaining the setting
          creates for DBAs.  So, let's just remove it.
      
          With this commit, the system will silently accept a value for any qualified
          GUC name at all, whether it has anything to do with any known extension or
          not.  (Unqualified names still have to match known built-in settings,
          though; and you will get a WARNING at extension load time if there's an
          unrecognized setting with that extension's prefix.)
      
          There's still some discussion ongoing about whether to tighten that up and
          if so how; but if we do come up with a solution, it's not likely to look
          anything like custom_variable_classes.
      4237a7a5
    • H
      Refactor the way Semi-Joins plans are constructed. · d4ce0921
      Heikki Linnakangas 提交于
      This removes much of the GPDB machinery to handle "deduplication paths"
      within the planner. We will now use the upstream code to build JOIN_SEMI
      paths, as well as paths where the outer side of the join is first
      deduplicated (JOIN_UNIQUE_OUTER/INNER).
      
      The old style "join first and deduplicate later" plans can be better in
      some cases, however. To still be able to generate such plan, add new
      JOIN_DEDUP_SEMI join type, which is transformed into JOIN_INNER followed
      by the deduplication step after the join, during planning.
      
      This new way of constructing these plans is simpler, and allows removing
      a bunch of code, and reverting some more code to the way it is in the
      upstream.
      
      I'm not sure if this can generate the same plans that the old code could,
      in all cases. In particular, I think the old "late deduplication"
      mechanism could delay the deduplication further, all the way to the top of
      the join tree. I'm not sure when that woud be useful, though, and the
      regression suite doesn't seem to contain any such cases (with EXPLAIN). Or
      maybe I misunderstood the old code. In any case, I think this is good
      enough.
      d4ce0921
    • H
      Remove pg_autovacuum.h, left over from PostgreSQL 8.4 merge. · 9446aafa
      Heikki Linnakangas 提交于
      This was removed in PostgreSQL 8.4 already, but we failed to remove it
      during the 8.4 merge, apparently. It wasn't used for anything anymore.
      9446aafa
    • H
      Fix more whitespace in tests, mostly in expected output. · 93b92ca4
      Heikki Linnakangas 提交于
      Commit ce3153fa, about to be merged from PostgreSQL 9.0 soon, removes
      the -w option from pg_regress's "diff" invocation. That commit will fix
      all the PostgreSQL regression tests to pass without it, but we need to
      also fix all the GPDB tests. That's what this commit does.
      
      I did much of this in commit 06a2bb64, but now that we're about to
      actually merge that, more cases popped up.
      
      Co-Author: Daniel Gustafsson <dgustafsson@pivotal.io>
      93b92ca4
    • W
      Fix flaky test in isolation2/instr_in_shmem_terminate (#4522) · 8d258b89
      Wang Hao 提交于
      Add sleep 1s after send cancel signal
      8d258b89
    • H
      Remove tests on default_storage_parameters GUC in different contexts. · 2a0eab5b
      Heikki Linnakangas 提交于
      It's a GUC, like any other. Testing that it's set correctly in every
      possible context, when set to a user, when set on a database, etc., seems
      excessive.
      
      Also, if by some freak incident the GUC is set incorrectly, the
      consequences are not very serious. The table just gets created with wrong
      parameters, but it's still a valid table, and if you look at it with e.g.
      \d, you will see the options actually used.
      2a0eab5b
    • A
      CI: Fix storage job. · e172fa19
      Ashwin Agrawal 提交于
      [ci skip]
      e172fa19
    • A
      TINC: Delete make target aocoalter_catalog_loaders. · 2738ccb3
      Ashwin Agrawal 提交于
      Delete udf_exception_handling tinc tests.
      
      Also remove tinc stage from CI `aocoalter_catalog_loaders`. Majority
      of tests from this group has been moved to ICW and remaining ones are
      now part of generic `make storage` target.
      2738ccb3
    • A
      Move udf exception handling tests from tinc to ICW. · 02814cc8
      Ashwin Agrawal 提交于
      Simplified the tests by setting the GUCs at session level instead of
      reloads. Also removed creating tables with index, sequence etc as not
      needed for these tests.
      
      So, same coverage is achieved with ICW in 15 secs vs older version
      taking 15 mins in TINC.
      02814cc8
    • J
      concourse: Remove extra on_failure from template pipeline · 9108acbb
      Jim Doty 提交于
      Co-Author: Kevin Yeap <kyeap@pivotal.io>
      Co-Author: Nadeem Ghani <nghani@pivotal.io>
      Co-Author: Jim Doty <jdoty@pivotal.io>
      9108acbb
  8. 08 2月, 2018 2 次提交