1. 15 3月, 2017 7 次提交
    • D
      rebased to upstream tag REL8_4_22 (#2011) · 614ca952
      Dave Cramer 提交于
      fix tests, add init_file to ignore GPDB segment output
      use init_file from main regression tests, fix expected results
      Requires GPDB to be configure with --with-openssl to pass
      614ca952
    • D
      Fix spelling of commandline option in gpfdist · bcac963c
      Daniel Gustafsson 提交于
      bcac963c
    • H
      Use the new optimizer_trace_fallback GUC to detect ORCA fallbacks. · bb3e4b4f
      Heikki Linnakangas 提交于
      qp_olap_group2 did an elaborate dance with optimizer_log=on,
      client_min_messages=on, and gpdiff rules to detect whether the queries
      fell back to the traditional planner. Replace all that with the new simple
      optimizer_trace_fallback GUC.
      
      Also enable optimizer_trace_fallback in the 'gp_optimizer' test. Since this
      test is all about testing ORCA, seems appropriate to memorize which queries
      currently fall back and which do not, so that we detect regressions where
      we start to fall back on queries that ORCA used to be able to plan. There
      was one existing test that explicitly set client_min_messages=on, like the
      tests in qp_olap_group2, to detect fallback. I kept the those extra logging
      GUCs for that one case, so that we have some coverage for that too, although
      I'm not sure how worthwhile it is anymore.
      
      In the passing, in the one remaining test in gp_optimizer that sets
      client_min_messages='log', don't assume that log_statement is set to 'all'.
      
      Setting optimizer_trace_fallback=on for 'gp_optimizer' caught the issue
      I fixed in previous commit, that one of the ANALYZE queries still used ORCA.
      bb3e4b4f
    • H
      Disable ORCA also for the internal query to get index size. · 702d5683
      Heikki Linnakangas 提交于
      For the same reasons we disabled ORCA in all the other ANALYZE queries.
      Missed this one.
      
      I belive we don't want to use ORCA for any of the ANALYZE's internal
      queries, current or future ones, so move the disabling of ORCA one level
      up, into a wrapper around analyze_rel().
      702d5683
    • E
      Fix error in pgbouncer doc example · 2be49a69
      Eamon 提交于
      [ci skip]
      2be49a69
    • C
      Doc linkcheck (#2040) · 06062962
      Chuck Litzell 提交于
      * docs: fix broken links and permanent redirects
      
      * fix doubled slashes in URLs
      06062962
    • H
      Fix planning of a table function with an aggregate. · be4d9ca4
      Heikki Linnakangas 提交于
      add_second_stage_agg() builds a SubQueryScan, and moves the "current" plan
      underneath it. The SS_finalize_plan() call was misplaced, it needs to be
      called before constructing the new upper-level range table, because any
      references to the range table in the subplan refer to the original range
      table, not the new dummy one that only contains an entry for the
      SubQueryScan. It looks like the only thing in SS_finalize_plan() processing
      that accesses the range table is processing a TableFunctionScan. That lead
      to an assertion failure or crash, if a table function was used in a query
      with an aggregate.
      
      Fixes github issue #2033.
      be4d9ca4
  2. 14 3月, 2017 12 次提交
  3. 13 3月, 2017 7 次提交
    • A
      Right way to test in Makefile · 14f8c0da
      Adam Lee 提交于
      `-[ "$str" = "foo" ] && $(MAKE) -C bar` ignores errors while making bar,
      better to use full `if-then` clause.
      14f8c0da
    • H
      Move test case for querying pg_views, while a view is dropped. · 59eb4ac1
      Heikki Linnakangas 提交于
      I modified the test slightly, to eliminate the sleep, making the test run
      faster.
      59eb4ac1
    • H
      Remove redundant test on dropping partition constraint. · c8bb60d6
      Heikki Linnakangas 提交于
      We have a test for this in the main test suite, in the 'partition' test.
      This one:
      
      create table rank_damage (i int, j int)  partition by range(j) (start(1)
      end(10) every(1));
      -- [other tests]
      alter table rank_damage_1_prt_1 drop constraint rank_damage_1_prt_1_check;
      c8bb60d6
    • A
      Not to compile gpfdist/ext in OSes other than Windows · 59833476
      Adam Lee 提交于
      > src/bin/gpfdist/ext is a submodule, from
      > https://github.com/greenplum-db/gpfdist-ext. It contains tarballs of libapr,
      > libevent, openssl and zlib, and a bunch of patches. Why do we build gpfdist
      > like that? On my laptop, I never use those ancient, patched, versions, I
      > link with the normal libraries that come with my distribution, and it works
      > fine.
      >
      > I think that has something to do with Windows, because I also found this in
      > src/interfaces/libpq/Makefile:
      >
      > ifeq ($(PORTNAME), win32)
      > SHLIB_LINK += -L../../../../gpAux/ext/win32/kfw-3-2-2/lib
      > -L../../../src/bin/gpfdist/ext/lib -lgssapi32 -lshfolder -lwsock32 -lws2_32
      > -lsecur32 $(filter -leay32 -lssleay32 -lcomerr32 -lkrb5_32, $(LIBS))
      > endif
      >
      > But if that's only for Windows builds, why do we try to build it on Linux?
      >
      > - Heikki
      
      Thanks Heikki for bringing this up, we created a story to review the
      gpfdist/ext submodule, this commit is to remove it from other OSes first.
      59833476
    • A
      Fix a coverity issue in dblink · 8a6d38d6
      Adam Lee 提交于
      It's safe actually because the functions we created have two arguments
      at most. Fix it anyway in case three arguments functions are introduced
      in future.
      
      /tmp/build/0e1b53a0/gpdb_src/contrib/dblink/dblink.c: 241 in dblink_connect()
      
      ________________________________________________________________________________________________________
      *** CID 163942:  Null pointer dereferences  (FORWARD_NULL)
      /tmp/build/0e1b53a0/gpdb_src/contrib/dblink/dblink.c: 241 in dblink_connect()
      235      * Create a persistent connection to another database
      236      */
      237     PG_FUNCTION_INFO_V1(dblink_connect);
      238     Datum
      239     dblink_connect(PG_FUNCTION_ARGS)
      240     {
      >>>     CID 163942:  Null pointer dereferences  (FORWARD_NULL)
      >>>     Assigning: "connstr" = "NULL".
      241             char       *connstr = NULL;
      242             char       *connname = NULL;
      243             char       *msg;
      244             PGconn     *conn = NULL;
      245             remoteConn *rconn = NULL;
      246
      Signed-off-by: NAdam Lee <ali@pivotal.io>
      Signed-off-by: NYuan Zhao <yuzhao@pivotal.io>
      8a6d38d6
    • A
      Backport to fix dblink_connect() password verification · caeddd3d
      Adam Lee 提交于
      	commit cae7ad90
      	Author: Tom Lane <tgl@sss.pgh.pa.us>
      	Date:   Mon Sep 22 13:55:14 2008 +0000
      
      	    Fix dblink_connect() so that it verifies that a password is supplied in the
      	    conninfo string *before* trying to connect to the remote server, not after.
      	    As pointed out by Marko Kreen, in certain not-very-plausible situations
      	    this could result in sending a password from the postgres user's .pgpass file,
      	    or other places that non-superusers shouldn't have access to, to an
      	    untrustworthy remote server.  The cleanest fix seems to be to expose libpq's
      	    conninfo-string-parsing code so that dblink can check for a password option
      	    without duplicating the parsing logic.
      
      	    Joe Conway, with a little cleanup by Tom Lane
      caeddd3d
    • H
      Rewrite TINC tests for AO checksum failure, and move to main test suite. · c54ffe6e
      Heikki Linnakangas 提交于
      Some notable differences:
      
      * For the last "appendonly_verify_block_checksums_co" test, don't use a
        compressed table. That seems fragile.
      
      * In the "appendonly_verify_block_checksums_co" test, be more explicit in
        what is replaced. It used to scan backwards from end of file for the byte
        'a', but we didn't explicitly include that byte in the test data. What
        actually gets replaced depends heavily on how integers are encoded. (And
        the table was compressed too, which made it even more indeterministic.)
        In the rewritten test, we replace the string 'xyz', and we use a text
        field that contains that string as the table data.
      
      * Don't restore the original table file after corrupting. That seemed
        uninteresting to test. Presumably the table was OK before we corrupted
        it, so surely it's still OK after restoring it back. In theory, there
        could be a problem if the file's corrupt contents were cached somewhere,
        but we don't cache AO tables, and I'm not sure what we'd try to prove by
        testing that, anway, because swapping the file while the system is active
        is surely not supported.
      
      * The old script checked that the output when a corrupt table was SELECTed
        from contained the string "ERROR:  Header checksum does not match".
        However, half of the tests actually printed a different error, "Block
        checksum does not match". It turns out that the way the old select_table
        function asserted the result of the grep command was wrong. It should've
        done "assert(int(result) > 0), ..." rather than just "assert(result > 0),
        ...". As written, it always passed, even if there was no ERROR in the
        output. The rewritten test does not have that bug.
      c54ffe6e
  4. 12 3月, 2017 2 次提交
    • A
      Retry to check if walsender is gone after standby stop. · d907e3bb
      Ashwin Agrawal 提交于
      Tests stops standby and checks if walsender is gone along with other checks, but
      walsender may take some time to go away, hence add retry for checking. This
      makes test robust, as failurs were seen some times in CI.
      d907e3bb
    • A
      Remove negative walrep promote test. · 616cb31a
      Ashwin Agrawal 提交于
      Tests deleted the standby base directory and checked promote should fail after
      it. It would be MAGIC if that succeeds and even if does its good then, ideally
      no reason for it to go through hence deleting the test.
      616cb31a
  5. 11 3月, 2017 10 次提交
  6. 10 3月, 2017 2 次提交
    • C
      Add note about updatable cursor restriction (#1980) · 8d7e6142
      Chuck Litzell 提交于
      * Add note about updatable cursor restriction
      
      * Update/delete a single row. Remove mystery <image> tag.
      
      * Remove suggestion that cursors can be updated with a dynamic PL/pgSQL execute statement.
      
      * Edit out passive voice.
      8d7e6142
    • D
      Add extra ignored output in extern_tables suite · 4276ee8c
      Daniel Gustafsson 提交于
      The count(*) on exttab_cte_1 errorlog has failed without explanation,
      and without being reproducible, both locally and on the CI pipeline.
      Since the errorlog might hold insights into what went wrong, print it
      in an ignored block to preserve it for debugging before it's lost.
      This will include the errorlog output prefixed with GP_IGNORE in the
      regression.diffs file.
      4276ee8c