1. 09 Apr, 2016 8 commits
  2. 08 Apr, 2016 32 commits
    • Alvaro Herrera's avatar
      Support \crosstabview in psql · c09b18f2
      Alvaro Herrera authored
      \crosstabview is a completely different way to display results from a
      query: instead of a vertical display of rows, the data values are placed
      in a grid where the column and row headers come from the data itself,
      similar to a spreadsheet.
      
      The sort order of the horizontal header can be specified by using
      another column in the query, and the vertical header determines its
      ordering from the order in which they appear in the query.
      
      This only allows displaying a single value in each cell.  If more than
      one value correspond to the same cell, an error is thrown.  Merging of
      values can be done in the query itself, if necessary.  This may be
      revisited in the future.
      
      Author: Daniel Verité
      Reviewed-by: Pavel Stehule, Dean Rasheed
      c09b18f2
    • Kevin Grittner's avatar
      Add snapshot_too_old to NSVC @contrib_excludes · 279d86af
      Kevin Grittner authored
      The buildfarm showed failure for Windows MSVC builds due to this
      omission.  This might not be the only problem with the Makefile for
      this feature, but hopefully this will get it past the immediate
      problem.
      
      Fix suggested by Tom Lane
      279d86af
    • Andres Freund's avatar
      Expose more out/readfuncs support functions. · c1ddd236
      Andres Freund authored
      Previously bcac23de exposed a subset of support functions, namely the
      ones Kaigai found useful. In
      20160304193704.elq773pyg5fyl3mi@alap3.anarazel.de I mentioned that
      there's some functions missing to use the facility in an external
      project.
      
      To avoid having to add functions piecemeal, add all the functions which
      are used to define READ_* and WRITE_* macros; users of the extensible
      node functionality are likely to need these. Additionally expose
      outDatum(), which doesn't have it's own WRITE_ macro, as it needs
      information from the embedding struct.
      
      Discussion: 20160304193704.elq773pyg5fyl3mi@alap3.anarazel.de
      c1ddd236
    • Stephen Frost's avatar
      Create default roles · 7a542700
      Stephen Frost authored
      This creates an initial set of default roles which administrators may
      use to grant access to, historically, superuser-only functions.  Using
      these roles instead of granting superuser access reduces the number of
      superuser roles required for a system.  Documention for each of the
      default roles has been added to user-manag.sgml.
      
      Bump catversion to 201604082, as we had a commit that bumped it to
      201604081 and another that set it back to 201604071...
      
      Reviews by José Luis Tallón and Robert Haas
      7a542700
    • Stephen Frost's avatar
      Reserve the "pg_" namespace for roles · 29300789
      Stephen Frost authored
      This will prevent users from creating roles which begin with "pg_" and
      will check for those roles before allowing an upgrade using pg_upgrade.
      
      This will allow for default roles to be provided at initdb time.
      
      Reviews by José Luis Tallón and Robert Haas
      29300789
    • Stephen Frost's avatar
      Fix improper usage of 'dump' bitmap · fa6075e5
      Stephen Frost authored
      Now that 'dump' is a bitmap, we can't simply set it to 'true'.
      
      Noticed while debugging the prior issue.
      fa6075e5
    • Kevin Grittner's avatar
      Add the "snapshot too old" feature · 848ef42b
      Kevin Grittner authored
      This feature is controlled by a new old_snapshot_threshold GUC.  A
      value of -1 disables the feature, and that is the default.  The
      value of 0 is just intended for testing.  Above that it is the
      number of minutes a snapshot can reach before pruning and vacuum
      are allowed to remove dead tuples which the snapshot would
      otherwise protect.  The xmin associated with a transaction ID does
      still protect dead tuples.  A connection which is using an "old"
      snapshot does not get an error unless it accesses a page modified
      recently enough that it might not be able to produce accurate
      results.
      
      This is similar to the Oracle feature, and we use the same SQLSTATE
      and error message for compatibility.
      848ef42b
    • Kevin Grittner's avatar
      Modify BufferGetPage() to prepare for "snapshot too old" feature · 8b65cf4c
      Kevin Grittner authored
      This patch is a no-op patch which is intended to reduce the chances
      of failures of omission once the functional part of the "snapshot
      too old" patch goes in.  It adds parameters for snapshot, relation,
      and an enum to specify whether the snapshot age check needs to be
      done for the page at this point.  This initial patch passes NULL
      for the first two new parameters and BGP_NO_SNAPSHOT_TEST for the
      third.  The follow-on patch will change the places where the test
      needs to be made.
      8b65cf4c
    • Stephen Frost's avatar
      In dumpTable, re-instate the skipping logic · 689f9a05
      Stephen Frost authored
      Pretty sure I removed this based on some incorrect thinking that it was
      no longer possible to reach this point for a table which will not be
      dumped, but that's clearly wrong.
      
      Pointed out on IRC by Erik Rijkers.
      689f9a05
    • Teodor Sigaev's avatar
      Revert CREATE INDEX ... INCLUDING ... · 8b99edef
      Teodor Sigaev authored
      It's not ready yet, revert two commits
      690c5435 - unstable test output
      386e3d76 - patch itself
      8b99edef
    • Magnus Hagander's avatar
      Add authentication parameters compat_realm and upn_usename for SSPI · 35e2e357
      Magnus Hagander authored
      These parameters are available for SSPI authentication only, to make
      it possible to make it behave more like "normal gssapi", while
      making it possible to maintain compatibility.
      
      compat_realm is on by default, but can be turned off to make the
      authentication use the full Kerberos realm instead of the NetBIOS name.
      
      upn_username is off by default, and can be turned on to return the users
      Kerberos UPN rather than the SAM-compatible name (a user in Active
      Directory can have both a legacy SAM-compatible username and a new
      Kerberos one. Normally they are the same, but not always)
      
      Author: Christian Ullrich
      Reviewed by: Robbie Harwood, Alvaro Herrera, me
      35e2e357
    • Teodor Sigaev's avatar
      Fix possible use of uninitialised value in ts_headline() · cb0c8cbf
      Teodor Sigaev authored
      Found during investigation of failure of skink buildfarm member and its
      valgrind report.
      
      Backpatch to all supported branches
      cb0c8cbf
    • Tom Lane's avatar
      Fix unstable regression test output. · 690c5435
      Tom Lane authored
      Output order from the pg_indexes view might vary depending on the
      phase of the moon, so add ORDER BY to ensure stable results of tests
      added by commit 386e3d76.
      Per buildfarm.
      690c5435
    • Peter Eisentraut's avatar
      Distrust external OpenSSL clients; clear err queue · 7c7d4fdd
      Peter Eisentraut authored
      OpenSSL has an unfortunate tendency to mix per-session state error
      handling with per-thread error handling.  This can cause problems when
      programs that link to libpq with OpenSSL enabled have some other use of
      OpenSSL; without care, one caller of OpenSSL may cause problems for the
      other caller.  Backend code might similarly be affected, for example
      when a third party extension independently uses OpenSSL without taking
      the appropriate precautions.
      
      To fix, don't trust other users of OpenSSL to clear the per-thread error
      queue.  Instead, clear the entire per-thread queue ahead of certain I/O
      operations when it appears that there might be trouble (these I/O
      operations mostly need to call SSL_get_error() to check for success,
      which relies on the queue being empty).  This is slightly aggressive,
      but it's pretty clear that the other callers have a very dubious claim
      to ownership of the per-thread queue.  Do this is both frontend and
      backend code.
      
      Finally, be more careful about clearing our own error queue, so as to
      not cause these problems ourself.  It's possibly that control previously
      did not always reach SSLerrmessage(), where ERR_get_error() was supposed
      to be called to clear the queue's earliest code.  Make sure
      ERR_get_error() is always called, so as to spare other users of OpenSSL
      the possibility of similar problems caused by libpq (as opposed to
      problems caused by a third party OpenSSL library like PHP's OpenSSL
      extension).  Again, do this is both frontend and backend code.
      
      See bug #12799 and https://bugs.php.net/bug.php?id=68276
      
      Based on patches by Dave Vitek and Peter Eisentraut.
      
      From: Peter Geoghegan <pg@bowt.ie>
      7c7d4fdd
    • Tom Lane's avatar
      Add BSD authentication method. · 34c33a1f
      Tom Lane authored
      Create a "bsd" auth method that works the same as "password" so far as
      clients are concerned, but calls the BSD Authentication service to
      check the password.  This is currently only available on OpenBSD.
      
      Marisa Emerson, reviewed by Thomas Munro
      34c33a1f
    • Robert Haas's avatar
      Add combine functions for various floating-point aggregates. · af025eed
      Robert Haas authored
      This allows parallel aggregation to use them.  It may seem surprising
      that we use float8_combine for both float4_accum and float8_accum
      transition functions, but that's because those functions differ only
      in the type of the non-transition-state argument.
      
      Haribabu Kommi, reviewed by David Rowley and Tomas Vondra
      af025eed
    • Teodor Sigaev's avatar
      Fix output of regression test of contrib/tsearch2 · 38627f68
      Teodor Sigaev authored
      Just forget to add in 1ec4c7c0
      38627f68
    • Teodor Sigaev's avatar
      Restore original tsquery operation numbering. · 1ec4c7c0
      Teodor Sigaev authored
      As noticed by Tom Lane changing operation's number in commit
      bb140506 causes on-disk format incompatibility.
      Revert to previous numbering, that is reason to add special array to store
      priorities of operation. Also it reverts order of tsquery to previous.
      
      Author: Dmitry Ivanov
      1ec4c7c0
    • Andrew Dunstan's avatar
      76a1c97b
    • Teodor Sigaev's avatar
      CREATE INDEX ... INCLUDING (column[, ...]) · 386e3d76
      Teodor Sigaev authored
      Now indexes (but only B-tree for now) can contain "extra" column(s) which
      doesn't participate in index structure, they are just stored in leaf
      tuples. It allows to use index only scan by using single index instead
      of two or more indexes.
      
      Author: Anastasia Lubennikova with minor editorializing by me
      Reviewers: David Rowley, Peter Geoghegan, Jeff Janes
      386e3d76
    • Peter Eisentraut's avatar
      Replace printf format %i by %d · 339025c6
      Peter Eisentraut authored
      see also ce8d7bb6
      339025c6
    • Andrew Dunstan's avatar
      Turn down MSVC compiler verbosity · 01a07e6c
      Andrew Dunstan authored
      Most of what is produced by the detailed verbosity level is of no
      interest at all, so switch to the normal level for more usable output.
      
      Christian Ullrich
      
      Backpatch to all live branches
      01a07e6c
    • Peter Eisentraut's avatar
      Fix printf format · 8b737f90
      Peter Eisentraut authored
      8b737f90
    • Tom Lane's avatar
      Fix multiple bugs in tablespace symlink removal. · 93c301fc
      Tom Lane authored
      Don't try to examine S_ISLNK(st.st_mode) after a failed lstat().
      It's undefined.
      
      Also, if the lstat() reported ENOENT, we do not wish that to be a hard
      error, but the code might nonetheless treat it as one (giving an entirely
      misleading error message, too) depending on luck-of-the-draw as to what
      S_ISLNK() returned.
      
      Don't throw error for ENOENT from rmdir(), either.  (We're not really
      expecting ENOENT because we just stat'd the file successfully; but
      if we're going to allow ENOENT in the symlink code path, surely the
      directory code path should too.)
      
      Generate an appropriate errcode for its-the-wrong-type-of-file complaints.
      (ERRCODE_SYSTEM_ERROR doesn't seem appropriate, and failing to write
      errcode() around it certainly doesn't work, and not writing an errcode
      at all is not per project policy.)
      
      Valgrind noticed the undefined S_ISLNK result; the other problems emerged
      while reading the code in the area.
      
      All of this appears to have been introduced in 8f15f74a.
      Back-patch to 9.5 where that commit appeared.
      93c301fc
    • Robert Haas's avatar
      Document which aggregates support partial mode. · 752b948d
      Robert Haas authored
      David Rowley, reviewed by Tomas Vondra
      752b948d
    • Teodor Sigaev's avatar
      Enhanced custom error in PLPythonu · 5c3c3cd0
      Teodor Sigaev authored
      Patch adds a new, more rich,  way to emit error message or exception from
      PL/Pythonu code.
      
      Author: Pavel Stehule
      Reviewers: Catalin Iacob, Peter Eisentraut, Jim Nasby
      5c3c3cd0
    • Andres Freund's avatar
      Increase maximum number of clog buffers. · 5364b357
      Andres Freund authored
      Benchmarking has shown that the current number of clog buffers limits
      scalability. We've previously increased the number in 33aaa139, but
      that's not sufficient with a large number of clients.
      
      We've benchmarked the cost of increasing the limit by benchmarking worst
      case scenarios; testing showed that 128 buffers don't cause a
      regression, even in contrived scenarios, whereas 256 does
      
      There are a number of more complex patches flying around to address
      various clog scalability problems, but this is simple enough that we can
      get it into 9.6; and is beneficial even after those patches have been
      applied.
      
      It is a bit unsatisfactory to increase this in small steps every few
      releases, but a better solution seems to require a rewrite of slru.c;
      not something done quickly.
      
      Author: Amit Kapila and Andres Freund
      Discussion: CAA4eK1+-=18HOrdqtLXqOMwZDbC_15WTyHiFruz7BvVArZPaAw@mail.gmail.com
      5364b357
    • Robert Haas's avatar
      Add a 'parallel_degree' reloption. · 25fe8b5f
      Robert Haas authored
      The code that estimates what parallel degree should be uesd for the
      scan of a relation is currently rather stupid, so add a parallel_degree
      reloption that can be used to override the planner's rather limited
      judgement.
      
      Julien Rouhaud, reviewed by David Rowley, James Sewell, Amit Kapila,
      and me.  Some further hacking by me.
      25fe8b5f
    • Robert Haas's avatar
      Attempt to fix breakage due to declaration following code. · b0b64f65
      Robert Haas authored
      Per Tom Lane and the buildfarm.
      b0b64f65
    • Peter Eisentraut's avatar
      Set PAM_RHOST item for PAM authentication · 2f1d2b7a
      Peter Eisentraut authored
      The PAM_RHOST item is set to the remote IP address or host name and can
      be used by PAM modules.  A pg_hba.conf option is provided to choose
      between IP address and resolved host name.
      
      From: Grzegorz Sampolski <grzsmp@gmail.com>
      Reviewed-by: default avatarHaribabu Kommi <kommi.haribabu@gmail.com>
      2f1d2b7a
    • Teodor Sigaev's avatar
      Rename comparePos() to compareWordEntryPos() · 4e55b3f0
      Teodor Sigaev authored
      Rename comparePos() to compareWordEntryPos() to prevent export of too
      generic name.
      
      Per gripe from Tom Lane.
      4e55b3f0
    • Fujii Masao's avatar
      Add regression tests for multiple synchronous standbys. · 196b72fb
      Fujii Masao authored
      Authors: Suraj Kharage, Michael Paquier, Masahiko Sawada, refactored by me
      Reviewed-By: Kyotaro Horiguchi
      196b72fb