1. 21 Sep, 2016 1 commit
    • Heikki Linnakangas's avatar
      Fix pgbench's calculation of average latency, when -T is not used. · 65c65563
      Heikki Linnakangas authored
      If the test duration was given in # of transactions (-t or no option),
      rather as a duration (-T), the latency average was always printed as 0.
      It has been broken ever since the display of latency average was added,
      in 9.4.
      
      Fabien Coelho
      
      Discussion: <alpine.DEB.2.20.1607131015370.7486@sto>
      65c65563
  2. 20 Sep, 2016 7 commits
  3. 19 Sep, 2016 4 commits
  4. 18 Sep, 2016 1 commit
    • Heikki Linnakangas's avatar
      Fix ecpg -? option on Windows, add -V alias for --version. · 3fcc98c9
      Heikki Linnakangas authored
      This makes the -? and -V options work consistently with other binaries.
      --help and --version are now only recognized as the first option, i.e.
      "ecpg --foobar --help" no longer prints the help, but that's consistent
      with most of our other binaries, too.
      
      Backpatch to all supported versions.
      
      Haribabu Kommi
      
      Discussion: <CAJrrPGfnRXvmCzxq6Dy=stAWebfNHxiL+Y_z7uqksZUCkW_waQ@mail.gmail.com>
      3fcc98c9
  5. 16 Sep, 2016 1 commit
    • Tom Lane's avatar
      Add debugging aid "bmsToString(Bitmapset *bms)". · d8c61c97
      Tom Lane authored
      This function has no direct callers at present, but it's convenient for
      manual use in a debugger, rather than having to inspect memory and do
      bit-counting in your head.
      
      In passing, get rid of useless outBitmapset() wrapper around
      _outBitmapset(); let's just export the function that does the work.
      Likewise for outToken().
      
      Ashutosh Bapat, tweaked a bit by me
      
      Discussion: <CAFjFpRdiht8e1HTVirbubr4YzaON5iZTzFJjq909y4sU8M_6eA@mail.gmail.com>
      d8c61c97
  6. 15 Sep, 2016 7 commits
    • Robert Haas's avatar
      Clarify policy on marking inherited constraints as valid. · 5225c663
      Robert Haas authored
      Amit Langote and Robert Haas
      5225c663
    • Heikki Linnakangas's avatar
      Fix building with LibreSSL. · 5c6df67e
      Heikki Linnakangas authored
      LibreSSL defines OPENSSL_VERSION_NUMBER to claim that it is version 2.0.0,
      but it doesn't have the functions added in OpenSSL 1.1.0. Add autoconf
      checks for the individual functions we need, and stop relying on
      OPENSSL_VERSION_NUMBER.
      
      Backport to 9.5 and 9.6, like the patch that broke this. In the
      back-branches, there are still a few OPENSSL_VERSION_NUMBER checks left,
      to check for OpenSSL 0.9.8 or 0.9.7. I left them as they were - LibreSSL
      has all those functions, so they work as intended.
      
      Per buildfarm member curculio.
      
      Discussion: <2442.1473957669@sss.pgh.pa.us>
      5c6df67e
    • Robert Haas's avatar
      Fix typo in comment. · ffccee47
      Robert Haas authored
      Amit Langote
      ffccee47
    • Tom Lane's avatar
      Make min_parallel_relation_size's default value platform-independent. · 5472ed3e
      Tom Lane authored
      The documentation states that the default value is 8MB, but this was
      only true at BLCKSZ = 8kB, because the default was hard-coded as 1024.
      Make the code match the docs by computing the default as 8MB/BLCKSZ.
      
      Oversight in commit 75be6646, noted pursuant to a gripe from Peter E.
      
      Discussion: <90634e20-097a-e4fd-67d5-fb2c42f0dd71@2ndquadrant.com>
      5472ed3e
    • Robert Haas's avatar
      pg_buffercache: Allow huge allocations. · 8a503526
      Robert Haas authored
      Otherwise, users who have configured shared_buffers >= 256GB won't
      be able to use this module.  There probably aren't many of those, but
      it doesn't hurt anything to fix it so that it works.
      
      Backpatch to 9.4, where MemoryContextAllocHuge was introduced.  The
      same problem exists in older branches, but there's no easy way to
      fix it there.
      
      KaiGai Kohei
      8a503526
    • Heikki Linnakangas's avatar
      Support OpenSSL 1.1.0. · 593d4e47
      Heikki Linnakangas authored
      Changes needed to build at all:
      
      - Check for SSL_new in configure, now that SSL_library_init is a macro.
      - Do not access struct members directly. This includes some new code in
        pgcrypto, to use the resource owner mechanism to ensure that we don't
        leak OpenSSL handles, now that we can't embed them in other structs
        anymore.
      - RAND_SSLeay() -> RAND_OpenSSL()
      
      Changes that were needed to silence deprecation warnings, but were not
      strictly necessary:
      
      - RAND_pseudo_bytes() -> RAND_bytes().
      - SSL_library_init() and OpenSSL_config() -> OPENSSL_init_ssl()
      - ASN1_STRING_data() -> ASN1_STRING_get0_data()
      - DH_generate_parameters() -> DH_generate_parameters()
      - Locking callbacks are not needed with OpenSSL 1.1.0 anymore. (Good
        riddance!)
      
      Also change references to SSLEAY_VERSION_NUMBER with OPENSSL_VERSION_NUMBER,
      for the sake of consistency. OPENSSL_VERSION_NUMBER has existed since time
      immemorial.
      
      Fix SSL test suite to work with OpenSSL 1.1.0. CA certificates must have
      the "CA:true" basic constraint extension now, or OpenSSL will refuse them.
      Regenerate the test certificates with that. The "openssl" binary, used to
      generate the certificates, is also now more picky, and throws an error
      if an X509 extension is specified in "req_extensions", but that section
      is empty.
      
      Backpatch to all supported branches, per popular demand. In back-branches,
      we still support OpenSSL 0.9.7 and above. OpenSSL 0.9.6 should still work
      too, but I didn't test it. In master, we only support 0.9.8 and above.
      
      Patch by Andreas Karlsson, with additional changes by me.
      
      Discussion: <20160627151604.GD1051@msg.df7cb.de>
      593d4e47
    • Heikki Linnakangas's avatar
      Fix and clarify comments on replacement selection. · c99dd5bf
      Heikki Linnakangas authored
      These were modified by the patch to only use replacement selection for the
      first run in an external sort.
      c99dd5bf
  7. 14 Sep, 2016 4 commits
  8. 13 Sep, 2016 7 commits
    • Tom Lane's avatar
      Be pickier about converting between Name and Datum. · 55c3391d
      Tom Lane authored
      We were misapplying NameGetDatum() to plain C strings in some places.
      This worked, because it was just a pointer cast anyway, but it's a type
      cheat in some sense.  Use CStringGetDatum instead, and modify the
      NameGetDatum macro so it won't compile if applied to something that's
      not a pointer to NameData.  This should result in no changes to
      generated code, but it is logically cleaner.
      
      Mark Dilger, tweaked a bit by me
      
      Discussion: <EFD8AC94-4C1F-40C1-A5EA-304080089C1B@gmail.com>
      55c3391d
    • Tom Lane's avatar
      Fix executor/README to reflect disallowing SRFs in UPDATE. · fdc79e19
      Tom Lane authored
      The parenthetical comment here is obsoleted by commit a4c35ea1.
      Noted by Andres Freund.
      fdc79e19
    • Tom Lane's avatar
      Improve parser's and planner's handling of set-returning functions. · a4c35ea1
      Tom Lane authored
      Teach the parser to reject misplaced set-returning functions during parse
      analysis using p_expr_kind, in much the same way as we do for aggregates
      and window functions (cf commit eaccfded).  While this isn't complete
      (it misses nesting-based restrictions), it's much better than the previous
      error reporting for such cases, and it allows elimination of assorted
      ad-hoc expression_returns_set() error checks.  We could add nesting checks
      later if it seems important to catch all cases at parse time.
      
      There is one case the parser will now throw error for although previous
      versions allowed it, which is SRFs in the tlist of an UPDATE.  That never
      behaved sensibly (since it's ill-defined which generated row should be
      used to perform the update) and it's hard to see why it should not be
      treated as an error.  It's a release-note-worthy change though.
      
      Also, add a new Query field hasTargetSRFs reporting whether there are
      any SRFs in the targetlist (including GROUP BY/ORDER BY expressions).
      The parser can now set that basically for free during parse analysis,
      and we can use it in a number of places to avoid expression_returns_set
      searches.  (There will be more such checks soon.)  In some places, this
      allows decontorting the logic since it's no longer expensive to check for
      SRFs in the tlist --- so I made the checks parallel to the handling of
      hasAggs/hasWindowFuncs wherever it seemed appropriate.
      
      catversion bump because adding a Query field changes stored rules.
      
      Andres Freund and Tom Lane
      
      Discussion: <24639.1473782855@sss.pgh.pa.us>
      a4c35ea1
    • Robert Haas's avatar
      Have heapam.h include lockdefs.h rather than lock.h. · 445a38ab
      Robert Haas authored
      lockdefs.h was only split from lock.h relatively recently, and
      represents a minimal subset of the old lock.h.  heapam.h only needs
      that smaller subset, so adjust it to include only that.  This requires
      some corresponding adjustments elsewhere.
      
      Peter Geoghegan
      445a38ab
    • Andres Freund's avatar
      Remove user_relns() SRF from regression tests. · 0dba54f1
      Andres Freund authored
      The output of the function changes whenever previous (or, as in this
      case, concurrent) tests leave a table in place. That causes unneeded
      churn.
      
      This should fix failures due to the tests added bfe16d1a, like on
      lapwing, caused by the tsrf test running concurrently with misc. Those
      could also have been addressed by using temp tables, but that test has
      annoyed me before.
      
      Discussion: <27626.1473729905@sss.pgh.pa.us>
      0dba54f1
    • Andres Freund's avatar
      9f478b4f
    • Andres Freund's avatar
      Add more tests for targetlist SRFs. · bfe16d1a
      Andres Freund authored
      We're considering changing the implementation of targetlist SRFs
      considerably, and a lot of the current behaviour isn't tested in our
      regression tests. Thus it seems useful to increase coverage to avoid
      accidental behaviour changes.
      
      It's quite possible that some of the plans here will require adjustments
      to avoid falling afoul of ordering differences (e.g. hashed group
      bys). The buildfarm will tell us.
      
      Reviewed-By: Tom Lane
      Discussion: <20160827214829.zo2dfb5jaikii5nw@alap3.anarazel.de>
      bfe16d1a
  9. 12 Sep, 2016 5 commits
    • Tom Lane's avatar
      Docs: assorted minor cleanups. · 42fd984c
      Tom Lane authored
      Standardize on "user_name" for a field name in related examples in
      ddl.sgml; before we had variously "user_name", "username", and "user".
      The last is flat wrong because it conflicts with a reserved word.
      
      Be consistent about entry capitalization in a table in func.sgml.
      
      Fix a typo in pgtrgm.sgml.
      
      Back-patch to 9.6 and 9.5 as relevant.
      
      Alexander Law
      42fd984c
    • Peter Eisentraut's avatar
      pg_basebackup: Clean created directories on failure · 9083353b
      Peter Eisentraut authored
      Like initdb, clean up created data and xlog directories, unless the new
      -n/--noclean option is specified.
      
      Tablespace directories are not cleaned up, but a message is written
      about that.
      Reviewed-by: default avatarMasahiko Sawada <sawada.mshk@gmail.com>
      9083353b
    • Kevin Grittner's avatar
      Fix recent commit for tab-completion of database template. · 63c1a871
      Kevin Grittner authored
      The details of commit 52803098 were
      based on a misunderstanding of the role inheritance allowing use
      of a database for a template.  While the CREATEDB privilege is not
      inherited, the database ownership is privileges are.
      
      Pointed out by Vitaly Burovoy and Tom Lane.
      Fix provided by Tom Lane, reviewed by Vitaly Burovoy.
      63c1a871
    • Simon Riggs's avatar
      Fix copy/pasto in file identification · 4068eb99
      Simon Riggs authored
      Daniel Gustafsson
      4068eb99
    • Simon Riggs's avatar
      Identify walsenders in pg_stat_activity · fc3d4a44
      Simon Riggs authored
      Following 8299471c walsender procs are now visible in pg_stat_activity.
      Set query to ‘walsender’ for walsender procs to allow them to be identified.
      
      Discussion:CAB7nPqS8c76KPSufK_HSDeYrbtg+zZ7D0EEkjeM6txSEuCB_jA@mail.gmail.com
      
      Michael Paquier, issue raised by Fujii Masao, reviewed by Tom Lane
      fc3d4a44
  10. 11 Sep, 2016 3 commits
    • Simon Riggs's avatar
      Raise max setting of checkpoint_timeout to 1d · c3c0d7bd
      Simon Riggs authored
      Previously checkpoint_timeout was capped at 3600s
      New max setting is 86400s = 24h = 1d
      
      Discussion: 32558.1454471895@sss.pgh.pa.us
      c3c0d7bd
    • Kevin Grittner's avatar
      psql tab completion for CREATE DATABASE ... TEMPLATE ... · 52803098
      Kevin Grittner authored
      Sehrope Sarkuni, reviewed by Merlin Moncure & Vitaly Burovoy
      with some editing by me
      52803098
    • Tom Lane's avatar
      Allow CREATE EXTENSION to follow extension update paths. · 40b449ae
      Tom Lane authored
      Previously, to update an extension you had to produce both a version-update
      script and a new base installation script.  It's become more and more
      obvious that that's tedious, duplicative, and error-prone.  This patch
      attempts to improve matters by allowing the new base installation script
      to be omitted.  CREATE EXTENSION will install a requested version if it
      can find a base script and a chain of update scripts that will get there.
      As in the existing update logic, shorter chains are preferred if there's
      more than one possibility, with an arbitrary tie-break rule for chains
      of equal length.
      
      Also adjust the pg_available_extension_versions view to show such versions
      as installable.
      
      While at it, refactor the code so that CASCADE processing works for
      extensions requested during ApplyExtensionUpdates().  Without this,
      addition of a new requirement in an updated extension would require
      creating a new base script, even if there was no other reason to do that.
      (It would be easy at this point to add a CASCADE option to ALTER EXTENSION
      UPDATE, to allow the same thing to happen during a manually-commanded
      version update, but I have not done that here.)
      
      Tom Lane, reviewed by Andres Freund
      
      Discussion: <20160905005919.jz2m2yh3und2dsuy@alap3.anarazel.de>
      40b449ae